本文档采用自动化机器翻译技术翻译。 尽管我们力求提供准确的译文,但不对翻译内容的完整性、准确性或可靠性作出任何保证。 若出现任何内容不一致情况,请以原始 英文 版本为准,且原始英文版本为权威文本。

SAML (ADFS)

设置 ADFS 和 SUSE® Security 集成

本节首先描述 ADFS 的设置步骤,然后在 SUSE® Security 控制台中进行设置。

ADFS 设置

  1. 在 AD FS 管理中,右键单击 “Relying Party Trusts” 并选择 “Add Relying Party Trust…​”。

    adfsSetup

  2. 从欢迎步骤中选择 “Start” 按钮。

    adfsSetup

  3. 选择 “Enter data about the relying party manually” 并选择 “Next”。

    adfsSetup

  4. 在显示名称字段中输入一个唯一名称,并选择 “Next”。

    adfsSetup

  5. 选择 “Next” 以跳过令牌加密。

    adfsSetup

  6. 检查 “Enable support for the SAML 2.0 WebSSO protocol”,并将 SAML 重定向 URI 从 SUSE® Security 设置 > SAML 设置页面输入到 “Relying party SAML 2.0 SSO service URL” 字段中。 选择 “Next” 以继续。

    adfsSetup

  7. 将相同的 SAML 重定向 URI 输入到 “Relying party trust identifier” 字段中,然后点击 “Add”;然后选择 “Next” 以继续。

    adfsSetup

  8. 自定义访问控制;然后选择 “Next” 以继续。

    adfsSetup

  9. 选择 “Next” 以继续。

    adfsSetup

  10. 选择 “Close” 以完成。

  11. 选择编辑声明发布策略 …​

    adfsSetup

  12. 选择 “Add Rule…​” 并选择 “Send LDAP Attributes as Claims”;然后选择 “Next”。 命名规则并选择 Active Directory 作为属性存储。如果默认角色已设置,则仅需要用户名的外发声明进行身份验证;否则需要组进行角色映射。 电子邮件为可选项。

    • SAM-账户名称 → 用户名

    • 电子邮件地址 → 邮箱

    • 令牌组 — 未限定名称 → 组

    adfsSetup

  13. 选择 “Add Rule…​” 并选择 “Transform an Incoming Claim”;然后选择 “Next”。 命名规则并将字段设置为如下截图所示。 外发名称 ID 格式需要为临时标识符。

    adfsSetup

SUSE® Security 设置

  1. 身份提供者单点登录 URL

    • 从 AD FS 管理 > 服务查看端点并使用 “SAML 2.0/WS-Federation” 端点 URL。

    • 示例: https://<adfs-fqdn>/adfs/ls

  2. 身份提供者发行者

    • 在 AD FS 管理控制台中右键单击 AD FS 并选择 “Edit Federation Service Properties…​”;使用 “Federation Service identifier”。

    • 示例:http://<adfs-fqdn>/adfs/services/trust

  3. X.509 证书

    • 从 AD FS 管理中选择服务 > 证书,右键单击令牌签名证书并选择 “View Certificate…​”

    • 选择详细信息选项卡并点击 “Copy to File”

    • 将其保存为 Base-64 编码的 x.509 (.CER) 文件

    • 将文件的内容复制并粘贴到 X.509 证书字段中

  4. 组声明

    • 输入组的外发声明名称

    • 示例:组

  5. 默认角色

    • 建议设置为 “None”,除非您希望允许任何经过身份验证的用户拥有默认角色。

  6. 角色映射

    • 为适当的角色设置用户的组名。 (请参见下面的屏幕截图示例。)

      NVadfsSetup

将组映射到角色和名称空间

请参阅 用户和角色 部分,了解如何将组映射到预设和自定义角色以及 SUSE® Security 中的命名空间。

查错

  1. ADFS SamlResponseSignature 需要是 MessageOnly 或 MessageAndAssertion。 使用 Get-AdfsRelyingPartyTrust 命令来验证或更新它。

    adfsTroubleshooting

  2. Kubernetes 节点与 ADFS 服务器之间的时间同步

为了成功认证,Kubernetes 节点与 ADFS 服务器之间的时间需要保持一致,以避免时间同步或时钟漂移问题。

建议使用 NTP 服务器,并确保所有服务器的时间设置相同。

请检查并确认 ADFS 和 SUSE® Security 主机都已同步,潜在延迟不超过 10 秒。您可以使用 Linux 和 Windows 命令检查日期、时间和 NTP 服务器活动。

您可以通过在 SUSE® Security 界面中禁用并重新启用配置来重新加载认证时间,如下所示:

  • 使用管理员用户登录 SUSE® Security

  • 转到设置

  • 点击按钮以禁用并启用 SAML 设置

    • 确保保留配置设置!

一旦设置重新启用,您可以尝试使用 ADFS 用户登录。如果成功,这确认问题是由于 Kubernetes 节点与 ADFS 服务器之间的时间同步错误。

  1. SAML字符在SUSE® Security UI中必须区分大小写。

    属性名称区分大小写。确保在此配置的任何SAML属性名称与应用程序配置完全匹配。SAML必须指向正确的URL以进行身份验证。

    `SUSE® Security UI → Settings → SAML Settings`中的所有字段均区分大小写。

    SUSE® Security控制器日志包含有关与 ADFS 服务器身份验证的相关信息和错误,这将有助于识别根本原因。我们建议重新创建失败的登录条件并检查日志。

  2. 确保输入正确的组、证书和协议。

    SAML设置需要与以下配置匹配:

    设置

    身份提供者单点登录 URL

    需要HTTPS协议。

    身份提供者发行者

    需要HTTP协议。

    ADFS SamlResponseSignature

    需要是MessageOnly或MessageAndAssertion。

这些设置需要在您的ADFS服务器和SUSE® Security UI中进行验证。

所选证书需要有效且正确生成,包括其`CA Root`和`Intermediate Certificates`。您可以使用受信任的证书颁发机构、Windows或自动化工具生成它们,例如 LetsEncrypt

如果这些参数中的任何一个不正确,当您尝试使用SAML身份验证的ADFS用户登录SUSE® Security时,将收到`Authentication Failed`错误。