Методы аутентификации#

Automation Controller может использовать для аутентификации пользователей внешние системы, называемые поставщиками идентификационных данных (Identity Provider, IdP). Далее с целью сокращения они называются провайдерами.

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

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

  1. В Automation Controller на странице аутентификации становится доступна кнопка аутентификации с использованием провайдера.

    ../../../_images/controller-auth-page.png

    Примечание

    Количество кнопок и их внешний вид зависят от количества и типов настроенных провайдеров.

  2. При нажатии на кнопку Automation Controller перенаправляет пользователя на страницу аутентификации, заданную в настройках провайдера.

    ../../../_images/provider-auth-page.png
  3. Пользователь вводит свои учетные данные на указанной странице. Если идентификация успешна, провайдер перенаправляет пользователя на страницу аутентификации Automation Controller.

    ../../../_images/provider-redirect-to-controller.png

    Также провайдер передает в Automation Controller сведения о пользователе и токен, подтверждающий подлинность данных.

  4. Automation Controller проверяет токен и наличие в своей базе учетной записи пользователя.

    Если такой записи нет, она создается на основе данных, полученных от провайдера аутентификации. Запись о пользователе Automation Controller может содержать следующие поля:

    • username – название учетной записи;

    • first_name – фамилия;

    • last_name – имя;

    • email – адрес электронной почты.

    Если в настройках Automation Controller заданы правила ассоциации пользователей с организациями и командами, Automation Controller выполняет следующие действия:

    1. Создает организации и команды, отсутствующие в Automation Controller.

    2. Включает пользователя в организации и команды в соответствии с заданными настройками.

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

Список провайдеров аутентификации, которые может использовать Automation Controller для реализации SSO:

Azure AD#

Для использования этого провайдера аутентификации необходимы ключ и секрет Azure AD. Пошаговые инструкции по их получению приведены в документации Azure.

Пошаговые инструкции по настройке провайдера через графический интерфейс Automation Controller приведены в секции Azure AD.

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

Настройки ассоциации пользователей Azure AD с организациями контроллера необходимо задавать в виде словаря, в котором ключи – названия организаций Automation Controller, а значения – вложенные словари с настройками.

Словарь с настройками может содержать следующие ключи:

  • admins – правила назначения роли «Администратор»;

  • remove_admins – управление отзывом роли «Администратор»;

  • users – правила назначения роли «Участник»;

  • remove_users – управление отзывом роли «Участник».

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

  • Если значение не задано – список администраторов и участников организации не меняется.

  • true – всем пользователям Azure AD, выполнившим аутентификацию в Automation Controller, автоматически назначается роль «Администратор» или «Участник» соответственно.

  • false – пользователям Azure AD автоматически назначается организационная роль «Администратор» или «Участник» соответственно. Аутентификация в Automation Controller не требуется.

  • Если в значении параметра указана строка или массив строк, то на соответствие этим строкам проверяются названия учетных записей и адреса электронной почты пользователей Azure AD.

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

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

    • m – многострочное выражение.

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

  • true – организационная роль отзывается.

  • false – организационная роль не отзывается.

Пример заполнения словаря:

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

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

Пользователю с адресом электронной почты admin@jupiter.example.com назначается роль «Администратор». У прочих пользователей Azure AD эта роль автоматически отзывается.

Пользователям, адрес электронной почты которых заканчивается на @users.example.com или @devops.example.com (регистр символов в адресе электронной почты игнорируется), назначается организационная роль «Участник». У прочих пользователей Azure AD эта роль автоматически отзывается.

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

Настройки ассоциации пользователей Azure AD с командами контроллера необходимо задавать в виде словаря, где ключи – названия команды в контроллере, а значения – вложенные словари с настройками.

Словарь с настройками может содержать следующие ключи:

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

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

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

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

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

    • Если значение параметра равно true, пользователям назначается командная роль «Участник».

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

    • Если в значении параметра указана строка или массив строк, то на соответствие этим строкам проверяются названия учетных записей и адреса электронной почты пользователей Azure AD.

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

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

    • m – многострочное выражение.

  • remove – если значение этого параметра равно true, у не соответствующих критериям отбора пользователей Azure AD автоматически отзывается роль «Участник».

Пример заполнения словаря:

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

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

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

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

GitHub#

Важно

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

Google OAuth2#

Важно

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

LDAP#

Automation Controller поддерживает использование нескольких конфигураций провайдера аутентификации LDAP одновременно.

Для использования метода аутентификации LDAP необходимы следующие данные:

  • URI серверов LDAP;

  • пароли привязки к LDAP;

  • запрос для поиска пользователей в LDAP;

  • запрос для поиска групп в LDAP.

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

Автоматическая синхронизация пользователей LDAP с Automation Controller не выполняется.

При успешной аутентификации в LDAP для пользователя автоматически создается учетная запись в Automation Controller. У созданных таким образом учетных записей нельзя изменить название учетной записи, пароль, имя и фамилию пользователя.

По умолчанию Automation Controller использует для подключения к серверам LDAP настройки, обеспечивающие корректную работу с реализацией протокола в Microsoft Active Directory. Для прочих реализаций может быть использован один из обработчиков:

  • ActiveDirectoryGroupType;

  • GroupOfNamesType;

  • GroupOfUniqueNamesType;

  • MemberDNGroupType;

  • NestedActiveDirectoryGroupType;

  • NestedGroupOfNamesType;

  • NestedGroupOfUniqueNamesType;

  • NestedMemberDNGroupType;

  • NestedOrganizationalRoleGroupType;

  • OrganizationalRoleGroupType;

  • PosixGroupType;

  • PosixUIDGroupType.

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

Ассоциация данных пользователей#

Настройки ассоциации данных пользователей LDAP с данными пользователей Automation Controller необходимо задавать в виде словаря, в котором ключи – названия полей данных пользователя Automation Controller, а значения – названия полей данных пользователя LDAP, например:

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

Назначение ролей «Системный администратор» и «Системный аудитор»#

Возможно автоматическое назначение пользователям LDAP типов «Системный администратор» (System Administrator) и «Системный аудитор» (System Auditor). Настройки необходимо задавать в виде словаря, в котором ключи – is_superuser и is_system_auditor соответственно, а значения – запросы к LDAP для фильтрации пользователей.

Пример заполнения словаря:

{
  "is_superuser": "cn=superuser,ou=groups,dc=example,dc=com",
  "is_system_auditor": "cn=auditors,ou=groups,dc=example,dc=com"
}

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

Настройки ассоциации пользователей LDAP с организациями контроллера необходимо задавать в виде словаря, в котором ключи – названия организаций Automation Controller, а значения – вложенные словари с настройками.

Вложенный словарь может содержать следующие ключи:

  • admins – правила назначения роли «Администратор»;

  • remove_admins – управление отзывом роли «Администратор»;

  • users – правила назначения роли «Участник»;

  • remove_users – управление отзывом роли «Участник».

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

  • Если значение не задано – список администраторов и участников организации не меняется.

  • true – всем пользователям LDAP, выполнившим аутентификацию в Automation Controller, автоматически назначается роль «Администратор» или «Участник» соответственно.

  • false – пользователям 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
  }
}

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

Пользователям, найденным при выполнении запроса CN=admins,OU=groups,DC=jupiter,DC=example,DC=com, назначается роль «Администратор». У прочих пользователей LDAP эта роль автоматически отзывается.

Пользователям, найденным при выполнении запросов CN=devops,OU=groups,DC=jupiter,DC=example,DC=com и CN=terster,OU=groups,DC=jupiter,DC=example,DC=com, назначается роль «Участник». У прочих пользователей LDAP эта роль автоматически отзывается.

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

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

Словарь с настройками может содержать следующие ключи:

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

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

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

  • users – параметр, определяющий назначение пользователю роли «Участник»:

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

    • Если значение параметра равно true, пользователю назначается роль «Участник».

    • Если значение параметра равно false, у пользователя отзывается роль «Участник».

    • Если в значении параметра указана строка или массив строк, то они интерпретируются как запросы к LDAP. Найденным пользователям назначается роль «Участник».

  • remove – если значение этого параметра равно true, не соответствующие критериям отбора пользователи LDAP удаляются из списка участников команды.

Пример заполнения словаря:

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

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

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

Пользователям, найденным в LDAP при выполнении запроса CN=devops,OU=groups,DC=jupiter,DC=example,DC=com, автоматически назначается роль «Участник».

RADIUS#

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

Этот провайдер аутентификации считается устаревшим и в одной из следующих версий Automation Controller станет недоступным для применения.

SAML#

В Astra Automation поставщиком услуг является кластер Automation Controller, а поставщиком идентификационных данных – группа серверов SAML, предоставляющих услугу SSO.

В качестве идентификатора объекта поставщика услуг SAML следует указать базовый URL Automation Controller. Если для доступа к кластеру используется балансировщик нагрузки, следует указать его URL, например:

https://aac.example.com/

Открытый сертификат и закрытый ключ должны быть указаны с маркерами начала и конца содержимого:

-----BEGIN CERTIFICATE-----
AAAAA231jfdsalfkjkl........
-----END CERTIFICATE-----
-----BEGIN PRIVATE KEY-----
PPPPP2183910das0921........
-----END PRIVATE KEY-----

Информацию об организации поставщика услуг SAML необходимо указывать в виде словаря, где ключи – названия локалей, а значения – вложенные словари с настройками.

Словарь с настройками может содержать следующие ключи:

  • url – URL кластера Automation Controller.

  • displayname – человекочитаемое название кластера Automation Controller.

  • name – внутреннее название кластера Automation Controller. Используется в качестве идентификатора на стороне провайдера SAML, позволяя ему отличать один кластер от другого.

Пример заполнения словаря:

{
  "ru-RU": {
    "url": "https://aac.example.com",
    "displayname": "Кластер Automation Controller",
    "name": "aac-cluster"
  }
}

Атрибуты пользователей#

По умолчанию Automation Controller ожидает от провайдера SAML данные пользователя в следующем формате:

Username(urn:oid:0.9.2342.19200300.100.1.1)
Email(urn:oid:0.9.2342.19200300.100.1.3)
FirstName(urn:oid:2.5.4.42)
LastName(urn:oid:2.5.4.4)

Если на стороне провайдера SAML данные о пользователях хранятся в полях с другими названиями, необходимо задать настройки ассоциации атрибутов пользователей SAML с атрибутами пользователей Automation Controller.

Настройки ассоциации атрибутов пользователей SAML с атрибутами пользователей Automation Controller необходимо задавать в виде словаря, где ключи – идентификаторы провайдеров идентификации, а значения – вложенные словари с настройками.

Словарь с настройками может содержать следующие ключи:

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

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

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

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

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

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

    Использование одного и того же адреса электронной почты, в том числе для пользователей, созданных средствами Automation Controller, запрещено.

  • entity_id – идентификатор профиля, используемого для аутентификации Automation Controller. Предоставляется провайдером SAML.

  • url – URL страницы аутентификации SAML. Automation Controller будет перенаправлять пользователей на эту страницу при аутентификации через SAML. Предоставляется провайдером SAML.

  • x509_cert – сертификат провайдера идентификации SAML.

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

Пример заполнения словаря:

{
  "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"
  }
}

Ассоциация атрибутов организаций#

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

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

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

  • remove – если значение этого параметра равно true, у не соответствующих критериям отбора пользователей SAML автоматически отзывается роль «Участник».

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

Пусть имеется следующее описание атрибутов SAML:

<saml2:AttributeStatement>
  <saml2:Attribute FriendlyName="is-member"
                   Name="is-member"
                   NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:unspecified">

    <saml2:AttributeValue>org.jptr</saml2:AttributeValue>
    <saml2:AttributeValue>org.strn</saml2:AttributeValue>
  </saml2:Attribute>

  <saml2:Attribute FriendlyName="is-admin"
                   Name="is-admin"
                   NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:unspecified">

    <saml2:AttributeValue>org.jptr</saml2:AttributeValue>
  </saml2:Attribute>
</saml2:AttributeStatement>

Здесь:

  • атрибут is-member указывает, что пользователь является участником организаций SAML org.jptr и org.strn;

  • атрибут is-admin указывает, что пользователь является администратором организации SAML org.jptr.

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

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

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

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

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

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

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

  • team_org_map – массив словарей, содержащих настройки ассоциации пользователей SAML с командами контроллера.

    Каждый словарь в этом массиве может содержать следующие ключи:

    • team – название команды.

    • team_alias – псевдоним команды.

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

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

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

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

    Примечание

    Ключи team_alias и organization_alias не обязательны для заполнения, но они могут быть полезны, если на стороне поставщика услуг SAML используются сложные названия организаций и команд. Если значения ключей team_alias и organization_alias не заданы, организации и команды будут созданы в контроллере с названиями, полученными из атрибутов, указанных в поле team и organization соответственно.

  • remove – если значение этого параметра равно true, у не соответствующих критериям отбора пользователей SAML автоматически отзывается роль «Участник».

Пусть имеется следующее описание атрибутов SAML:

<saml:AttributeStatement>
  <saml:Attribute xmlns:x500="urn:oasis:names:tc:SAML:2.0:profiles:attribute:X500"
                  x500:Encoding="LDAP"
                  NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"
                  Name="urn:oid:1.3.6.1.4.1.5923.1.1.1.1"
                  FriendlyName="team">
    <saml:AttributeValue xsi:type="xs:string">data:team:devOps</saml:AttributeValue>
    <saml:AttributeValue xsi:type="xs:string">data:team:auditors</saml:AttributeValue>
  </saml:Attribute>
</saml:AttributeStatement>

Здесь атрибут team указывает, что пользователь является участником команд SAML data:team:devOps и data:team:auditors.

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

{
  "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 data:team:devOps и data:team:auditors соответственно.

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

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

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

Настройки ассоциации пользователей SAML с организациями контроллера необходимо задавать в виде словаря, в котором ключи – названия организаций Automation Controller, а значения – вложенные словари с настройками.

Словарь с настройками может содержать следующие ключи:

  • admins – правила назначения роли «Администратор»;

  • remove_admins – управление отзывом роли «Администратор»;

  • users – правила назначения роли «Участник»;

  • remove_users – управление отзывом роли «Участник».

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

  • Если значение не задано – список администраторов и участников организации не меняется.

  • true – всем пользователям SAML, выполнившим аутентификацию в Automation Controller, автоматически назначается роль «Администратор» или «Участник» соответственно.

  • false – пользователям SAML автоматически назначается организационная роль «Администратор» или «Участник» соответственно. Аутентификация в Automation Controller не требуется.

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

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

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

    • m – многострочное выражение.

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

  • true – организационная роль отзывается.

  • false – организационная роль не отзывается.

Пример заполнения словаря:

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

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

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

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

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

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

Словарь с настройками может содержать следующие ключи:

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

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

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

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

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

    • Если значение параметра равно true, пользователям назначается командная роль «Участник».

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

    • Если в значении параметра указана строка или массив строк, то на соответствие этим строкам проверяются названия учетных записей SAML. В настройках ассоциации атрибутов пользователей указывается, какой из атрибутов SAML считать названием учетной записи.

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

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

    • m – многострочное выражение.

  • remove – если значение этого параметра равно true, у не соответствующих критериям отбора пользователей SAML автоматически отзывается роль «Участник».

Пример заполнения словаря:

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

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

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

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

Ассоциация атрибутов и ролей SAML с ролями контроллера#

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

  • is_superuser_role – название роли или ролей SAML, при наличии которых пользователю Automation Controller назначается роль «Системный администратор».

  • is_superuser_attr – название атрибута SAML, используемого для принятия решения о назначении пользователю Automation Controller роли «Системный администратор».

  • is_superuser_value – значение атрибута SAML, необходимое для назначения пользователю Automation Controller роли «Системный администратор».

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

    • true – роль отзывается;

    • false – роль не отзывается.

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

  • is_system_auditor_attr – название атрибута SAML, используемого для принятия решения о назначении пользователю Automation Controller роли «Системный аудитор».

  • is_system_auditor_value – значение атрибута SAML, необходимое для назначения пользователю Automation Controller роли «Системный аудитор».

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

    • true – роль отзывается;

    • false – роль не отзывается.

Эти настройки имеют следующие особенности:

  • Поля с role в названии и поля с value являются списками, и при обработке их значений используется логическое «ИЛИ». Это значит, что для назначения соответствующей роли пользователь SAML должен иметь хотя бы одну роль из списка, заданного в настройках ассоциаций.

  • Если одновременно заданы значения параметров с role и attr в названии, то настройки с attr имеют более высокий приоритет перед role.

  • Назначение ролей «Системный администратор» и «Системный аудитор» происходит при каждом входе пользователя в Automation Controller. Если назначить пользователю роль «Системный администратор» или «Системный аудитор» через графический интерфейс Automation Controller, а не через настройки SAML, то при следующем входе пользователя в систему назначенная роль будет отозвана.

    Чтобы предотвратить отзыв ролей «Системный администратор» или «Системный аудитор», укажите в ключах remove_superusers и remove_system_auditors соответственно значение false.

    Логика работы Automation Controller при отзыве и назначении ролей «Системный администратор» и «Системный аудитор» показана в таблице:

    Наличие роли SAML

    Наличие атрибута SAML

    Наличие нужного значения атрибута SAML

    Действующее значение remove

    Предыдущее значение remove

    Отзыв роли

    Нет

    Нет

    true

    false

    Нет

    Нет

    Нет

    false

    false

    Нет

    Нет

    Нет

    true

    true

    Нет

    Нет

    Нет

    false

    true

    Да

    Да

    Нет

    true

    false

    Да

    Да

    Нет

    false

    false

    Да

    Да

    Нет

    true

    true

    Да

    Да

    Нет

    false

    true

    Да

    Нет

    Да

    Да

    true

    false

    Да

    Нет

    Да

    Да

    false

    false

    Да

    Нет

    Да

    Да

    true

    true

    Да

    Нет

    Да

    Да

    false

    true

    Да

    Нет

    Да

    Нет

    true

    false

    Нет

    Нет

    Да

    Нет

    false

    false

    Нет

    Нет

    Да

    Нет

    true

    true

    Нет

    Нет

    Да

    Нет

    false

    true

    Да

    Нет

    Да

    Не задано

    true

    false

    Да

    Нет

    Да

    Не задано

    false

    false

    Да

    Нет

    Да

    Не задано

    true

    true

    Да

    Нет

    Да

    Не задано

    false

    true

    Да

    Да

    Да

    Да

    true

    false

    Да

    Да

    Да

    Да

    false

    false

    Да

    Да

    Да

    Да

    true

    true

    Да

    Да

    Да

    Да

    false

    true

    Да

    Да

    Да

    Нет

    true

    false

    Нет

    Да

    Да

    Нет

    false

    false

    Нет

    Да

    Да

    Нет

    true

    true

    Нет

    Да

    Да

    Нет

    false

    true

    Да

    Да

    Да

    Не задано

    true

    false

    Да

    Да

    Да

    Не задано

    false

    false

    Да

    Да

    Да

    Не задано

    true

    true

    Да

    Да

    Да

    Не задано

    false

    true

    Да

  • Если значение ключа remove_superusers или remove_system_auditors равно false, соответствующая роль не будет отозвана у пользователя 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, в отношении которых выполняется хотя бы одно из условий:

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

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

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

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

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

  • Значения ключей remove_superusers и remove_system_auditors не заданы, поэтому используются значения по умолчанию – true. Это значит, что у всех пользователей SAML, не удовлетворяющих указанным требованиям, роли «Системный администратор» и «Системный аудитор» будут отозваны при первом входе в систему независимо от того, каким образом они были назначены – через настройки SAML, API или графический интерфейс Automation Controller.

TACACS+#

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

Этот провайдер аутентификации считается устаревшим и в одной из следующих версий Automation Controller станет недоступным для применения.

OIDC#

Важно

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