SAML
Авторизация с помощью существующих систем управления идентификацией
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, вам необходимо заменить существующую конфигурацию, выполнив следующие шаги:
- Выполните
chef-automate config show config.toml. - Отредактируйте
config.toml, чтобы заменить разделdex.v1.sys.connectorsзначениями конфигурации для вашего нового поставщика идентификации. - Выполните
chef-automate config set config.toml, чтобы установить обновленную конфигурацию.
Примечание
Поддерживаемые системы управления идентификацией
- Azure AD
- Office365
- OKTA
- OneLogin
- Ping
- Tivoli Federated Identity Manager
Azure AD
Использование Azure AD в качестве IdP SAML требует специальной настройки как Azure AD, так и Chef Automate.
Примечание
В 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 для получения дополнительных параметров конфигурации.
Предупреждение
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:emailAddressurn:oasis:names:tc:SAML:1.1:nameid-format:unspecifiedurn:oasis:names:tc:SAML:1.1:nameid-format:X509SubjectNameurn:oasis:names:tc:SAML:1.1:nameid-format:WindowsDomainQualifiedNameurn:oasis:names:tc:SAML:2.0:nameid-format:encryptedurn:oasis:names:tc:SAML:2.0:nameid-format:entityurn:oasis:names:tc:SAML:2.0:nameid-format:kerberosurn:oasis:names:tc:SAML:2.0:nameid-format:persistenturn: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/