Провайдеры аутентификации#

Astra Automation Controller поддерживает использование внешних провайдеров аутентификации (в алфавитном порядке):

  • Azure AD;

  • GitHub;

  • Google OAuth2;

  • LDAP;

  • OIDC;

  • RADIUS;

  • SAML;

  • TACACS+.

Предупреждение

Провайдеры RADIUS и TACACS+ считаются устаревшими и не поддерживаются. В одной из следующий версий Astra Automation Controller эти провайдеры станут недоступными для применения.

Поддерживается автоматическая ассоциация пользователей из внешней системы аутентификации с организациями и командами контроллера.

Ассоциация с организациями#

Настройки ассоциации внешних пользователей с организациями контроллера задаются в виде словаря, где ключ – название организации в контроллере, а значение – словарь, который может содержать следующие ключи:

  • admins – администраторы организации;

  • remove_admins;

  • users – пользователи организации;

  • remove_users.

Если организация с указанным названием не существует, она будет создана.

Обработка значений параметров admins и users выполняется следующим образом:

  • Если значение не задано, список администраторов или пользователей организации не обновляется.

  • Если значение параметра равно true, все аутентифицированные внешние пользователи автоматически получают привилегии администраторов организации или пользователей организации соответственно.

  • Если значение параметра равно false, внешние пользователи получают привилегии администраторов организации или пользователей организации соответственно независимо от того, выполняли ли они аутентификацию.

  • Если в значении параметра указана строка или массив строк, то интерпретация этих строк зависит от типа провайдера аутентификации.

    • Azure AD, GitHub, Google OAuth2

      Строки, в начале и конце которых стоит символ /, обрабатываются как регулярные выражения. Для регулярных выражений поддерживаются модификаторы, которые ставятся после закрывающей косой черты /:

      • i – игнорирование регистра символов;

      • m – поддержка многострочного текста.

    • LDAP

      В строках указываются параметры отбора пользователей LDAP, например:

      "admins": "CN=Administrators,OU=groups,DC=example,DC=com"
      

Значение параметров remove_admins и remove_users определяет порядок обработки записей, не соответствующих условиям отбора. Если значение параметра равно true, внешние пользователи, не удовлетворяющие критериям отбора, удаляются из списка администраторов организации и пользователей организации соответственно.

Ассоциация с командами#

Настройки ассоциации внешних пользователей с командами контроллера задаются в виде словаря, где ключ – название команды в контроллере, а значение – словарь, который может содержать следующие ключи:

  • organization – название организации, которой принадлежит команда.

    Если организация с указанным названием не существует, она будет создана.

    Если в организации не существует команда с указанным названием, она будет создана.

  • users – параметр, определяющий обработку пользователей команды.

    Если значение параметра не задано, список участников команды не меняется.

    Если значение параметра равно true, пользователи добавляются как участники команды.

    Если значение параметра равно false, пользователи удаляются из участников команды.

    Если в значении параметра указана строка или массив строк, то интерпретация этих строк зависит от типа провайдера аутентификации.

    • Azure AD, GitHub, Google OAuth2

      Строки, в начале и конце которых стоит символ /, обрабатываются как регулярные выражения. Для регулярных выражений поддерживаются модификаторы, которые ставятся после закрывающей косой черты /:

      • i – игнорирование регистра символов;

      • m – поддержка многострочного текста.

    • LDAP

      В строках указываются параметры отбора пользователей LDAP, например:

      "admins": "CN=Administrators,OU=groups,DC=example,DC=com"
      
  • remove – если значение этого параметра равно true, внешние пользователи, не удовлетворяющие критериям отбора, удаляются из команды.

LDAP#

Контроллер позволяет использовать одновременно до шести различных конфигураций подключения к серверам аутентификации LDAP.

По умолчанию используются настройки для работы со службой каталогов Microsoft Active Directory.

Идентификация пользователей, групп и организаций производится по отличительному наименованию (DN, Distinguished Name).

В каждой конфигурации можно задать URI одного или нескольких серверов LDAP. В качестве разделителя URI используется символ пробела или запятой.

Настройки поиска пользователей#

Настройки поиска пользователей задаются в записи следующего вида:

[
  "<search_query>",
  "<scope>",
  "<key>"
]

Здесь:

  • <search_query> – область поиска пользователей, например, OU=Users,DC=example,DC=com.

  • <scope> – ограничение области поиска.

    Поддерживаются следующие значения:

    • SCOPE_BASE – поиск только по базовому отличительному наименованию;

    • SCOPE_ONELEVEL – поиск на один уровень ниже базового отличительного наименования, но не в самом базовом отличительном наименовании и не на более низких уровнях;

    • SCOPE_SUBTREE – поиск по базовому отличительному наименованию и по всем нижележащим уровням.

  • <key> – указание того, какие данные о записи в LDAP следует считать названием учетной записи пользователя, например, (cn=%(user)s).

Поддерживаются множественные параметры поиска (LDAPSearchUnion), например:

[
  [
    "OU=Users,DC=west,DC=example,DC=com",
    "SCOPE_SUBTREE",
    "(sAMAAccountName=%(user)s)"
  ], [
    "OU=Users,DC=north,DC=example,DC=com",
    "SCOPE_SUBTREE",
    "(sAMAAccountName=%(user)s)"
  ]
]

Настройки поиска групп#

Настройки поиска групп задаются в записи следующего вида:

[
  "<search_query>",
  "<scope>",
  "key"
]

Здесь:

  • <search_query> – область поиска групп, например, DC=example,DC=com.

  • <scope> – ограничение области поиска.

    Поддерживаются следующие значения:

    • SCOPE_BASE – поиск только по базовому отличительному наименованию;

    • SCOPE_ONELEVEL – поиск на один уровень ниже базового отличительного наименования, но не в самом базовом отличительном наименовании и не на более низких уровнях;

    • SCOPE_SUBTREE – поиск по базовому отличительному наименованию и по всем нижележащим уровням.

  • <key> – класс объекта LDAP, считающегося группой, например, (objectClass=group).