为 SaltStack Config 配置基于 SAML 的身份验证系统时,需要填写各种信息字段。也可以使用 API 设置基于 SAML 的系统,但不建议采用此方法。
SAML 信息字段
所有 SAML 身份验证信息字段均为必填字段。按如下方式输入 SAML 身份验证配置信息。
如果设置连接时需要帮助,请联系您的管理员。
基本
字段 |
说明 |
---|---|
名称 |
SSE 所用身份验证连接的名称。登录到“身份验证”工作区时,此名称将显示在边栏中,如果要设置多个配置,该名称应唯一。此名称初始创建后便无法更改。 示例:Acme SSO |
基本 URI |
您组织在 SaltStack Config 中使用的基本 URL,也称为主机服务器地址。格式为 FQDN 或 IP 地址,例如 示例: |
实体 ID |
此 SaltStack Config 服务提供程序的唯一 ID。尽管 SAML 的惯例是使用类似 URL 的字符串,但允许使用任何类型的字符串。相比于组织使用的其他 SAML 应用程序,此值必须唯一。确保在将 SaltStack Config 注册为应用程序时使用此同一 ID。 示例: |
组织信息
字段 |
说明 |
---|---|
公司名称 |
组织的名称。 |
显示名称 |
显示为组织名称的名称。 |
网站 |
您组织网站的 URL。此 URL 可以是任何内容,对 SSO 功能没有影响。 |
私钥 |
您生成的私钥,也称为 cert.pem。此密钥应采用 PEM 格式。 |
公钥 |
您生成的公钥和证书,也称为 cert.pub。此密钥应采用 PEM 格式。 |
技术联系人
字段 |
说明 |
---|---|
名称 |
组织中主要负责应用程序的员工的姓名。此信息是 SAML 协议的必需信息,将传递到 SAML 提供程序。SaltStack Config 不直接使用此信息。 |
电子邮件 |
技术联系人的电子邮件地址。 |
支持联系人
字段 |
说明 |
---|---|
名称 |
联系不到应用程序的主要技术联系人时,可以联系的员工的姓名。此信息是 SAML 协议的必需信息,将传递到 SAML 提供程序。SaltStack Config 不直接使用此信息。 |
电子邮件 |
支持联系人的电子邮件地址。 |
提供程序信息
字段 |
说明 |
---|---|
实体 ID |
身份提供程序 (IdP) 的实体 ID。 Azure AD 实体 ID 示例: |
用户 ID |
对将包含永久用户 ID 的映射 SAML 属性的引用。 |
电子邮件 |
对将包含电子邮件地址的映射 SAML 属性的引用。 |
用户名 |
对将包含用户名的映射 SAML 属性的引用。 |
URL |
用于访问身份提供程序的 SAML 端点的 URL。 |
x509 证书 |
X.509 格式的证书,包含通过身份提供程序系统生成的嵌入式公钥。此密钥必须采用 PEM 格式。 |
安全检查
字段 |
说明 |
---|---|
属性声明检查 |
如果希望 SaltStack Config 检查 SAML 属性声明中是否包含个人资料,请选中此框。 |
从命令行 (CLI) 配置 SAML
本指南强烈建议使用 SaltStack Config 用户界面(而不是命令行)配置 SAML。这些说明仅供参考。
要使用 CLI 设置大多数配置标准,请执行以下操作:
- 以 RaaS 用户身份登录:
sudo su raas
- 可选:仅当手动安装 SaltStack Config 时,才需要执行此步骤。在 RaaS 服务器上,安装安装程序文件中包含的 OpenSSL .xml 文件。使用以下命令:
yum install xmlsec1-openssl
注:RedHat 在任何默认存储库中都没有现成可用的 xmlsec1。一种可能的解决办法是从 CentOS 计算机下载 RPM,然后将其传输到 RedHat。
- 导航到用于保存配置文件的目录。任何目录路径都可接受。
- 创建包含身份服务提供程序所需的必要配置信息的 YAML 文件。有关如何设置这些配置文件格式的示例,请参见配置文件示例。
注:
有关各个字段的描述,请参见 SAML 信息字段。
- 使用下列命令执行配置文件:
raas save_sso_config <filepath>
配置文件示例
适用于 Google 的 SAML 配置文件示例
将以下示例中的占位符文本替换为您的 IdP 提供的信息:
name: Google backend: social_core.backends.saml.SAMLAuth settings: base_uri: https://example.com saml_sp_entity_id: raas saml_org_info: en-US: name: Name of Your Organization displayname: Display Name for Your Organization url: https://example.com saml_technical_contact: givenName: Name of Your Technical Contact emailAddress: email@my_technical_contact.com saml_support_contact: givenName: Name of Your Support Contact emailAddress: email@my_support_contact.com saml_enabled_idps: saml: entity_id: https://accounts.google.com/o/your_organization_id attr_user_permanent_id: Your organization's permanent ID attr_email: email@my_email_with_identity_provider.com attr_username: Your organization's username for the IdP url: https://accounts.google.com/o/saml2/your_organization_id x509cert: | -----BEGIN CERTIFICATE----- Insert certificate block of text here -----END CERTIFICATE----- saml_sp_private_key: | -----BEGIN PRIVATE KEY----- Insert private key block of text here -----END PRIVATE KEY----- saml_sp_public_cert: | -----BEGIN CERTIFICATE----- Insert certificate block of text here -----END CERTIFICATE-----
适用于 Okta 的 SAML 配置文件示例
将以下示例中的占位符文本替换为您的 IdP 提供的信息:
name: Okta backend: social_core.backends.saml.SAMLAuth settings: base_uri: https://example.com saml_sp_entity_id: https://example.com/auth/complete/saml saml_org_info: en-US: name: Name of Your Organization displayname: Display Name for Your Organization url: https://example.com saml_technical_contact: givenName: Name of Your Technical Contact emailAddress: email@my_technical_contact.com saml_support_contact: givenName: Name of Your Support Contact emailAddress: email@my_support_contact.com saml_security_config: wantAttributeStatement: False saml_enabled_idps: okta: entity_id: https://www.okta.com/your_organization_id attr_user_permanent_id: Your organization's permanent ID attr_email: email@my_email_with_identity_provider.com attr_username: Your organization's username for the IdP url: https://example.okta.com/app/your_organization_id x509cert: | -----BEGIN CERTIFICATE----- Insert certificate block of text here -----END CERTIFICATE----- saml_sp_private_key: | -----BEGIN PRIVATE KEY----- Insert private key block of text here -----END PRIVATE KEY----- saml_sp_public_cert: | -----BEGIN CERTIFICATE----- Insert certificate block of text here -----END CERTIFICATE-----
适用于 Google 的 OIDC 配置文件示例
将以下示例中的占位符文本替换为您的 IdP 提供的信息:
name: Name of Your Organization backend: social_core.backends.google_openidconnect.GoogleOpenIdConnect settings: base_uri: example.com google_openidconnect_key: your_id.apps.googleusercontent.com google_openidconnect_secret: your_secret
从命令行 (CLI) 更新 SSO 配置
要从 CLI 更新配置标准,请执行以下操作:
- 以 RaaS 用户身份登录:
sudo su raas
- 导航到存储配置文件的目录。如有必要,请更新配置文件。
- 使用下列命令保存配置文件:
raas save_sso_config <filepath>
从命令行 (CLI) 中删除 SSO 配置
如果可以访问 SaltStack Config 用户界面,建议使用 UI 删除 SSO 配置。但是,如果需要,可以使用 API (RaaS) 删除 SSO 配置。
要删除 SSO 配置,需要找到分配给要删除的配置的缩略名。缩略名是配置名称的表示形式,以短划线 (-
) 分隔并全部采用小写字母。例如,缩略名可能为 name-of-your-organization。对于适用于 Google 的 SAML,缩略名为 google
。
- 在 API (RaaS) 中,使用以下命令生成 SSO 后端列表:
client.api.settings.get_sso_backends()
- 从 SSO 后端列表中,找到要删除的配置的缩略名。然后,输入以下命令,并将占位符文本替换为您的配置缩略名:
client.api.settings.delete_sso_config('slug-for-your-configuration')