Spec-Zone.ru › Chef 17

SAML

[редактировать на GitHub]

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

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

Chef Automate поддерживает использование как локальных пользователей, так и пользователей, управляемых извне, от внешнего поставщика идентификации (IdP). Можно использовать как одну службу LDAP (или MSAD для упрощенной настройки установок Active Directory), так и одного IdP SAML. Вам не нужно настраивать внешний IdP, если вы просто хотите создать пользователей и команды локально в Chef Automate. Дополнительную информацию см. в документации по пользователям.

Chef Automate использует Dex для поддержки интеграции SAML. Для настройки аутентификации для вашей установки Chef Automate создайте файл TOML, содержащий частичную конфигурацию SAML. Затем выполните chef-automate config patch </path/to/your-file.toml>, чтобы развернуть изменения.

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

Вы можете интегрировать только одного IdP с использованием SAML и одного IdP с использованием LDAP за раз. Chef Automate не поддерживает одновременное использование двух IdP SAML или двух служб LDAP.

Если вам необходимо изменить настроенного IdP, вам необходимо заменить существующую конфигурацию, выполнив следующие шаги:

  1. Выполните chef-automate config show config.toml.
  2. Отредактируйте config.toml, чтобы заменить раздел dex.v1.sys.connectors значениями конфигурации для вашего нового поставщика идентификации.
  3. Выполните chef-automate config set config.toml, чтобы установить обновленную конфигурацию.

Примечание

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

Поддерживаемые системы управления идентификацией

  • Azure AD
  • Office365
  • OKTA
  • OneLogin
  • Ping
  • Tivoli Federated Identity Manager

Azure AD

Использование Azure AD в качестве IdP SAML требует специальной настройки как Azure AD, так и Chef Automate.

Примечание

Сертификат подписи, используемый для интеграции SAML Chef Automate с Azure AD, требует ручного управления. Вращение ключей подписи не выполняется автоматически.

В Azure AD добавьте Chef Automate как «приложение вне галереи», а затем настройте его метод входа SAML. Документация Azure AD предоставляет подробное руководство. Введите https://automate.example.com/dex/callback в качестве значения для Идентификатор (Entity ID) и URL ответа (Assertion Consumer Service URL).

Вы можете использовать стандартные утверждения, предоставляемые Azure AD. Не забудьте отредактировать конфигурацию Chef Automate в config.toml, чтобы отразить эту информацию об утверждениях.

Загрузите Сертификат (Base64) в Azure AD и обратите внимание на URL входа для использования в конфигурации Chef Automate.

После настройки Azure AD отредактируйте файл конфигурации Chef Automate config.toml для отражения значений, введенных в интерфейсе Azure AD. Минимальный фрагмент конфигурации в config.toml будет похож на:

[dex.v1.sys.connectors.saml]
ca_contents="""
<<Certificate (Base64)>>
"""
sso_url = "<<Login URL>>"
email_attr = "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress"
username_attr = "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress"
entity_issuer = "https://automate.example.com/dex/callback"

где:

  • ca_contents содержит значение Сертификат (Base64) и включает маркеры -----BEGIN CERTIFICATE----- и -----END CERTIFICATE-----
  • sso_url содержит значение URL входа
  • entity_issuer содержит значение Идентификатор (Entity ID)

См. Настройки конфигурации SAML для получения дополнительных параметров конфигурации.

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

Azure AD позволяет выбирать поле NameID и необязательно применять преобразования к нему. Настройка SAML учитывается только в том случае, если выбранное значение в «Выберите формат идентификатора имени» в Azure AD соответствует настройке name_id_policy_format в Chef Automate.

Настройки конфигурации SAML

Настройки конфигурации SAML:

[dex.v1.sys.connectors.saml]
ca_contents = "<your ca contents>"          # required
sso_url = "<your SSO URL>"                  # required
email_attr = "<your email attribute>"       # required
username_attr = "<your username attribute>" # required
groups_attr = "<your groups attribute>"     # optional
allowed_groups = ["group1", "group 2"]      # optional
entity_issuer = "<your entity issuer>"      # optional
name_id_policy_format = "<see below>"       # optional

ca_contents должен содержать копию сертификата, используемого для подписи утверждений SAML. Сертификат должен быть строкой в формате PEM. Например,

ca_contents = """-----BEGIN CERTIFICATE-----
MIIE+DCCAuCgAwIBAgIBATANBgkqhkiG9w0BAQsFADAcMRowGAYDVQQDExFDaGVm
[...]
s1V9oZ7+NcK8vtcdXhjB5N65LbPlaT3nbvXGIvsQmoGc+FQ5WI4agoNlofOCogdW
k2WFcoiiKyeIznNScx/K6AeykKR/lPrJedanSA==
-----END CERTIFICATE-----
"""

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

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

Установка allowed_groups обеспечивает вход SAML для членов перечисленных групп. Все остальные группы пользователей, которые не находятся в списке, отбрасываются и недоступны для Chef Automate. В примере конфигурации выше, войти в систему могут только пользователи из «group1» или «group2», и эти группы будут отображаться как team:saml:group1 и team:saml:group2 соответственно.

Chef Automate поддерживает использование SAML для аутентификации пользователей и применения разрешений к группам SAML. См. Обзор IAM.

Выражения членов необходимы для пользователей и команд, управляемых извне, а также для токенов API. См. IAM_v2_Guide.

[dex.v1.sys.connectors.saml]
  ca_contents = "<your ca contents>"
  sso_url = "<your SAML SSO URL>"

  ###
  # SAML Attributes to map to a user's Chef Automate session
  ###
  # Example: "email"
  email_attr = "<your email attribute>"
  # Example: "name"
  username_attr = "<your username attribute>"
  # Example: "groups"
  groups_attr = "<your groups attribute>"

  # Optional: Manually specify Chef Automate's Issuer value.
  #
  # When provided Chef Automate will include this as the Issuer value in the SAML
  # AuthnRequest. It will also override the redirectURI as the required audience
  # when evaluating AudienceRestriction elements in the response.
  # Example: "https://automate.example.com/dex/callback"
  entity_issuer = "<your entity issuer>"

  # Optional: Specify the NameIDPolicy to use
  #
  # When provided, Chef Automate will request a name ID of the configured format
  # in the SAML AuthnRequest.
  # Defaults to "urn:oasis:names:tc:SAML:2.0:nameid-format:persistent".
  #
  # Note: Even when configured otherwise, the username gathered from the SAML
  # response is _treated_ as persistent. So, if this is set to
  #    "urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress"
  # and a user has changed their email address, they will be a _new_ user to Chef
  # Automate.
  name_id_policy_format = "urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified"

В вашем IdP SAML (поставщике идентификации) ваша инстанция Chef Automate должна быть указана как поставщик услуг (SP). Для этого используйте https://automate.example.com/dex/callback. Конкретные элементы конфигурации различаются в зависимости от продуктов IdP, но это часто что-то вроде «URI потребления утверждений» или «URL единого входа». Для «URI аудитории» или «SP Entity ID» используйте тот же адрес.

Эти значения принимаются для name_id_policy_format:

  • urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress
  • urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified
  • urn:oasis:names:tc:SAML:1.1:nameid-format:X509SubjectName
  • urn:oasis:names:tc:SAML:1.1:nameid-format:WindowsDomainQualifiedName
  • urn:oasis:names:tc:SAML:2.0:nameid-format:encrypted
  • urn:oasis:names:tc:SAML:2.0:nameid-format:entity
  • urn:oasis:names:tc:SAML:2.0:nameid-format:kerberos
  • urn:oasis:names:tc:SAML:2.0:nameid-format:persistent
  • urn:oasis:names:tc:SAML:2.0:nameid-format:transient

© Chef Software, Inc.
Licensed under the Creative Commons Attribution 3.0 Unported License.
The Chef™ Mark and Chef Logo are either registered trademarks/service marks or trademarks/servicemarks of Chef, in the United States and other countries and are used with Chef Inc's permission.
We are not affiliated with, endorsed or sponsored by Chef Inc.
https://docs.chef.io/automate/saml/

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API