为 SAML 不记名令牌配置客户机和提供程序绑定

SAML 不记名令牌是使用不记名主体集确认方法的 SAML 令牌。在载体主体集确认方法中,SOAP 消息的发送方不需要建立用于将 SAML 令牌与包含 SOAP 消息的内容进行绑定的连接。可以为 SAML 不记名令牌配置客户机和提供程序策略集附件与绑定。

开始之前

含有 SAML 的 WebSphere® Application Server 提供了许多缺省 SAML 令牌应用程序策略集和几个常规客户机与提供程序绑定样本。在可以为 SAML 不记名令牌配置客户机和提供程序绑定之前,必须先执行以下操作:
  • 创建一个或多个包括 SAML 配置设置的新服务器概要文件,或者将 SAML 配置设置添加到现有概要文件。 有关如何将 SAML 配置设置添加到概要文件的更多信息,请参阅关于设置 SAML 配置的内容。
  • 导入下列其中一个缺省策略集:
    • SAML20 Bearer WSHTTPS default
    • SAML20 Bearer WSSecurity default
    • SAML11 Bearer WSHTTPS default
    • SAML11 Bearer WSSecurity default

    SAML11 策略集与 SAML20 策略集大致相同,但 SAML20 策略集支持 SAML V2.0 令牌类型,而 SAML11 策略集支持 V1.1 令牌类型。

    两个缺省策略集是必需的。因此,必须导入 Username WSHTTPS default 策略集以及下列其中一个不记名策略集。请确保您导入的不记名策略集对应于您的方案;例如 SAML 1.1 或 2.0 以及 HTTPS 或非 HTTPS。
    • 适用于使用 HTTPS 的 SAML 1.1 令牌的 SAML11 Bearer WSHTTPS default
    • 适用于使用 HTTPS 的 SAML 1.1 令牌的 SAML20 Bearer WSHTTPS default
    • 适用于使用 HTTP 的 SAML 2.0 令牌的 SAML20 Bearer WSSecurity default
    • 适用于使用 HTTP 的 SAML 2.0 令牌的 SAML11 Bearer WSSecurity default
    要导入这些策略集,请在管理控制台中执行下列操作:
    1. 单击服务 > 策略集 > 应用程序策略集
    2. 单击导入
    3. 选择从缺省存储库
    4. 选择两个必需的缺省策略集。

      本步骤中选择的 SAML 缺省策略集指的是以下过程步骤中相应的 SAML 策略。

    5. 单击确定以导入策略集,然后单击保存以保存更改。
  • 如果 SAML 声明将由 STS 进行签署并且您将需要对发布者(签署者)进行信任评估,那么必须有密钥库文件可用,该密钥库文件可用于对发布者的 X.509 证书进行信任评估。此密钥库可以包含发布者的公用证书或者构建证书路径需要的所有信息。受支持的密钥库类型包括:jks、jceks 和 pkcs12。 此文件将指的是以下过程中的信任库文件。
  • Username WSHTTPS default 策略将用来与 STS 通信。如果尚未将与 SSL 配合使用的 STS 发布者证书导入 NodeDefaultSSLSettings,请参阅“从远程 SSL 端口检索签署者”主题以获取如何导入此证书的描述。还可以审阅“SSL 中客户机签署者检索的安全安装”主题以获取 STS 发布者证书的相关常规信息。

关于此任务

SAML 令牌策略由应用程序服务器中的 CustomToken 扩展进行定义。要创建 CustomToken 扩展,必须使用客户机与提供程序绑定文档中的定制属性来定义 SAML 令牌配置参数。常规绑定的“Saml Bearer 客户机样本”和“Saml Bearer 提供程序样本”包含定制属性的主要配置。

客户机和提供程序样本绑定包含 SAML11 和 SAML20 令牌类型配置信息。这些样本可同时与 SAML11 及 SAML20 策略集配合使用。根据您计划实现 SAML 令牌的方式,必须修改已安装绑定样本中的属性值。属性及属性值的示例在以下过程中予以提供。

如以下过程所示,要修改绑定样本,必须先配置 Web Service 客户机策略集连接,然后修改 Web Service 提供程序策略集连接。该过程所提供的示例使用样本 Web Service 应用程序 JaxWSServicesSamples。

过程

  1. 配置信任客户机

    如果要使用常规绑定来访问外部 STS,请跳至“将策略集与绑定连接至客户机应用程序”步骤。

    如果要使用特定于应用程序的绑定来访问外部 STS,请完成以下子步骤。

    1. 暂时将信任客户机的策略集连接至 Web Service 客户机应用程序,以便可以配置绑定。

      连接信任客户机的策略集允许您使用管理控制台来创建客户机绑定文档绑定,然后修改这些绑定。如果使用特定于应用程序的绑定来访问外部 STS,那么只需完成此操作。

      1. 在管理控制台中,单击应用程序 > 应用程序类型 >WebSphere 企业应用程序 > JaxWSServicesSamples > 服务客户机策略集和绑定
      2. 选择 Web Service 客户机资源 (JaxWSServicesSamples)。
      3. 单击连接客户机策略集
      4. 选择策略集 Username WSHTTPS default
    2. 创建信任客户机绑定。
      1. 再次选择 Web Service 客户机资源 (JaxWSServicesSamples)。
      2. 单击指定绑定
      3. 单击新建特定于应用程序的绑定以创建特定于应用程序的绑定。
      4. 为新建的特定于应用程序的绑定指定绑定配置名称。在此示例中,绑定名称为 SamlTCSample。
    3. 将“SSL 传输”策略类型添加到绑定。

      单击添加 > SSL 传输,然后单击确定

    4. 将 WS-Security 策略类型添加到绑定,然后修改信任客户机的认证设置。
      1. 如果 WS-Security 策略类型在 SamlTCSample 绑定定义中未准备就绪,请单击应用程序 > 应用程序类型 > WebSphere 企业应用程序 > JaxWSServicesSamples > 服务客户机策略集和绑定 > SamlTCSample
      2. 单击添加 > WS-Security > 认证和保护 > request:uname_token
      3. 单击应用
      4. 选择回调处理程序
      5. 为 Web Service 客户机指定用户名和密码以对外部 STS 进行认证。
      6. 单击确定,然后单击保存
    5. 保存绑定设置后,返回到服务客户机策略集和绑定面板并拆离策略集和绑定。
      1. 单击此页面导航中的服务客户机策略集和绑定,或者单击应用程序 > 应用程序类型 > WebSphere 企业应用程序 > JaxWSServicesSamples > 服务客户机策略集和绑定
      2. 选择 Web Service 客户机资源 (JaxWSServicesSamples),然后单击拆离客户机策略集

      拆离策略集时,不会从文件系统中删除您刚刚创建的特定于应用程序的绑定配置。因此,您仍然可以使用您创建的特定于应用程序的绑定来访问包含信任客户机的 STS。

  2. 将 SAML 策略集和绑定连接至客户机应用程序
    1. 将所需的 SAML 策略集连接到 Web Service 客户机应用程序。
      1. 如果 SAML 策略在 JaxWSServicesSamples 的“服务客户机策略集和绑定”页面中未准备就绪,请单击应用程序 > 应用程序类型> WebSphere 企业应用程序 > JaxWSServicesSamples > 服务客户机策略集和绑定
      2. 选择 Web Service 客户机资源。
      3. 单击连接客户机策略集
      4. 为 Web Service 客户机选择相应的 SAML 策略。
    2. 将“Saml Bearer 客户机样本”常规绑定连接至客户机。
      1. 再次选择 Web service 客户机资源。
      2. 单击指定绑定
      3. 选择 Saml Bearer 客户机样本
  3. 配置 Web Service 客户机绑定。

    配置样本绑定中的 STS 端点 URL。

    1. 单击应用程序 > 应用程序类型 > WebSphere 企业应用程序 > JaxWSServicesSamples > 服务客户机策略集和绑定 > Saml Bearer 客户机样本 > WS-Security > 认证和保护
    2. 单击“认证令牌”表中的 gen_saml11tokengen_saml20token
    3. 单击回调处理程序
    4. 修改 stsURI 属性以指定 STS 端点。

      中间服务器中的自签发者不需要此属性。但是,如果为中间服务器中的自签发者指定该属性,那么会将该属性设置为 www.websphere.ibm.com/SAML/Issuer/Self

    5. 验证是否已将下列属性设置为必需值。

      如果将这些属性的任何一个设置为某些其他值,那么必须将属性设置更改为必需值。

      • confirmationMethod 属性必须设置为 Bearer
      • keyType 属性必须设置为 http://docs.oasis-open.org/ws-sx/ws-trust/200512/Bearer
      • wstrustClientPolicy 属性必须设置为 Username WSHTTPS default
      • 对 wstrustClientBinding 属性指定的值必须与您在先前步骤中创建的信任客户机的特定于应用程序的绑定名称相匹配。例如,在先前的步骤中,我们创建了名为 SamlTCSample 的特定于应用程序的绑定。在此场景中,必须将 SamlTCSample 指定为 wstrustClientBinding 属性的值。
    6. 可选: 如果要更改应用程序服务器搜索绑定的方式,那么您可以指定 wstrustClientBindingScope 属性并将其值设置为 application 或 domain。

      当该值设置为 domain 时,应用程序服务器将在包含常规绑定文档的文件系统位置搜索 wstrustClientBinding。

      当该值设置为 application 时,应用程序服务器将在包含特定于应用程序的绑定文档的文件系统位置搜索 wstrustClientBinding。

      当未指定 wstrustClientBindingScope 属性时,应用程序服务器的缺省行为是先搜索特定于应用程序的绑定,然后搜索常规绑定。

      如果找不到 wstrustClientBinding,那么应用程序服务器将使用缺省绑定。

    7. 可选: 如果要修改缺省信任客户机 SOAP 版本(与应用程序客户机相同),请为 wstrustClientSoapVersion custom 定制属性指定一个新值。

      将 wstrustClientSoapVersion 定制属性设置为 1.1 以更改为 SOAP V1.1。

      将 wstrustClientSoapVersion 定制属性设置为 1.2 以更改为 SOAP V1.2。

    8. 单击应用,然后单击保存

    如果需要对 wstrustClientBinding 配置进行进一步修改,并且 wstrustClientBinding 属性指向特定于应用程序的绑定(例如,在本示例中指向 SamlTCSample),那么必须将该特定于应用程序的绑定连接到 Web Service 客户机,然后才能完成这些修改。连接是暂时的。如先前步骤中所详细叙述,当修改完成后,您可以将已修改的特定于应用程序的绑定与 Web Service 客户机分离。

    在继续执行到下一步之前,请先验证外部 STS 中的 SSL 证书是否存在于 NodeDefaultTrustStore 中。有关更多信息,请参阅“在您开始之前”一节。

  4. 重新启动 Web Service 客户机应用程序,以使策略集连接修改可以生效。

    重新启动应用程序时,将更新策略集和绑定连接信息,但是,直到所有常规绑定都刷新之后,才在运行时体现常规绑定中的已更新信息。

    在重新装入常规绑定以利用任何更新之后,必须重新启动应用程序。有关更多信息,请参阅后面的“重新装入客户机和提供程序常规绑定并重新启动应用程序”步骤。

  5. 将 SAML 策略集和绑定连接至提供者应用程序。
    1. 将相应的 SAML 策略集连接到 Web Service 提供程序。
      1. 在管理控制台中,单击应用程序 > 应用程序类型 > WebSphere 企业应用程序 > JaxWSServicesSamples > 服务提供程序策略集和绑定
      2. 选择 Web Service 提供程序资源 (JaxWSServicesSamples)。
      3. 单击连接策略集
      4. 为 Web Service 提供程序选择相应的 SAML 策略。
    2. 指定“Saml Bearer 提供程序样本”常规绑定。
      1. 再次选择 Web Service 提供程序资源。
      2. 单击指定绑定
      3. 选择 Saml Bearer 提供程序样本
  6. 配置 Web Service 提供程序绑定。
    1. 如果 Web Service 提供程序绑定在 JaxWSServicesSamples 的“服务提供程序策略集和绑定”页面中未准备就绪,请单击 WebSphere 企业应用程序 > JaxWSServicesSamples > 服务客户机策略集和绑定 > Saml Bearer 提供程序样本
    2. 单击 WS-Security > 认证和保护
    3. 在“认证令牌”表中,单击 con_saml11tokencon_saml20token
    4. 单击回调处理程序

      管理控制台的“回调处理程序”页面用于配置外部 STS 的 SAML 令牌发布者数字签名验证绑定数据。

    5. 可选: 如果要取消数字签名验证,请将 signatureRequired 定制属性设置为 false

      如果要取消数字签名验证,那么可以将 signatureRequired 定制属性设置为 false。但是,对于良好的安全性实践而言,应该需要签署 SAML 声明并且始终需要发布者数字签名验证。False 是此属性的缺省值。

    6. 可选: 如果不允许进行签署者证书验证,请将 trustAnySigner 定制属性设置为 true

      为了进行 SAML 签名验证,将忽略“信任任何证书”配置设置。只有将 signatureRequired 定制属性设置为 true(这是该属性的缺省值)时,此属性才有效。

    7. 如果声明由 STS 签署,请完成以下操作:将 signatureRequired 定制属性设置为缺省值 true,将 trustAnySigner 定制属性设置为缺省值 false
      • 将证书添加到可允许外部 STS 签名证书通过信任验证的提供程序的信任库,例如自己签署证书或其根 CA 证书的 STS。
      • 将 trustStorePath 定制属性设置为与信任库文件名相匹配的值。此值可以是标准值,也可以使用关键字(例如 ${USER_INSTALL_ROOT})。
      • 将 trustStoreType 定制属性设置为与密钥库类型相匹配的值。受支持的密钥库类型包括:jks、jceks 和 pkcs12。
      • 将 trustStorePassword 定制属性设置为与信任库密码相匹配的值。该密码将以定制属性的形式进行存储,并由管理控制台进行编码。
      • 可选:将 trustedAlias 定制属性设置为诸如 samlissuer 的值。如果指定此属性,那么由别名表示的 X.509 证书将是受 SAML 签名验证信任的唯一 STS 证书。如果未指定此定制属性,那么 Web Service 运行时环境将使用 SAML 声明中的签名证书来验证 SAML 签名,然后对所配置的信任库验证该证书。
    8. 可选: 配置接收方以验证 SAML 声明中发布者的发布者名称和/或证书 SubjectDN。

      您可以创建可信发布者名称列表或可信证书 SubjectDN 列表,也可以同时创建这两种类型的列表。如果同时创建签发者名称列表和 SubjectDN 列表,那么将同时验证签发者名称和 SubjectDN。 如果所接收的 SAML 发布者名称或签署者 SubjectDN 不在可信列表中,那么 SAML 验证将失败并发出异常。

      以下示例说明如何创建可信发布者与可信 SubjectDN 列表。对于每一个可信发布者名称,请使用 trustedIssuer_n,其中 n 是正整数。对于每一个可信 SubjectDN,请使用 trustedSubjectDN_n,其中 n 是正整数。如果同时创建这两种类型的列表,那么在相同 SAML 声明中的这两个列表中,整数 n 必须相匹配。整数 n 从 1 开始并按 1 递增。

      在本示例中,您信任发布者名称为 WebSphere/samlissuer 的 SAML 声明(但忽略签署者的 SubjectDN),以便您添加以下定制属性:
       <properties value="WebSphere/samlissuer" name="trustedIssuer_1"/>
      此外,您信任由 IBM/samlissuer 发布的 SAML 声明(当签署者的 SubjectDN 为 ou=websphere,o=ibm,c=us 时),以便您添加以下定制属性:
      <properties value="IBM/samlissuer" name="trustedIssuer_2"/> 
      <properties value="ou=websphere,o=ibm,c=us" name="trustedSubjectDN_2"/>  
    9. 将 SAML 声明解密。

      如果 SAML 声明由 STS 进行加密,那么 SAML 令牌将作为 EncryptedAssertion 元素(而不是 Assertion 元素)出现在 SOAP 安全性头中。要将 SAML 声明解密,必须配置与加密 STS 上的声明时所使用的公用密钥相对应的专用密钥。

      必须将以下回调处理程序定制属性设置为下表中描述的值,接收方才能将 SAML 声明解密。

      定制属性
      keyStorePath 密钥库位置
      keyStoreType 匹配的密钥库类型

      受支持的密钥库类型包括:jks、jceks 和 pkcs12

      keyStorePassword 密钥库的密码
      keyAlias 用于 SAML 加密的专用密钥的别名
      keyName 用于 SAML 加密的专用密钥的名称
      keyPassword 密钥名称的密码
  7. 可选: 您可以配置调用者绑定以选择要代表请求者身份的 SAML 令牌。 Web Service 安全性运行时环境使用指定的 JAAS 登录配置从将 SAML 令牌 NameId 或 NameIdentifier 用作用户名的用户注册表中,获取用户安全性名称和组成员数据。
    1. 单击 WebSphere 企业应用程序 > JaxWSServicesSamples > 服务提供程序策略集和绑定 > Saml Bearer 提供程序样本 > WS-Security > 调用者
    2. 单击新建以创建调用者配置。
    3. 指定名称,例如 caller
    4. 输入调用者标识局部部件的值。

      对于 SAML 1.1 令牌,请输入:

      http://docs.oasis-open.org/wss/oasis-wss-saml-token-profile-1.1#SAMLV1.1

      对于 SAML 2.0 令牌,请输入:

      http://docs.oasis-open.org/wss/oasis-wss-saml-token-profile-1.1#SAMLV2.0
    5. 单击应用,然后单击保存
  8. 重新装入客户机和提供程序常规绑定并重新启动应用程序。

    更新常规绑定中的信息时,不会在运行时立即体现新设置。策略集管理员必须先在应用程序服务器中重新装入已更新的常规绑定,任何更新才将生效。您可以通过停止并重新启动应用程序服务器来重新装入任何更新的策略集和常规绑定,也可以在 wsadmin 中的 PolicySetManager MBean 上使用刷新命令来重新装入这些策略集和常规绑定。有关刷新策略集管理员的更多信息,请参阅“使用 wsadmin 脚本编制刷新策略集配置”主题。

    要重新装入客户机和提供程序常规绑定并重新启动应用程序,请完成下列其中一项操作:
    • 重新启动应用程序服务器,或
    • 刷新 PolicySetManager MBean,然后重新启动客户机和提供程序 Web Service 应用程序。

结果

完成该过程之后,JaxWSServicesSamples Web Service 应用程序就可以开始使用 SAML Bearer default 策略集、“Saml Bearer 客户机样本”和“Saml Bearer 提供程序样本”常规绑定。

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



时间戳记图标 最近一次更新时间: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=twbs_configsamlbearertoken
文件名:twbs_configsamlbearertoken.html