为 SaltStack Config 创建新的 SAML 配置之前,请通读这些步骤,确保您熟悉配置过程。
预配置步骤
在 SaltStack Config 中配置 SAML 之前:
- 安装 SAML 身份提供程序 (IdP),并确保其正在运行。本主题不提供有关安装任何 IdP 的说明。如需支持,请联系您的 IdP 管理员。
- 确保您有权访问 IdP 提供的凭据和配置数据。此外,请参见以下有关创建服务提供程序证书的部分。
创建服务提供程序证书
您需要生成证书,以将 SaltStack Config 添加为经 IdP 批准的服务提供程序。SaltStack Config 服务提供程序需要 RSA 密钥对。为 SaltStack Config 配置 SAML 时,需要在多个位置输入私钥和公钥值。
要创建证书,请执行以下操作:
- 使用以下命令生成一个称为 cert.perm 的私钥:
openssl genrsa -out cert.pem 2048
- 创建与刚刚在上一步中创建的私钥相关联的公钥。以下命令将引导您完成该过程:
openssl req -new -x509 -key cert.pem -out cert.pub -days 1825
- 此命令运行时,根据需要回答提示,例如您的:
- 国家/地区名称
- 州或省名称
- 地区或城市名称
- 组织或公司名称
- 组织单位名称
- 服务器主机名
- 电子邮件地址
现在,您具有将在 SAML 配置中使用的公钥和私钥对。记录这些公钥和私钥对,以便在完成其余配置过程时轻松访问。继续执行下一部分,了解有关设置 SAML 配置的说明。
设置 SAML 配置
完成此部分中的步骤之前,请确保已为服务提供程序 SaltStack Config 生成公钥和私钥对。有关更多说明,请参见创建服务提供程序证书。
要在 SaltStack Config 中使用组织的首选 IdP 设置 SAML SSO,请执行以下操作:
- 单击侧边菜单上的管理 > 身份验证。
- 单击创建。
- 从配置类型菜单中,选择 SAML。
工作区将显示 SAML 配置类型所支持的设置。
- 在设置选项卡中的以下字段中填写有关 SaltStack Config 安装的信息:
- 名称
- 基本 URI
- 实体 ID
- 公司名称
- 显示名称
- 网站
注: 有关这些字段的描述,请参见 SAML 信息字段。 - 在私钥字段中,复制为 SaltStack Config 创建服务提供程序证书时生成的私钥。有关详细信息,请参见创建服务提供程序证书。
- 在公钥字段中,复制为 SaltStack Config 创建服务提供程序证书时生成的公钥。
- 在以下字段中填写相关联系信息:
- 技术联系人
- 支持联系人
- 在提供程序信息部分的以下字段中,填写有关身份提供程序 (IdP) 的元数据:
- 实体 ID
- 用户 ID
- 电子邮件
- 用户名
- URL
- x509 证书
注: ADFS、Azure AD 和 Google SAML 是通用身份提供程序的示例。您将在这些字段中填写 IdP 提供的信息。有关这些字段的详细信息,请参见 SAML 信息字段。 - 可选:如果希望 SaltStack Config 检查 SAML 属性声明中是否包含个人资料,请选中属性声明检查框。该选项默认处于选中状态。
- 单击保存。
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 中预先注册这些用户。
要手动添加用户,请执行以下操作:
- 在“身份验证”工作区中,从身份验证配置列表中选择您的 SAML 配置,以打开配置设置。
- 在配置设置中,单击用户选项卡。
- 单击创建按钮。
- 在用户名字段中,输入要添加的用户的凭据。此用户名必须与为其分配的 SAML 用户名相同。
注: 确保此用户名准确无误。创建用户后,将无法更改或重命名其用户名。
- 在角色字段中,选择要将用户添加到的任何角色。默认情况下,所有新用户都添加到用户角色。有关详细信息,请参见配置基于 SAML 的 RBAC。
- 单击保存。
注: 手动创建用户后,只能在首次登录之前删除用户。用户初次登录后,删除按钮在此工作区中仍可用,但不再起作用。
故障排除和验证配置
在 SaltStack Config 中配置 SSO 后,请尝试以典型用户身份登录,以确保登录过程正常运行且角色和权限正确无误。
要对潜在错误进行故障排除,请尝试:
- 使用 SAML 跟踪工具,该工具可用于 Firefox 和 Chrome Web 浏览器。
- 查看
/var/log/raas/raas
日志消息。