分享此页面

# 设置 SSO 身份验证 (适用于 ALM 15.00)

本主题描述如何设置 SSO 身份验证以连接到 ALM。

有关如何在 ALM 15.0.1 中设置 SSO 身份验证的详细信息, 请参阅设置 SSO 身份验证。

备注: 对于 CAC (通用访问卡) 和 SiteMinder, 请参阅《ALM External Authentication Configuration Guide》。

在本主题中︰

## 概述

此部分描述如何在联合环境中授权对 ALM 的 SSO 访问。授权后, 用户可以像在站点上使用其他 SSO 应用程序一样, 使用单点登录来登录 ALM。

### ALM 如何支持 SSO

ALM 通过 SAML 2.0 支持 SSO, 并充当 SSO 的服务提供程序 (SP)。您必须使用 SAML 2.0 联合身份验证协议来实现联合身份验证服务, 使其充当标识提供程序 (IdP)。

为了简化单点登录, ALM 服务提供程序 (SP) 将身份验证请求发送给 IdP, IdP 是一种联机服务, 使用安全令牌对用户进行身份验证。ALM 服务提供程序 (SP) 能够在与标识提供程序 (IdP) 通信时唯一地标识用户是至关重要的。

### 关于授权用户

当用户登录时, ALM 会尝试在 ALM 中找到匹配的用户。

场景 | 描述和结果
--- | ---
存在匹配的用户 | ALM 通过标识密钥和 IdP ID 进行检查。如果这两项都定位到一个用户, 则授权该用户。
不存在匹配的用户 | 用户不被授权, 无法登录。 如果启用了自动用户配置, 则 ALM 将运行自动用户配置过程以在 ALM 中创建匹配的用户。有关详细信息, 请参见自动用户配置的配置。

返回页首

## 先决条件

您已经获取了用于 ALM SP 签署 SAML 2 和 OAuth 令牌的证书 (或用于存储证书的密钥库文件)。

密钥库文件将上载到 SSO 配置工具。

确保将 ALM 服务器、反向代理或 IdP 的 https 证书添加到 JVM 运行时的可信存储中, JVM 运行时用于运行 ALM 以便成功进行身份验证。

如果将 ALM 部署在群集环境中, 则 SSO 身份验证要求所有 ALM 节点和用户的 IdP 服务器上的系统时间都尽可能紧密地同步。这些服务器上的系统可以配置为使用网络时间同步协议, 例如网络时间协议 (NTP)。如果任何 ALM 节点上的时间与 IdP 服务器上的时间不同, 则身份验证失败。

返回页首

## 配置 ALM SP

1. 登录 ALM“站点管理”。

2. 单击“工具”>“SSO 配置”以打开 SSO 配置工具。

3. 单击“常规设置”>“属性”, 然后提供以下信息。

   字段 (* 为必填项) | 描述
   --- | ---
   *OAuth 客户端密钥 | ALM 服务提供程序 (SP) 用于生成访问令牌的密钥。
   *通信 FQDN | ALM 服务器 FQDN (完全限定域名)。如果在 ALM 服务器的前面使用了 Web 服务器/反向代理, 则它应当是 Web 服务器 FQDN。
   *通信端口 | ALM 服务器端口号。如果使用了 Web 服务器/反向代理, 则此项应为 Web 服务器端口号。 该端口可能会被重写。可向网络团队进行核实以获取该端口。
   *启用安全通信 | ALM 服务器是否使用 HTTPS 协议 (TLS) 如果使用了 Web 服务器/反向代理, 则此项应为 Web 服务器是否使用 HTTPS 协议 (TLS)。该协议可能会被重写。可向网络团队核实。
   使用反向代理 | 是否使用反向代理。如果是, 还应当指定反向代理端口。
   反向代理端口 | 反向代理的端口号
   启用安全反向代理 | 反向代理是否使用 HTTPS 协议 (TLS)

4. 单击“保存”以保存设置。

5. 单击“常规设置”>“SAML2 证书”以提供证书。

   您可以通过上载密钥库文件或手动输入证书信息来提供证书。

   通过上载密钥库文件来提供证书 | 在“证书提交类型”字段中, 选择“上载密钥库文件”。 在“选择要上载的文件”字段中, 选择包含证书的密钥库文件。 确保密钥库文件中的证书同时包含私钥和公钥。 ALM 支持的密钥库类型为: JKS、JCEKS 和 PKCS12。这要求您要上载的密钥库文件应使用以下扩展名之一: 对于 JKS 密钥库类型: `.jks` 或 `.ks` 对于 JCEKS 密钥库类型: `.jce` 对于 PKCS12 密钥库类型: `.p12` 或 `.pfx` 输入密钥库和证书密码。 输入密钥库文件中使用的证书的别名。 单击“提交”。
   通过手动输入证书信息来提供证书 | 在“证书提交类型”字段中, 选择“手动输入”。 输入密钥库和证书密码、证书链和私钥。 单击“提交”。

   如何更新证书?

   1. 从目录 `{ALM 部署目录}\ALM\repository\sa\DomsInfo\osp\basic.pfx` 删除当前证书。

      您还可以

   2. 刷新当前页面。
   3. 重新提交证书信息, 如步骤 5 中所述。
   4. 重新启动 ALM 服务器。如果 ALM 位于群集环境中, 请重新启动每个节点。
   5. 如果您已与 IdP 共享了 ALM SP 元数据, 则应获取更新的 SP 元数据并再次与 IdP 共享。请参见配置 IdP。

返回页首

## 添加 IdP

您应首先添加名为 "alm" 的默认 IdP。成功验证 alm IdP 并启用 SSO 后, 可以添加其他 IdP。

备注: 添加 IdP 时, IdP ID 不应命名为“本地”。

要添加并配置 alm IdP, 请执行以下操作:

1. 在“SSO 配置工具”页面的左窗格中, 单击“alm”选项卡。

2. 提供以下信息。

   字段 (* 为必填项) | 描述
   --- | ---
   自动用户配置的配置
   与默认 ALM 用户名映射的 SAML 字段 | 如果 ALM 无法基于标识密钥和 IdP ID 为 IdP 用户找到唯一一个匹配的 ALM 用户, 则此选项控制以下内容: 是否启用自动用户配置以在 ALM 中为 IdP 用户创建匹配的用户。 如果启用自动用户设置来创建用户, 在创建用户时 ALM 将哪个属性用作默认用户名。 关闭: 禁用自动用户配置以创建用户。 IdentityKey: 创建新用户时, ALM 将使用 IdentityKey 值作为新的 ALM 用户名。 ALMUsername: 创建新用户时, ALM 将使用 ALMUsername 值作为新的 ALM 用户名。 ALMEmail: 创建新用户时, ALM 将使用 ALMEmail 值作为新的 ALM 用户名。
   默认 ALM 用户名可编辑 | 新的 ALM 用户是否可以在用户创建期间更改其默认用户名。 如果将“映射到 ALM 用户名的属性”选项设置为“关闭”, 则将忽略其值。
   与 ALM SP 共享 IdP 元数据
   IdP 元数据 | IdP 中 SAML 元数据描述符的 Base64 编码 XML。 如果无法从 ALM 服务器访问 IdP 元数据 URL, 则应使用此选项
   IdP 元数据 URL | 用于发布 IdP 元数据的 IdP URL。 如果 ALM 服务器可以访问 IdP 元数据 URL, 则选择此选项。

返回页首

## 部署 SSO 组件

以管理员身份运行以下脚本以部署 SSO 组件:

- 对于 Windows: `{ALM 安装目录}\ALM\run_osp_deploy.bat`
- 对于 Linux: `{ALM 安装目录}\run_osp_deploy.sh`

在部署过程中, 系统将要求您重新启动 ALM 服务。停止 ALM 服务以继续部署过程, 在成功部署后重新启动 ALM 服务。如果不停止 ALM 服务, 该过程将中止。

如果您对 ALM SP 设置进行了任何更改, 编辑、添加或删除了 IdP, 则应再次运行该脚本。

如果 ALM 位于群集环境中, 请在每个节点中运行该脚本。

返回页首

## 配置 IdP

配置详细信息因不同的 IdP 而异。通常, 要配置 IdP, 应当完成以下任务:

1. 创建使用 SAML2 作为客户端协议的客户端。

2. 获取 ALM SP 元数据并与 IdP 共享。

   1. 从目录“http(s)://{服务器}:{端口}/osp/a/alm/auth/saml2/sp-metadata”获取 SP 元数据。
   2. 将数据另存为 XML 文件。

   3. SP 元数据将在 IdP 配置中用于在 SP 和 IdP 之间建立信任关系。有关其他 IdP 配置, 请参阅 IdP 的文档。

3. 创建映射器以将由 IdP 在 SAML 断言中返回的用户属性映射到等效的 ALM 属性。

   确保将可以唯一标识 IdP 用户的 IdP 属性映射到 ALM 属性 IdentityKey。

   ALM 要求 NameID 格式应为 emailAddress。

   如果您将 ALM 属性映射到的 IdP 属性与在 SSO 配置工具 (设置 SSO 身份验证 (适用于 ALM 15.00)) 中映射到的 IdP 属性不同, 则以 SSO 配置工具中的映射为准。例如, 如果在 SSO 配置工具中将 ALM 属性 ALMDescription 映射到字段 A, 则 ALM 将使用 SAML 断言中的字段 A 的值来更新 ALM 属性 ALMDescription。

   属性区分大小写。必须对 SAML 响应进行签名。

SAML 响应示例

    <samlp:Response>
    	<saml:Assertion>
    ...
    ...
    ...
    		<saml:Subject>
    			<saml:NameID Format="urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress">sa@yopmail.com
                           </saml:NameID>
    			<saml:SubjectConfirmation Method="urn:oasis:names:tc:SAML:2.0:cm:bearer">
    				<saml:SubjectConfirmationData
    					InResponseTo="idhSHtlcKqu3Xn8CpOIRc658-cnAI"
    					NotOnOrAfter="2019-04-30T09:11:36.887Z"
    					Recipient="https://shcappsvm76.hpeswlab.net:9443/osp/a/alm/auth/saml2/
                                               spassertion_consumer"/>
    			</saml:SubjectConfirmation>
    		</saml:Subject>
    		<saml:Conditions NotBefore="2019-04-30T08:51:36.887Z" NotOnOrAfter="2019-04-30T08:52:36.887Z">
    			<saml:AudienceRestriction>
    				<saml:Audience>https://shcappsvm76.hpeswlab.net:9443/osp/a/alm/auth/saml2/metadata
                                   </saml:Audience>
    			</saml:AudienceRestriction>
    		</saml:Conditions>
    		<saml:AuthnStatement
    			AuthnInstant="2019-04-30T08:51:38.887Z"
    			SessionIndex="5e968b7c-c2ad-41e6-81fb-3feb38644bcf::dfb1c06f-89e1-42ca-a6b0-f3ff41bb2fbd">
    			<saml:AuthnContext>
    				<saml:AuthnContextClassRef>urn:oasis:names:tc:SAML:2.0:ac:classes:unspecified
                                   </saml:AuthnContextClassRef>
    			</saml:AuthnContext>
    		</saml:AuthnStatement>
    		<saml:AttributeStatement>
    			<saml:Attribute
    				Friendly="IdentityKey" Name="IdentityKey"
    				NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:basic">
    				<saml:AttributeValue
    					xmlns:xs="http://www.w3.org/2001/XMLSchema"
    					xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="xs:string">**
                                  </saml:AttributeValue>
    			</saml:Attribute>
    		</saml:AttributeStatement>
    	</saml:Assertion>
    </samlp:Response>

返回页首

## 将 IdP 用户与 ALM 用户进行映射

IdP 用户通过两个属性映射到 ALM 用户: “标识提供程序名称”和“标识密钥”。

ALM 属性 | 映射到 IdP属性
--- | ---
标识提供程序名称 | 在 ALM SSO 配置工具中配置的 IdP 名称, 例如默认 IdP 名称 "alm"。
标识密钥 | 可唯一标识 IdP 用户的 IdP 属性。例如, 用户名、用户 ID和用户电子邮件。

您可以将 IdP 用户单独或批量映射到 ALM 用户。要与 ALM 用户映射的第一个 IdP 用户应当是站点管理员用户。

方法 | 详细信息
--- | ---
单独映射用户 | 仅在启用 SSO 后才能使用此方法。 要将 IdP 用户与 ALM 用户映射, 从“站点管理”>“站点用户”选项卡打开 ALM 用户的用户详细信息。 使用 IdP 用户的相应用户信息来更新属性“标识提供程序名称”和“标识密钥”。 有关详细信息, 请参见更新用户详细信息。
使用站点管理 REST API 批量映射用户 | 无论是否启用了 SSO, 都可以使用此方法。 为站点用户设置属性 idp-name 和 identity-key。 有关详细信息, 请参阅站点管理 REST API 参考: 站点用户 > 更新站点用户。

备注: 如果您没有将 IdP 用户与 ALM 用户映射, 则 ALM 会假定 IdP 用户在 ALM 中没有匹配的用户。有关用户如何登录 ALM 的信息, 请参阅 SSO 对 ALM 的访问

返回页首

## 验证并启用 SSO 身份验证

在为 IdP 验证 SSO 之前, 请确保至少有一个具有站点管理员角色的 ALM 用户已映射到 IdP 用户。否则, 没有用户可以将 ALM 配置为站点管理员。

备注: 在验证之前, 您还应当将 ALM 和 IdP URL 添加到 IE 可信 URL 中。

1. 在 SSO 配置工具中, 单击 IdP 名称, 然后单击底部的“验证”以开始验证。
2. 将打开 IdP 登录页面。输入您的 IdP 用户名和密码。

3. 如果您通过验证, 登录页面将关闭。IdP 名称的前面会显示一个通过指示符。

   如果验证失败, 则显示一个失败指示符。

4. 通过 SSO 验证后, 单击“启用 SSO”。

   启用 SSO 身份验证后, 将无法禁用它。

返回页首

## SSO 对 ALM 的访问

启用 SSO 后, 访问几乎所有 ALM 资源时都需要 SSO 身份验证。

以下流说明了 ALM 如何处理 SSO 登录。

特例

如果您配置了多个 IdP, 并且在特定 IdP 中启用了自动配置, 则 ALM 中没有匹配用户且想要访问 ALM 的用户应通过以下 URL 直接访问 IdP:“http(s)://{服务器}:{端口}/qcbin?idpId={idp id}”

返回页首

https://admhelp.microfocus.com ALM 8942
改进搜索结果的提示... ALM 帮助中心 ALM 帮助中心 ALM 帮助 16.00 全部查看本地帮助中心查看联机帮助中心后退在浏览器历史记录中后退前进在浏览器历史记录中前进删除突出显示的搜索项下一个主题转到下一个主题上一个主题转到上一个主题打印当前主题版本: