在 Liberty 中配置 SAML Web 入站传播

可以将 Liberty 服务器配置为接受 HTTP 头中的 SAML 令牌作为认证令牌。此功能通常用于代表已认证的用户使用 SAML 的代理或 RESTful 客户机。

关于此任务

通过启用 Liberty 中的 samlWeb-2.0 功能部件、设置 inboundPropagation=required 以及其他配置信息,可以将 Liberty 服务器配置为接受 HTTP 头中的 SAML 令牌作为认证令牌。入站传播配置类似于在 Liberty 中配置 SAML Web 浏览器 SSO

过程

  1. 通过在 featureManager 元素中添加以下元素声明,将 samlWeb-2.0 Liberty 功能部件添加至 server.xml 文件。
    <feature>samlWeb-2.0</feature>
  2. 启用 SAML 入站传播。Liberty 服务器提供缺省 samlWebSso20 元素。
    <samlWebSso20 id="defaultSP">
    
    </samlWebSso20>
    您可以使用此缺省 samlWebSso20 元素,也可以创建新的 samlWebSso20 元素,通过添加 inboundPropagation=required 来启用 SAML 入站传播。
    <samlWebSso20 id="defaultSP" inboundPropagation="required" >
    </samlWebSso20>
    注: 如果已配置并启用了 SAML,那么所有未认证请求将使用 SAML 认证。要配置可以使用 SAML 认证和不能使用 SAML 认证的请求类型,必须按本主题中所述配置认证过滤器。
  3. 必须配置 PKIX 信任引擎,以通过 PKIX 验证功能来验证签名中的证书的可信任度。通过此验证的证书被认为可信。
    1. 配置 <PKIXTrustEngine>,并将所有受信任的 SAML 签署者证书导入至 Liberty 服务器的缺省信任库,或导入至 PKIXTrustEnginetrustAnchor
    2. 可选:配置 trustedIssuers 以列出 SAML 令牌的发卡者名称(此名称是证书可信任度不够时在 SAML 断言中显示的名称)。
    以下示例是样本配置:
    <samlWebSso20  id="defaultSP"
      inboundPropagation="required"
      headerName="saml_token"
      signatureMethodAlgorithm="SHA1">
      <pkixTrustEngine trustAnchor="serverStore" />
    </samlWebSso20>  
  4. 可选:可以添加 headerName 来定义包含 SAML 令牌的 HTTP 请求头名称。如果未定义此配置属性,那么 Liberty 服务器将在头名称 samlSamlSAML 中搜索 SAML 令牌。HTTP 请求中的 SAML 令牌头可以采用下列其中一种格式:
    Authorization=[<headerName>=<SAML_HERE>]                  
    Authorization=[<headerName>="<SAML_HERE>"] 
    Authorization=[<headerName> <SAML_HERE>]
    <headerName>=[<SAML_HERE>]

    SAML 令牌必须采用 Base-64UTF-8 编码方式,并且可使用 GZIP 格式进行压缩。

    注: SAML 令牌头名称必须是一个 URL 安全字符串,并且不得包含前导空格或尾部空格。
  5. 可选:可配置如何通过 SAML 创建认证主体集。缺省情况下,Liberty 服务提供者直接通过 SAML 断言创建主体集而不需要本地用户注册表(相当于配置 mapToUserRegistry=No)。其他配置选项为 mapToUserRegistry=UsermapToUserRegistry=Group
    • mapToUserRegistry=No:SAML 发卡者的名称为 realmNameID 用于在主体集中创建主体名称和唯一安全名称,组成员未被包括。可配置 userIdentifierrealmIdentifiergroupIdentifieruserUniqueIdentifier 属性以创建带有定制用户名、领域名、组成员资格和唯一安全标识的认证主体集。
    • mapToUserRegistry=User:如果要针对本地用户注册表验证 SAML 用户,并根据本地注册表创建用户主体集,请选择此选项。
    • mapToUserRegistry=Group:如果要针对本地用户注册表验证 SAML 组,并创建主体集以包含这些已验证组,请选择此选项。此选项类似于 mapToUserRegistry=No,但将针对本地用户注册表验证组成员资格。
  6. 可选:可实现 Liberty SAML SPI com.ibm.wsspi.security.saml2.UserCredentialResolver 作为用户功能部件,以将 SAML 断言动态映射至 Liberty 主体集。
  7. 可选:可以配置多个 samlWebSso20 元素,其中每个 samlWebSso20 元素引用一个唯一的 authFilter 元素。所有 authFilter 元素必须互斥。对于所配置的多个 samlWebSso20 元素,每个元素都有其自己的认证策略和使用规则。
  8. 可选:配置签名需求并考虑以下事项:

    缺省签名算法为 SHA256。如果必须更改算法,请使用 signatureMethodAlgorithm 属性进行修改。

  9. 可选:可配置 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 用户名未直接向阻止用户拥有两个帐户的本地用户注册表认证。
  10. 配置认证过滤器。可以使用 authnFilter 来定义要处理入站传播认证请求的 samlWebSso20 元素。

    有关配置认证过滤器的更多信息,请参阅认证过滤器

结果

您现在已建立将 Liberty 服务器配置为使用 SAML 令牌认证 HTTP 请求所需的配置。

用于指示主题类型的图标 任务主题



时间戳记图标 最近一次更新时间: Monday, 5 December 2016
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-libcore-mp&topic=twlp_saml_web_inbound_prop
文件名:twlp_saml_web_inbound_prop.html