Аутентификация

Аутентификация#

Панель Аутентификация (Authentication) содержит ссылки на страницы настроек внешних провайдеров аутентификации.

Azure AD#

Окно Azure AD используется для настройки аутентификации с помощью провайдера Microsoft Azure Active Directory.

../../../../_images/azure-ad.png

Форма Редактировать (Edit) содержит следующие поля:

  • Ключ Azure AD OAuth2 (Azure AD OAuth2 Key) – код авторизации приложения в Azure AD.

  • Секрет Azure AD OAuth2 (Azure AD OAuth2 Secret) – секретный ключ авторизации приложения в Azure AD.

  • Ассоциация организаций в контроллере с Azure AD с помощью OAuth2 (Azure AD OAuth2 Organization Map) – настройки ассоциации пользователей Azure AD с организациями контроллера.

    Пример

    Пусть настройки ассоциации пользователей Azure AD с организациями контроллера заданы следующим образом:

    {
      "Jupiter": {
        "admins": [
          "/^admin_.*?@jupiter\.example\.com$/"
        ],
        "users": [
          "/.*?@jupiter\.example\.com$/"
        ],
        "remove_admins": true,
        "remove_users": true
      },
      "Saturn": {
        "admins": [
          "/^admin_.*?@saturn\.example\.com$/"
        ],
        "users": true,
        "remove_admins": true,
        "remove_users": true
      }
    }
    

    В список пользователей организации «Jupiter» будут добавлены все пользователи Azure AD, названия учетных записей которых заканчиваются на @jupiter.example.com. В администраторы организации «Juputer» будут добавлены только те пользователи Azure AD, названия учетных записей которых начинаются с admin_ и заканчиваются на @jupiter.example.com. Все пользователи Azure AD, не удовлетворяющие указанным условиям, будут удалены из списка администраторов организации «Jupiter» и списка ее участников.

    Аналогичные настройки используются для организации «Saturn», с той лишь разницей, что названия учетных записей пользователей этой организации должны заканчиваться на @saturn.example.com.

  • Ассоциация команд в контроллере с Azure AD с помощью OAuth2 (Azure AD OAuth2 Team Map) – настройки ассоциации пользователей Azure AD с командами контроллера.

    Пример

    Пусть настройки ассоциации пользователей Azure AD с командами контроллера заданы следующим образом:

    {
      "DevOps Team": {
        "organization": "Jupiter",
        "users": [
            "/.*?@jupiter\.example\.ru$/"
        ],
        "remove": true
      }
    }
    

    Если организация «Jupiter» не существует, она будет создана.

    Если в организации «Jupiter» не существует команда «DevOps Team», она будет создана.

    В список участников команды «DevOps Team» будут добавлены все пользователи Azure AD, названия учетных записей которых заканчиваются на @jupiter.example.ru. Все пользователи Azure AD, не удовлетворяющие указанным условиям, будут удалены из списка участников команды «DevOps Team».

    Подробности об ассоциации пользователей Azure AD с командами контроллера см. в секции Ассоциация с командами.

GitHub#

Важно

Эта часть документации находится в стадии разработки.

Google OAuth 2#

Важно

Эта часть документации находится в стадии разработки.

LDAP#

Окно LDAP используется для настройки аутентификации с помощью провайдера LDAP.

../../../../_images/ldap.png

Оно состоит из вкладки По умолчанию (Default), содержащей настройки для сервера аутентификации LDAP по умолчанию, и пяти вкладок для настройки дополнительных серверов аутентификации LDAP.

Все вкладки содержат одинаковые наборы настроек.

Форма Редактировать (Edit) содержит следующие поля:

  • URI сервера LDAP (LDAP Server URI) – URI сервера LDAP в следующем формате:

    <protocol>://<domain>:<port>
    

    где:

    • <protocol> – тип протокола для подключения, одно из значений:

      • ldap – подключение без защиты;

      • ldaps – защита подключения с помощью TLS.

    • <domain> – FQDN сервера LDAP.

    • <port> – порт для подключения. Как правило, порт 389 используется для подключения по протоколу ldap, а порт 636ldaps.

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

    Пустое значение в этом поле отключает аутентификацию через LDAP.

  • Пароль привязки к LDAP (LDAP Bind Password) – пароль для подключения к серверу LDAP.

  • Тип группы LDAP (LDAP Group Type) – тип обработчика, используемого для групп LDAP.

    Может принимать одно из следующих значений:

    • ActiveDirectoryGroupType;

    • GroupOfNamesType;

    • GroupOfUniqueNamesType;

    • MemberDNGroupType;

    • NestedActiveDirectoryGroupType;

    • NestedGroupOfNamesType;

    • NestedGroupOfUniqueNamesType;

    • NestedMemberDNGroupType;

    • NestedOrganizationalRoleGroupType;

    • OrganizationalRoleGroupType;

    • PosixGroupType;

    • PosixUIDGroupType.

    Подробное описание каждого типа см. в документации библиотеки django-auth-ldap.

    Значение по умолчанию – MemberDNGroupType.

  • Запуск LDAP с TLS (LDAP Start TLS) – использование TLS для подключения к серверу LDAP по протоколу ldap (без защиты соединения).

    Значение по умолчанию – Выкл (Off).

  • LDAP Bind DN – отличительное наименование пользователя (Distinguished Name) для привязки ко всем поисковым запросам, например:

    CN=users,DC=example,DC=com
    
  • Шаблон уникального наименования (DN) пользователя в LDAP (LDAP User DN Template) – если все пользователи в LDAP имеют одно и то же отличительное наименование, укажите в этом поле шаблон для более эффективного поиска.

    Важно

    Указанное в этом поле значение используется вместо значения, заданного в поле LDAP Bind DN.

  • Обязательная группа LDAP (LDAP Require Group) – отличительное наименование группы LDAP, в которую должны входить пользователи. Если пользователь не является членом указанной группы, его аутентификация в контроллере невозможна.

    Если поле не заполнено, все пользователи LDAP, соответствующие поисковому запросу, смогут аутентифицироваться в контроллере.

    Поддерживается только одна обязательная группа.

  • Запрещенная группа LDAP (LDAP Deny Group) – отличительное наименование группы LDAP, членам который запрещено аутентифицироваться в контроллере.

    Поддерживается только одна запрещенная группа.

  • LDAP-запрос по поиску пользователей (LDAP User Search) – параметры запроса, используемого для поиска пользователей в LDAP, например:

    [
      "DC=example,DC=com",
      "SCOPE_SUBTREE",
      "(cn=%(user)s)"
    ]
    

    Здесь:

    • DC=example,DC=com – поиск в домене example.com;

    • SCOPE_SUBTREE – ограничение поиска доменами, дочерними по отношению к example.com;

    • (CN=%(user)s) – фильтрация найденных пользователей по свойству CN, равному значению параметра user.

    Поддерживается использование LDAPSearchUnion для создания сложных запросов.

    Подробности см. в RFC 4517.

  • Групповой поиск по LDAP (LDAP Group Search) – настройки поиска групп в LDAP, например:

    [
      "DC=example,DC=com",
      "SCOPE_SUBTREE",
      "(ObjectClass=group)"
    ]
    

    Здесь:

    • DC=example,DC=com – поиск в домене example.com;

    • SCOPE_SUBTREE – ограничение поиска доменами, дочерними по отношению к example.com;

    • (ObjectClass=group) – поиск только объектов класса group.

    Использование LDAPSearchUnion в этом поле не поддерживается.

    Подробности см. в RFC 4517.

  • Ассоциация пользовательских атрибутов с LDAP (LDAP User Attribute Map) – правила ассоциирования данных пользователя в LDAP с данными пользователя в контроллере, например:

    {
      "first_name", "givenName",
      "last_name", "sn",
      "email": "mail"
    }
    

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

  • Параметры типа группы LDAP (LDAP Group Type Parameters) – дополнительные параметры типа группы LDAP.

    Список поддерживаемых параметров зависит от значения, выбранного в поле Тип группы LDAP (LDAP Group Type). Подробности см. в документации библиотеки django-auth-ldap.

    Значение по умолчанию:

    {
      "member_attr": "member",
      "name_attr": "cn"
    }
    
  • Пользовательские флаги LDAP по группам (LDAP User Flags By Group) – критерии, при выполнении которых пользователям LDAP в контроллере будут автоматически присваиваться типы «Системный администратор» (System Administrator) и «Системный аудитор» (System Auditor), например:

    {
      "is_superuser": "cn=superusers,ou=groups,db=example,dc=com",
      "is_system_auditor": "cn=auditors,ou=groups,dc=example,dc=com"
    }
    
  • Ассоциация организации с LDAP (LDAP Organization Map) – параметры ассоциации организаций LDAP с организациями контроллера.

    Пример

    Пусть настройки ассоциации пользователей LDAP с организациями контроллера заданы следующим образом:

    {
      "Jupiter": {
        "admins": "CN=admins,OU=groups,DC=jupiter,DC=example,DC=com",
        "users": [
          "CN=devops,OU=groups,DC=jupiter,DC=example,DC=com",
          "CN=testers,OU=groups,DC=jupiter,DC=example,DC=com"
        ],
        "remove_admins": true,
        "remove_users": true
      },
      "Saturn": {
        "admins": "CN=admins,OU=groups,DC=saturn,DC=example,DC=com",
        "users": true,
        "remove_admins": true,
        "remove_users": false
      }
    }
    

    Если организации «Jupiter» и «Saturn» не существуют, они будут созданы.

    В список администраторов организации «Jupiter» будут добавлены все пользователи LDAP, которые удовлетворяют следующим условиям:

    • состоят в группе LDAP admins;

    • имеют учетную запись в домене jupiter.example.com.

    Все пользователи LDAP, не удовлетворяющие указанным условиям, будут удалены из списка администраторов организации «Jupiter».

    В список участников организации «Jupiter» будут добавлены все пользователи LDAP, которые удовлетворяют следующим условиям:

    • состоят в группах LDAP devops или testers;

    • имеют учетную запись в домене jupiter.example.com.

    Все пользователи LDAP, не удовлетворяющие указанным условиям, будут удалены из списка участников организации «Jupiter».

    В список администраторов организации «Saturn» будут добавлены все пользователи LDAP, которые удовлетворяют следующим условиям:

    • состоят в группе LDAP admins;

    • имеют учетную запись в домене saturn.example.ru.

    Все пользователи LDAP, не удовлетворяющие указанным условиям, будут удалены из списка администраторов организации «Saturn».

    Участниками организации «Saturn» являются любые пользователи, найденные в LDAP.

    Участники организации «Saturn», не найденные в LDAP, не будут удалены из контроллера.

    Подробности об ассоциации внешних пользователей с организациями контроллера см. в секции Ассоциация с организациями.

  • Ассоциация группы с LDAP (LDAP Team Map) – параметры ассоциации групп LDAP с командами контроллера.

    Пример

    Пусть настройки ассоциации пользователей LDAP с командами контроллера заданы следующим образом:

    {
      "DevOps Team": {
        "organization": "Jupiter",
        "users": "CN=devops,OU=groups,DC=jupiter,DC=example,DC=com",
        "remove": true
      }
    }
    

    Если организация «Jupiter» не существует, она будет создана.

    Если в организации «Jupiter» не существует команда «DevOps Team», она будет создана.

    В список участников команды «DevOps Team» будут добавлены все пользователи LDAP, которые удовлетворяют следующим условиям:

    • входят в группу LDAP devops;

    • имеют учетную запись в домене jupiter.example.com.

    Все пользователи LDAP, не удовлетворяющие указанным условиям, будут удалены из списка участников команды «DevOps Team».

    Подробности об ассоциации внешних пользователей с командами контроллера см. в секции Ассоциация с командами.

RADIUS#

Важно

Эта часть документации находится в стадии разработки.

SAML#

Окно SAML используется для настройки аутентификации с помощью поставщиков услуг аутентификации SAML.

../../../../_images/saml.png

Форма Редактировать (Edit) содержит следующие поля:

  • Уникальный идентификатор объекта поставщика услуг SAML (SAML Service Provider Entity ID) – как правило, в качестве идентификатора объекта поставщика услуг аутентификации SAML используется базовый URL контроллера. Его значение указывается в общих системных настройках контроллера.

    Если для доступа к контроллеру используется балансировщик нагрузки, укажите его URL.

  • Автоматически создавать группы и организации при подключении к SAML (Automatically Create Organizations and Teams on SAML Login) – при успешной аутентификации пользователей SAML необходимые организации и команды создаются автоматически.

  • Открытый сертификат поставщика услуг SAML (SAML Service Provider Public Certificate) – открытый сертификат поставщика услуг SAML, например:

    -----BEGIN CERTIFICATE----
    AAAA231jfdsalfkjkl........
    ----END CERTIFICATE-----
    
  • Закрытый ключ поставщика услуг SAML (SAML Service Provider Private Key) – закрытый ключ поставщика услуг SAML, например:

    -----BEGIN PRIVATE KEY-----
    PPPPP2183910das0921........
    -----END PRIVATE KEY-----
    
  • Информация об организации поставщика услуг SAML (SAML Service Provider Organization Info) – словарь с информацией об организации поставщика услуг SAML, например:

    {
      "en-US": {
        "url": "https://aac.example.com",
        "displayname": "Astra Automation Controller cluster",
        "name": "aac-cluster"
      },
      "ru-RU": {
        "url": "https://aac.example.com",
        "displayname": "Кластер Astra Automation Controller",
        "name": "aac-cluster"
      }
    }
    
  • Контакт инженера поставщика SAML (SAML Service Provider Technical Contact) – словарь с информацией о службе технической поддержки поставщика услуг SAML, например:

    {
      "givenName": "SAML Technical Support",
      "emailAddress": "tech-support@saml.example.com"
    }
    
  • Контакт службы поддержки поставщика SAML (SAML Service Provider Support Contact) – словарь с информацией о службе поддержки пользователей поставщика услуг SAML, например:

    {
      "givenName": "SAML User Support",
      "emailAddress": "user-support@saml.example.com"
    }
    
  • Разрешить использование провайдеров контроля идентичности через SAML (SAML Enabled Identity Providers) – словарь с настройками отдельных поставщиков услуг SAML.

    Пример

    Пусть словарь настроек содержит следующие данные о поставщиках услуг SAML:

    {
      "keycloak": {
        "entity_id": "https://saml.example.com/keycloak/b2912kdsjkl1k",
        "url": "https://saml.example.com/keycloak/sso/",
        "x509cert": "MIID0DCCAj12309jklwqW...3123jklfdsajkl213",
        "attr_user_permanent_id": "user_id",
        "attr_username": "Email",
        "attr_email": "Email",
        "attr_first_name": "FirstName",
        "attr_last_name": "LastName"
      }
    }
    

    Здесь:

    • keycloak – идентификатор поставщика услуг аутентификации SAML.

    • entity_id – идентификатор профиля, предоставленный поставщиком услуг аутентификации SAML.

    • url – URL, на который Astra Automation Controller должен перенаправлять пользователей для аутентификации через SAML.

    • x509cert – сертификат провайдера идентификации (IdP) SAML.

      При заполнении этого поля необходимо убрать из сертификата маркеры начала (-----BEGIN CERTIFICATE-----) и конца (-----END CERITIFICATE-----), а оставшиеся строки объединить в одну.

    • attr_user_permanent_id – название атрибута пользователя SAML, в котором хранится его уникальный идентификатор.

    • attr_username – название атрибута SAML, в котором хранится название учетной записи пользователя. В данном случае в качестве названия учетной записи пользователя Astra Automation Controller используется адрес электронной почты пользователя SAML, поэтому в значении ключа attr_username указано значение Email.

    • attr_email – название атрибута SAML, в котором хранится адрес электронной почты пользователя.

    • attr_first_name – название атрибута пользователя SAML, в котором хранится имя пользователя.

    • attr_last_name – название атрибута пользователя SAML, в котором хранится фамилия пользователя.

  • Ассоциация организаций с помощью SAML (SAML Organization Map) – правила назначения пользователям SAML ролей «Администратор» и «Участник» на уровне организаций.

    Пример

    Пусть настройки ассоциации пользователей SAML с организациями контроллера заданы следующим образом:

    {
      "Jupiter": {
        "admins": "admin@jupiter.example.com",
        "users": [
          "/.*?@users\.example\.com$/i",
          "/.*?devops\.example\.com$/i"
        ],
        "remove_admins": true,
        "remove_users": true
      }
    }
    

    Если организация «Jupiter» не существует, она будет создана.

    В список администраторов организации «Jupiter» будет добавлен пользователь SAML с названием учетной записи admin@jupiter.example.com. Все пользователи SAML, не удовлетворяющие указанному условию, будут удалены из списка администраторов организации «Jupiter».

    В список участников организации «Jupiter» будут добавлены все пользователи SAML, названия учетных записей которых заканчиваются на @users.example.com и @devops.example.com (без учета регистра). Все пользователи SAML, не удовлетворяющие указанным условиям, будут удалены из списка участников организации «Jupiter».

    Подробности см. в секции Ассоциация с организациями.

  • Ассоциация атрибутов организаций с помощью SAML (SAML Organization Attribute Mapping) – словарь с названиями атрибутов, которыми должен обладать пользователь SAML для назначения ему ролей «Администратор» и «Участник» на уровне организаций.

    Пример

    Пусть настройки ассоциации атрибутов организаций заданы следующим образом:

    {
      "saml_attr": "is-member",
      "saml_admin_attr": "is-admin",
      "remove": true,
      "remove_admins": true
    }
    

    Если в данных пользователя SAML есть атрибут is-member, ему назначается роль «Участник» на уровне соответствующих организаций контроллера.

    Если в данных пользователя SAML есть атрибут is-admin, ему назначается роль «Администратор» на уровне соответствующих организаций контроллера.

    У пользователей SAML, не имеющих указанных атрибутов, роли «Администратор» и «Участник» на уровне организаций отзываются автоматически.

    Подробности см. в секции Ассоциация атрибутов организаций.

  • Ассоциация команд с помощью SAML (SAML Team Map) – правила назначения пользователям SAML ролей «Администратор» и «Участник» на уровне команд.

    Пример

    Пусть настройки ассоциации пользователей SAML с командами контроллера заданы следующим образом:

    {
      "DevOps Team": {
        "organization": "Jupiter",
        "users": "/.*?@jupiter\.example\.com$/",
        "remove": true
      }
    }
    

    Если организация «Jupiter» не существует, она будет создана.

    Если в организации «Jupiter» не существует команда «DevOps Team», она будет создана.

    Пользователям SAML, название учетной записи которых заканчивается на @jupiter.example.com, автоматически назначается роль «Участник» на уровне команды «DevOps Team». Пользователи SAML, не удовлетворяющие этому условию, автоматически удаляются из списка участников команды «DevOps Team».

    Подробности см. в секции Ассоциация с командами.

  • Ассоциация атрибутов команд с помощью SAML (SAML Team Attribute Mapping) – словарь с названиями атрибутов, которыми должен обладать пользователь SAML для назначения ему ролей «Администратор» и «Участник» на уровне команд.

    Пример

    Пусть настройки ассоциации атрибутов команд заданы следующим образом:

    {
      "saml_attr": "team",
      "remove": true,
      "team_org_map": [{
        "team": "data:team:devOps",
        "team_alias": "DevOps Team",
        "organization": "org.jptr"
      }, {
        "team": "data:team:auditors",
        "team_alias": "Auditors Team",
        "organization": "org.jptr"
      }]
    }
    

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

    Если в организации org.jptr не существуют команды «DevOps Team» и «Auditors Team», они будут созданы.

    Пользователям SAML, имеющим атрибут team, значение которого равно data:team:devOps, назначается роль «Участник» в команде «DevOps Team». Из списка участников команды «DevOps Team» автоматически удаляются пользователи, которые:

    • не имеют атрибута team, либо

    • имеют атрибут team, но его значение не равно data:team:devOps.

    Пользователям SAML, имеющим атрибут team, значение которого равно data:team:auditors, назначается роль «Участник» в команде «Auditors Team». Из списка участников команды «Auditors Team» автоматически удаляются пользователи, которые:

    • не имеют атрибута team, либо

    • имеют атрибут team, но его значение не равно data:team:auditors.

    Подробности см. в секции Ассоциация атрибутов команд.

  • Ассоциация атрибутов пользователей SAML (SAML User Flags Attribute Mapping) – настройки назначения пользователям SAML ролей «Системный администратор» и «Системный аудитор».

    Пример

    Пусть настройки ассоциации атрибутов пользователей SAML заданы следующим образом:

    {
      "is_superuser_role": [
        "admin",
        "root"
      ],
      "is_superuser_attr": "groups",
      "is_superuser_value": [
        "admin",
        "root",
        "astra-admin"
      ],
      "is_system_auditor_role": "auditor",
      "is_system_auditor_attr": "groups",
      "is_system_auditor_value": ["auditor"]
    }
    

    Роль «Системный администратор» назначается пользователям SAML, удовлетворяющим хотя бы одному из указанных условий:

    • наличие атрибута groups, хотя бы одно из значений которого равно admin, root или astra-admin;

    • наличие роли admin или root.

    У пользователей SAML, не удовлетворяющих указанным условиям, роль «Системный администратор» автоматически отзывается.

    Роль «Системный аудитор» назначается пользователям SAML, удовлетворяющим хотя бы одному из указанных условий:

    • наличие атрибута groups, хотя бы одно из значений которого равно auditor;

    • наличие роли auditor.

    У пользователей SAML, не удовлетворяющим указанным условиям, роль «Системный аудитор» автоматически отзывается.

    Подробности см. в секции Атрибуты пользователей.

  • Конфигурация безопасности SAML (SAML Security Config) – настройки безопасности поставщика услуг аутентификации SAML.

    Значение по умолчанию:

    {
      "requestedAuthnContext": false
    }
    

    Подробное описание доступных настроек см. в документации библиотеки python-saml.

  • Дополнительные данные настройки сервиса идентификации SAML (SAML Service Provider extra configuration data) – дополнительные настройки поставщика услуг аутентификации SAML.

    Подробное описание доступных настроек см. в документации библиотеки python-saml.

  • Ассоциация SAML IDP с атрибутами extra_data (SAML IDP to extra_data attribute mapping) – список кортежей с названиями атрибутов поставщика услуг идентификации (IdP), преобразуемых в атрибуты extra_data, например:

    [
      ('attribute_name', 'extra_data_name_for_attribute'),
      ('department', 'department'),
      ('user_first_name', 'first_name')
    ]
    

    Подробное описание доступных настроек см. в документации библиотеки python-social-auth.

TACACS+#

Важно

Эта часть документации находится в стадии разработки.

Общий OIDC#

Важно

Эта часть документации находится в стадии разработки.