在 Liberty 中配置 SAML Web 入站传播
可以将 Liberty 服务器配置为接受 HTTP 标头中的 SAML 令牌作为认证令牌。此功能通常用于代表已认证的用户使用 SAML 的代理或 RESTful 客户机。
关于此任务
通过在 Liberty 中启用 samlWeb-2.0 功能部件、设置 inboundPropagation=required 以及其他配置信息,可以将 Liberty 服务器配置为接受 HTTP 标头中的 SAML 令牌作为认证令牌。入站传播配置类似于在 Liberty 中配置 SAML Web 浏览器 SSO。
过程
- 通过在 featureManager 元素中添加以下元素声明,将 samlWeb-2.0
Liberty 功能部件添加至 server.xml 文件。
<feature>samlWeb-2.0</feature>
- 启用 SAML 入站传播。Liberty 服务器提供缺省 samlWebSso20 元素。
<samlWebSso20 id="defaultSP"> </samlWebSso20>
您可以使用此缺省 samlWebSso20 元素,也可以创建新的 samlWebSso20 元素,通过添加 inboundPropagation=required 来启用 SAML 入站传播。<samlWebSso20 id="defaultSP" inboundPropagation="required" > </samlWebSso20>
注: 如果已配置并启用了 SAML,那么所有未认证请求将使用 SAML 认证。要配置可以使用 SAML 认证和不能使用 SAML 认证的请求类型,必须按本主题中所述配置认证过滤器。 - 必须配置 PKIX 信任引擎,以通过 PKIX 验证功能来验证签名中的证书的可信任度。通过此验证的证书被认为可信。
- 配置 <PKIXTrustEngine>,并将所有受信任的 SAML 签署者证书导入至 Liberty 服务器的缺省信任库,或导入至 PKIXTrustEngine 的 trustAnchor。
- 可选:配置 trustedIssuers 以列出 SAML 令牌的签发者名称(此名称是证书可信任度不够时在 SAML 断言中显示的名称)。
以下示例是样本配置:<samlWebSso20 id="defaultSP" inboundPropagation="required" headerName="saml_token" signatureMethodAlgorithm="SHA1"> <pkixTrustEngine trustAnchor="serverStore" /> </samlWebSso20>
- 可选:可以添加 headerName 来定义包含 SAML 令牌的 HTTP 请求头名称。如果未定义此配置属性,那么
Liberty 服务器将在头名称 saml、Saml 和 SAML 中搜索 SAML 令牌。HTTP 请求中的 SAML 令牌头可以采用下列其中一种格式:
Authorization=[<headerName>=<SAML_HERE>] Authorization=[<headerName>="<SAML_HERE>"] Authorization=[<headerName> <SAML_HERE>] <headerName>=[<SAML_HERE>]
SAML 令牌必须采用 Base-64 或 UTF-8 编码方式,并且可使用 GZIP 格式进行压缩。
注: SAML 令牌头名称必须是一个 URL 安全字符串,并且不得包含前导空格或尾部空格。 - 可选:可配置如何通过 SAML 创建已认证的主体集。缺省情况下,Liberty 服务提供者直接通过 SAML 断言创建主体集而不需要本地用户注册表(相当于配置 mapToUserRegistry=No)。其他配置选项为 mapToUserRegistry=User 或 mapToUserRegistry=Group。
- mapToUserRegistry=No:SAML 签发者的名称为 realm,NameID 用于在主体集中创建主体名称和唯一安全名称,组成员未被包括。可配置 userIdentifier、realmIdentifier、groupIdentifier 和 userUniqueIdentifier 属性以创建带有定制用户名、领域名、组成员资格和唯一安全标识的认证主体集。
- mapToUserRegistry=User:如果要针对本地用户注册表验证 SAML 用户,并根据本地注册表创建用户主体集,请选择此选项。
- mapToUserRegistry=Group:如果要针对本地用户注册表验证 SAML 组,并创建主体集以包含这些已验证组,请选择此选项。此选项类似于 mapToUserRegistry=No,但将针对本地用户注册表验证组成员资格。
- 可选:可实现 Liberty SAML SPI com.ibm.wsspi.security.saml2.UserCredentialResolver 作为用户功能部件,以将 SAML 断言动态映射至 Liberty 主体集。
- 可选:可以配置多个 samlWebSso20 元素,其中每个 samlWebSso20 元素引用一个唯一的 authFilter 元素。所有 authFilter 元素必须互斥。对于所配置的多个 samlWebSso20 元素,每个元素都有其自己的认证策略和使用规则。
- 可选:配置签名需求并考虑以下事项:
缺省签名算法为 SHA256。如果必须更改算法,请使用 signatureMethodAlgorithm 属性进行修改。
- 可选:可配置 SP 认证会话和 cookie。验证并处理 SAML 断言后,Liberty SAML SP 在不使用 LTPA cookie 的情况下维护客户机与 SP 之间的已认证会话。已认证会话超时值在 <saml:AuthnStatement> 中设置为
SessionNotOnOrAfter(如果存在),或者按 server.xml 文件中的配置设置为 sessionNotOnOrAfter,缺省值为 120 分钟。将自动生成会话 cookie 名称,您可使用 spCookieName 属性定制 cookie 名称以指定所需名称。
如果希望 Liberty SP 通过 SAML 断言创建 LTPA cookie 并对后续认证请求使用 LTPA cookie,那么可添加配置 disableLtpaCookie=false。如果要将 LTPA cookie 与其他服务器共享,那么必须添加配置属性 allowCustomCacheKey="false"。
注: 如果配置 disableLtpaCookie="false" 和 allowCustomCacheKey="false",请确保 SAML 用户名未直接向阻止用户拥有两个帐户的本地用户注册表认证。 - 配置认证过滤器。可以使用 authnFilter 来定义要处理入站传播认证请求的
samlWebSso20 元素。
有关配置认证过滤器的更多信息,请参阅认证过滤器。
结果
父主题: 在 Liberty 中认证用户

文件名:twlp_saml_web_inbound_prop.html