验证标识提供程序并启用 SSO
先决条件: 设置您的配置文件
此部分描述如何启用 SSO。
验证 IdP
要启用 SSO,您首先要验证 alm IdP。
您需要验证 IdP 以验证 IdP 配置以及 ALM SP 与 IdP 之间的通信。
备注: 如果启用本地身份验证并选择本地身份验证作为身份验证方法,则可以直接启用 SSO 而无需验证 IdP。
先决条件
在验证 IdP 之前确保完成以下操作。
- 至少一个 ALM 站点管理员用户已映射到 IdP 用户。
-
ALM 和 IdP URL 已添加到 IE 可信 URL。
您可以使用 SSO 配置向导验证 IdP。它仅适用于非 SaaS 环境。对于 SaaS 环境,请参阅将验证 URL 发送给 IdP 用户以进行验证。
要使用向导验证 IdP,请执行以下操作:
- 在“启用 SSO”步骤中,从“标识提供程序”字段中,选择您要验证的 IdP。
- 在该步骤的底部,单击“验证”。
-
在您的 IdP 登录页面中,输入您的 IdP 用户名和密码。
-
在“验证状态”字段中,检查验证状态:
状态 描述 等待验证 SSO 验证的初始状态。 验证成功 验证通过。 验证失败 验证失败。“验证状态”字段下方显示了失败详细信息。
您可以复制验证 URL 并将其发送给 IdP 用户进行远程验证。
备注: 在 SaaS 环境中,您只能将验证 URL 发送给 IdP 用户以进行 SSO 验证。
- 在“启用 SSO”步骤中,从“标识提供程序”字段中,选择您要验证的 IdP。
- 在该步骤的底部,单击“复制验证 URL”。
-
在“复制验证 URL”对话框中,单击“复制”并将链接发送给 IdP 用户。
当 IdP 用户打开链接时,他们将重定向到 IdP 登录页面。输入 IdP 用户名和密码后,他们将重定向到一个页面,该页面告知验证是否成功,如果失败,则告知失败的原因。
如果启用了电子邮件通知,则指定的站点管理员用户会收到有关谁访问了 SSO 验证 URL 的电子邮件。有关详细信息,请参阅发送通知。
启用 SSO
alm IdP 验证成功后,您可以启用 SSO。
要启用 SSO,请在此步骤的右下角单击“启用 SSO”。
启用 SSO 后:
-
您不能禁用它。
-
“启用 SSO”步骤重命名为“SSO 验证”,“启用 SSO”按钮消失。
-
您可以添加其他 IdP。
常见问题
答:
根本原因: SAML 响应断言未包含必需的 "IdentityKey" 断言。
解决方案: 如果 IdP 返回了 SAML 响应,则表示 IdP 与 ALM 之间的信任已成功建立。唯一的问题是 ALM 无法验证 IdP 用户。ALM 用户和 IdP 用户是使用 IdentiyKey 值映射的。如果 IdP 不提供 SAML 响应的 IdentityKey 值,则 ALM 无法将 IdP 用户映射到任何 ALM 用户,因此验证失败。
要解决此问题,请在 IdP 中将 IdentityKey 映射为 SAML 属性,其具有唯一标识 IdP 用户的 IdP 属性。
答: 在 Web 浏览器中,输入 ALM SP URL,如下所示: {ALM 主机:端口}/osp/a/alm/auth/app/。如果它将您重定向到 IdP 登录页面,并且在身份验证之后将您重定向回 SP 页面而没有出错,则表示 SP 已从 IdP 收到 SAML 响应: IdP 和 ALM 之间的信任已成功建立。
答:
根本原因: 使用了旧版本的 ALM 客户端启动器。
解决方案: 下载最新的 ALM 客户端启动器,以与 ALM 15.x SSO 解决方案一起使用。
https://marketplace.microfocus.com/appdelivery/content/alm-client-launcher
答: 如果您在*启用本地身份验证中将“启用本地身份验证”设为“是”,则 ALM 在 ALM 端对本地用户进行身份验证,在 IdP 端对 IdP 用户进行身份验证。如果您是 ALM 本地用户,则即使 IdP "alm" 未通过验证,ALM 仍允许您启用 SSO,因为在这种情况下,您仍然有机会作为本地用户登录 ALM 来修复 IdP 配置,以便 IdP 用户可以登录 ALM。
答: 建议您启用本地身份验证,以便在启用 SSO 之后,本地用户仍可以登录 ALM 来解决 SSO 配置问题。
答: 从 15.0.1 开始,启用 SSO 后,所有用户都将通过 SSO 身份验证或本地身份验证进行身份验证。
启用 SSO 后,本地帐户仍保留在 ALM 中。要获得身份验证,每个本地帐户都应满足以下要求之一:
- 每个本地用户都映射到一个 IdP 用户。
- 每个本地用户配置为 ALM 本地用户并启用本地身份验证。
答: ALM 15.0.1 及更高版本支持本地身份验证。启用本地身份验证后,站点管理员可以通过将用户 IdP ID 指定为“本地”来将用户配置为 ALM 本地用户: 此类本地用户可以直接登录 ALM。
答: 对项目数据没有影响。SSO 身份验证仅更改用户管理。
答: 切换到 SSO 模式不会修改现有用户的用户名。他们仍然可以像在非 SSO 模式下运行 ALM 一样访问相同的资源。
他们只是映射到相应的 IdP 用户。USERS 表还有两列: US_IDENTITY_KEY 和 US_IDPID_NAME,用于保留每个用户的用户映射信息。
答: 当 ALM 15 在 SSO 模式下工作时,一些额外的 IdP 会话和 SP 会话将附加到 HTTP 请求的 Cookie 中,这使得请求标头的大小比在非 SSO 模式下运行 ALM 时要大得多。如果用户的反向代理或 ALM 将请求标头的大小限制为小于实际大小,则会发生此问题。
要解决此问题,请修改 ALM Jetty 设置以增大请求标头的大小。推荐大小: 81920。要了解有关如何配置 Jetty 连接器的 "requestHeaderSize" 的详细信息,请参阅 Jetty 文档。
如果反向代理还限制了请求标头的大小,则让网络管理员修改大小。
答: 要手动修改 SSO 配置文件,请执行以下操作:
-
在
{安装文件夹}的qcConfigFile.properties文件中,将 "repositoryPath" 的值更新为新的存储库文件夹。 -
在
{部署文件夹}/wrapper的wrapper.conf文件中,将 "wrapper.java.additional.34" 的值更新为以下值:wrapper.java.additional.34=-Dalm.osp.framework.generic-properties-filename="{新 ALM 存储库}/sa/DomsInfo/osp/basic.properties" -
在
{项目存储库文件夹}的basic.properties文件中,将 "oauth-keystore.file" 的值更新为以下内容:oauth-keystore.file={新 ALM 存储库}\\sa\\DomsInfo/osp/basic.pfx -
在
{项目存储库文件夹}的ospcfg.xml文件中,将 name="propertiesFile" 的值更新为以下内容:<NamedValue value="{新 ALM 存储库}\sa\DomsInfo/osp/alm.properties" name="propertiesFile"/> - 在 SSO 配置工具中,执行配置服务提供程序和配置标识提供程序。
备注: 有关如何更改 ALM 存储库的详细信息,请参阅使用 TD for QC 时如何将域存储库从一个位置移动到另一个位置。
答: 在 Chrome 或 Edge 中更改安全设置:
- 在 Chrome 中输入 "chrome://flags/",或者在 Edge 中输入 "edge://flags/"。
- 搜索关键字 "SameSite by default cookies"。
-
对于 Chrome: 将“Cookies without SameSite must be secure”和“SameSite by default cookies”选项设置为“Disabled”。
对于 Edge: 将“SameSite by default cookies”和“Schemeful Same-Site”选项设置为“Disabled”。

