SaltStack Config 创建新的 SAML 配置之前,请通读这些步骤,确保您熟悉配置过程。

预配置步骤

SaltStack Config 中配置 SAML 之前:

  • 安装 SAML 身份提供程序 (IdP),并确保其正在运行。本主题不提供有关安装任何 IdP 的说明。如需支持,请联系您的 IdP 管理员。
  • 确保您有权访问 IdP 提供的凭据和配置数据。此外,请参见以下有关创建服务提供程序证书的部分。

创建服务提供程序证书

您需要生成证书,以将 SaltStack Config 添加为经 IdP 批准的服务提供程序。SaltStack Config 服务提供程序需要 RSA 密钥对。为 SaltStack Config 配置 SAML 时,需要在多个位置输入私钥和公钥值。

注: 可以在任何系统上生成此密钥对。不需要在 SSE 服务器上创建。可以在安装了 openssl 实用程序的任何系统上运行以下命令。或者,也可以使用 Salt 生成自签名证书。请参见 对 TLS Salt 模块创建自签名证书文档。

要创建证书,请执行以下操作:

  1. 使用以下命令生成一个称为 cert.perm 的私钥:
    openssl genrsa -out cert.pem 2048
  2. 创建与刚刚在上一步中创建的私钥相关联的公钥。以下命令将引导您完成该过程:
    openssl req -new -x509 -key cert.pem -out cert.pub -days 1825
  3. 此命令运行时,根据需要回答提示,例如您的:
    • 国家/地区名称
    • 州或省名称
    • 地区或城市名称
    • 组织或公司名称
    • 组织单位名称
    • 服务器主机名
    • 电子邮件地址

现在,您具有将在 SAML 配置中使用的公钥和私钥对。记录这些公钥和私钥对,以便在完成其余配置过程时轻松访问。继续执行下一部分,了解有关设置 SAML 配置的说明。

设置 SAML 配置

完成此部分中的步骤之前,请确保已为服务提供程序 SaltStack Config 生成公钥和私钥对。有关更多说明,请参见创建服务提供程序证书

要在 SaltStack Config 中使用组织的首选 IdP 设置 SAML SSO,请执行以下操作:

  1. 单击侧边菜单上的管理 > 身份验证
  2. 单击创建
  3. 配置类型菜单中,选择 SAML

    工作区将显示 SAML 配置类型所支持的设置。

  4. 设置选项卡中的以下字段中填写有关 SaltStack Config 安装的信息:
    • 名称
    • 基本 URI
    • 实体 ID
    • 公司名称
    • 显示名称
    • 网站
    注: 有关这些字段的描述,请参见 SAML 信息字段
  5. 私钥字段中,复制为 SaltStack Config 创建服务提供程序证书时生成的私钥。有关详细信息,请参见创建服务提供程序证书
  6. 公钥字段中,复制为 SaltStack Config 创建服务提供程序证书时生成的公钥。
  7. 在以下字段中填写相关联系信息:
    • 技术联系人
    • 支持联系人
  8. 提供程序信息部分的以下字段中,填写有关身份提供程序 (IdP) 的元数据:
    • 实体 ID
    • 用户 ID
    • 电子邮件
    • 用户名
    • URL
    • x509 证书
    注: ADFS、Azure AD 和 Google SAML 是通用身份提供程序的示例。您将在这些字段中填写 IdP 提供的信息。有关这些字段的详细信息,请参见 SAML 信息字段
  9. 可选:如果希望 SaltStack Config 检查 SAML 属性声明中是否包含个人资料,请选中属性声明检查框。该选项默认处于选中状态。
  10. 单击保存

SaltStack Config 的 SAML 配置现已完成。继续执行下一部分,了解有关使用服务提供程序信息配置 IdP 的说明。

使用服务提供程序信息配置 IdP

完成此部分中的步骤之前,请确保先在 SaltStack Config 中配置了 SAML。有关详细信息,请参见有关设置 SAML 配置的说明。

要完成 SAML 配置,身份提供程序需要两个重要数据:

  • AssertionCustomerService URL
  • SaltStack Config 创建服务提供程序证书时生成的公用 (x509) 证书(公钥)。有关详细信息,请参见创建服务提供程序证书

AssertionCustomerService URL 是服务提供程序在建立身份断言时用于接受 SAML 消息和工件的 Web 地址。在本情形中,SaltStack Config 是服务提供程序。

以下是 AssertionCustomerService URL 的典型格式示例:https://<your-sse-hostname>/auth/complete/saml

将此数据提供给 IdP 后,继续执行下一部分,了解有关创建属性映射的说明。

创建属性映射

SaltStack Config 从入站 SAML 断言提取有关用户的信息。因此,IdP 必须确保将所需的值作为附加属性发送。这些属性的映射过程特定于每个 SAML 身份提供程序。如果在创建属性映射时需要帮助,请参阅您的 IdP 文档或联系您的管理员。

SaltStack Config 需要定义用户的以下属性:

  • 用户 ID
  • 电子邮件
  • 用户名

许多组织会将所有这三个值映射到一个属性:用户的电子邮件地址。由于用户的电子邮件地址在整个组织中通常具有唯一性,因此经常使用此属性。

配置基于 SAML 的 RBAC

SaltStack Config 支持为各个角色中的用户创建角色和权限。基于 SAML 的 RBAC 的管理方式与管理凭据在 API (RaaS) 服务器上的 SaltStack Config 中本地存储的用户相同。有关“角色”工作区的详细信息,请参见角色和权限

创建角色后,可以添加 SAML 用户并为其分配角色。有关详细信息,请参见以下有关添加用户的部分。

添加用户

默认情况下,只有在用户首次使用 SAML 成功登录后,才会在 SaltStack Config 中注册新用户。或者,您也可以手动添加用户,在 SaltStack Config 中预先注册这些用户。

要手动添加用户,请执行以下操作:

  1. 在“身份验证”工作区中,从身份验证配置列表中选择您的 SAML 配置,以打开配置设置。
  2. 在配置设置中,单击用户选项卡。
  3. 单击创建按钮。
  4. 用户名字段中,输入要添加的用户的凭据。此用户名必须与为其分配的 SAML 用户名相同。
    注: 确保此用户名准确无误。创建用户后,将无法更改或重命名其用户名。
  5. 角色字段中,选择要将用户添加到的任何角色。默认情况下,所有新用户都添加到用户角色。有关详细信息,请参见配置基于 SAML 的 RBAC
  6. 单击保存
    注: 手动创建用户后,只能在首次登录之前删除用户。用户初次登录后,删除按钮在此工作区中仍可用,但不再起作用。

故障排除和验证配置

SaltStack Config 中配置 SSO 后,请尝试以典型用户身份登录,以确保登录过程正常运行且角色和权限正确无误。

要对潜在错误进行故障排除,请尝试:

  • 使用 SAML 跟踪工具,该工具可用于 Firefox 和 Chrome Web 浏览器。
  • 查看 /var/log/raas/raas 日志消息。
注: 初始置备且 SAML 身份验证成功后,无法通过 SaltStack Config 用户界面或使用 API 删除用户。