SaltStack Config 配置基于 SAML 的身份验证系统时,需要填写各种信息字段。也可以使用 API 设置基于 SAML 的系统,但不建议采用此方法。

SAML 信息字段

所有 SAML 身份验证信息字段均为必填字段。按如下方式输入 SAML 身份验证配置信息。

注:

如果设置连接时需要帮助,请联系您的管理员。

基本

字段

说明

名称

SSE 所用身份验证连接的名称。登录到“身份验证”工作区时,此名称将显示在边栏中,如果要设置多个配置,该名称应唯一。此名称初始创建后便无法更改。

示例:Acme SSO

基本 URI

您组织在 SaltStack Config 中使用的基本 URL,也称为主机服务器地址。格式为 FQDN 或 IP 地址,例如 https://example.com不得以斜杠结尾。

示例:https://sse.example.com

实体 ID

SaltStack Config 服务提供程序的唯一 ID。尽管 SAML 的惯例是使用类似 URL 的字符串,但允许使用任何类型的字符串。相比于组织使用的其他 SAML 应用程序,此值必须唯一。确保在将 SaltStack Config 注册为应用程序时使用此同一 ID。

示例:https://sse.example.com/saml

组织信息

字段

说明

公司名称

组织的名称。

显示名称

显示为组织名称的名称。

网站

您组织网站的 URL。此 URL 可以是任何内容,对 SSO 功能没有影响。

私钥

您生成的私钥,也称为 cert.pem。此密钥应采用 PEM 格式。有关详细信息,请参见创建服务提供程序证书

公钥

您生成的公钥和证书,也称为 cert.pub。此密钥应采用 PEM 格式。有关详细信息,请参见创建服务提供程序证书

技术联系人

字段

说明

名称

组织中主要负责应用程序的员工的姓名。此信息是 SAML 协议的必需信息,将传递到 SAML 提供程序。SaltStack Config 不直接使用此信息。

电子邮件

技术联系人的电子邮件地址。

支持联系人

字段

说明

名称

联系不到应用程序的主要技术联系人时,可以联系的员工的姓名。此信息是 SAML 协议的必需信息,将传递到 SAML 提供程序。SaltStack Config 不直接使用此信息。

电子邮件

支持联系人的电子邮件地址。

提供程序信息

字段

说明

实体 ID

身份提供程序 (IdP) 的实体 ID。

Azure AD 实体 ID 示例:https://sts.windows.net/2f09bc14-a1f0-48ce-8280-0a09e775e40d/

用户 ID

对将包含永久用户 ID 的映射 SAML 属性的引用。

电子邮件

对将包含电子邮件地址的映射 SAML 属性的引用。

用户名

对将包含用户名的映射 SAML 属性的引用。

URL

用于访问身份提供程序的 SAML 端点的 URL。

x509 证书

X.509 格式的证书,包含通过身份提供程序系统生成的嵌入式公钥。此密钥必须采用 PEM 格式。

安全检查

字段

说明

属性声明检查

如果希望 SaltStack Config 检查 SAML 属性声明中是否包含个人资料,请选中此框。

从命令行 (CLI) 配置 SAML

本指南强烈建议使用 SaltStack Config 用户界面(而不是命令行)配置 SAML。这些说明仅供参考。

要使用 CLI 设置大多数配置标准,请执行以下操作:

  1. 以 RaaS 用户身份登录:
    sudo su raas
  2. 可选:仅当手动安装 SaltStack Config 时,才需要执行此步骤。在 RaaS 服务器上,安装安装程序文件中包含的 OpenSSL .xml 文件。使用以下命令:
    yum install xmlsec1-openssl
    注:

    RedHat 在任何默认存储库中都没有现成可用的 xmlsec1。一种可能的解决办法是从 CentOS 计算机下载 RPM,然后将其传输到 RedHat。

  3. 导航到用于保存配置文件的目录。任何目录路径都可接受。
  4. 创建包含身份服务提供程序所需的必要配置信息的 YAML 文件。有关如何设置这些配置文件格式的示例,请参见配置文件示例
    注:

    有关各个字段的描述,请参见 SAML 信息字段

  5. 使用下列命令执行配置文件:
    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 更新配置标准,请执行以下操作:

  1. 以 RaaS 用户身份登录:
    sudo su raas
  2. 导航到存储配置文件的目录。如有必要,请更新配置文件。
  3. 使用下列命令保存配置文件:
    raas save_sso_config <filepath>

从命令行 (CLI) 中删除 SSO 配置

如果可以访问 SaltStack Config 用户界面,建议使用 UI 删除 SSO 配置。但是,如果需要,可以使用 API (RaaS) 删除 SSO 配置。

要删除 SSO 配置,需要找到分配给要删除的配置的缩略名。缩略名是配置名称的表示形式,以短划线 (-) 分隔并全部采用小写字母。例如,缩略名可能为 name-of-your-organization。对于适用于 Google 的 SAML,缩略名为 google

  1. 在 API (RaaS) 中,使用以下命令生成 SSO 后端列表:
    client.api.settings.get_sso_backends()
  2. 从 SSO 后端列表中,找到要删除的配置的缩略名。然后,输入以下命令,并将占位符文本替换为您的配置缩略名:
    client.api.settings.delete_sso_config('slug-for-your-configuration')