Spec-Zone.ru › Chef 16

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.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.

Примечание

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

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

[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"

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

Принимаются следующие значения для 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