SAML Web 单点登录 (SSO) 信任关联拦截器 (TAI) 定制属性

下列各表列示安全性断言标记语言 (SAML) 信任关联拦截器 (TAI) 的定制属性。您可以使用管理控制台在 SAML TAI 的定制属性面板中定义这些属性。

为了指定用于标识每个可能存在的单点登录 (SSO) 服务提供程序 (SP) 伙伴的唯一属性名称,在属性名称中嵌入了 sso_<id>,用于将每个 SSO 伙伴的相关属性分组到一起。sso_<id> 按顺序针对每个 SSO 服务提供程序伙伴进行编号。

SAML TAI 定制属性可以分为三类:
  1. 全局属性 - 这些属性适用于所有针对 SAML TAI 配置的 SSO 伙伴。
  2. IdP 属性 - 这些属性适用于针对 SAML TAI 配置的身份提供程序。为了指定用于标识每个身份提供程序伙伴的唯一属性名称,在属性名称中嵌入了 idp_<id>,用于将每个 SSO IdP 伙伴的相关属性分组到一起。
  3. 服务提供程序属性 - 这些属性适用于服务提供程序,并且针对每个 SS0 服务提供程序伙伴分组到唯一的 sso_<id> 之下。
注: 所有定制属性名称都区分大小写。

下表描述全局 SAML TAI 定制属性:

表 1. 全局 SAML TAI 定制属性
属性名 描述
targetUrl 可以指定任何 URL 值。 此属性由 sso_<id>.sp.targetUrl 覆盖。如果未接收到来自 IdP 的 RelayState,那么在成功验证 SAMLResponse 之后,这是缺省的目标 URL。
useRelayStateForTarget 可以指定下列其中一个值:
  • true(缺省值)
  • false
此属性由 sso_<id>.sp.useRelayStateForTarget 覆盖。此属性用来指示是否应该将 RelayState 用作目标 URL。
allowedClockSkew 可以指定任何正整数。缺省值为 3 分钟。 此属性由 sso_<id>.sp.allowedClockSkew 覆盖。此属性用来指定验证 SAML 令牌时允许的时钟偏差(以分钟计)。
enforceTaiCookie 可以指定下列其中一个值:
  • true(缺省值)
  • false
此属性由 sso_<id>.sp.enforceTaiCookie 覆盖。此属性用来指示 SAML TAI 是否应检查 LTPA Cookie 是否映射到针对 SSO 伙伴创建的主体集。
preventReplayAttackScope 此属性没有缺省值。您可以指定以下值:
  • 服务器
缺省情况下,SAML TAI 使用分发高速缓存来存储 SAML 断言标识,以阻止重放攻击。如果将此属性设置为 server,那么 SAML TAI 会改为使用本地高速缓存。
replayAttackTimeWindow 可以指定任何整数值。缺省值为 30。 此属性指定一个时间长度(以分钟计),如果 TAI 接收到两个相同 SAML 令牌的间隔时间小于此值,那么将拒绝第二个请求。另请参阅 sso_<id>.sp.preventReplayAttack
retryOnceAfterTrustFailure 可以指定下列其中一个值:
  • true
  • false
将此属性设置为 true 可使运行时在信任验证失败之后重新装入信任库。 这允许在运行应用程序服务器时使用新的 IdP 证书来更新信任库。
redirectToIdPonServerSide 可以指定下列其中一个值:
  • true(缺省值)
  • false
此属性由 sso_<id>.sp.redirectToIdPonServerSide 覆盖。此属性用于指示 TAI 应该重定向到 IdP 本身。将此属性设置为 false 以执行客户端重定向。 如果重定向时丢失 URL 片段,请将此属性设置为 false;TAI 之后会执行客户端重定向。

下表描述 IdP SAML TAI 定制属性:

表 2. IdP SAML TAI 定制属性
属性名 描述
sso_<id>.idp_<id>.SingleSignOnUrl 可以指定任何 URL 值。 此定制属性指定 IdP 的 SSO 服务的 URL。
sso_<id>.idp_<id>.allowedIssuerDN 此定制属性没有缺省值。 此定制属性指定能够对 IdP 发送的 SAML 令牌进行签名的证书的主题 DN。如果 SAML 令牌并非由此证书进行签名,那么将被拒绝。如果指定了此属性,那么 sso_<id>.sp.wantAssertionSigned 定制属性必须是 true。当信任库中存在签署者证书的签发者时,请使用此属性,而不要使用 IdP 的签署者证书。这将防止允许所有签署者使用由同一个签发者签发的证书。
sso_<id>.idp_<id>.allowedIssuerName 此定制属性没有缺省值。 此定制属性指定 SAML 令牌中的 Issuer 元素 <saml:Issuer> 的值。如果从 IdP 接收到的 SAML 令牌中的 Issuer 与此值不匹配,那么该令牌将被拒绝。

下表描述服务提供程序 SAML TAI 定制属性:

表 3. 服务提供程序 SAML TAI 定制属性
属性名 描述
sso_<id>.sp.acsUrl 此属性没有缺省值。可以指定下列其中一个值:
  • 断言使用者服务 (ACS) 的 URL:https://<hostname>:<sslport>/samlsps/<any URI pattern String>
  • 业务应用程序的 URL
这是每个 sso_<id> 的唯一必需属性。此属性指定 ACS 或业务应用程序的 URL。
如果需要有适用于 SAML 工作流程的多个类似入口点,那么您可以在字符串末尾处使用通配符指定 URL,而不是此属性的特定 URI 模式。例如:
  • https://<server>/<context_root>/ep1/path1/p*
  • https://<server>/<context_root>/ep1/*
sso_<id>.sp.cookiegroup 此属性没有缺省值。 此属性指定将添加到配置的 SAML SSO 伙伴的 ltpa cookie 的标记。收到带 ltpa cookie 的 Web 请求时,ltpa cookie 仅在标记匹配此值时有效
sso_<id>.sp.EntityID 缺省情况下,此属性设置为 sso_<id>.sp.aclUrl 的值。 此属性用来验证 SAML 断言中的 AudienceRestriction
sso_<id>.sp.targetUrl 此属性没有缺省值。 此属性指定目标应用程序的 URL。当客户机请求中不存在 RelayState 时,将使用此属性。
sso_<id>.sp.useRelayStateForTarget 可以指定下列其中一个值:
  • true(缺省值)- 如果要使用客户机请求中 RelayState 的值作为目标应用程序的 URL,请指定此值。
  • false - 如果要使用 sso_<id>.sp.targetUrl 的值作为目标应用程序的 URL,请指定 false。
此属性指定是否应该将客户机请求中接收到的 RelayState 值用作目标应用程序的 URL。如果此属性设置为 false,那么 sso_<id>.sp.targetUrl 属性将用作目标应用程序的 URL。
sso_<id>.sp.login.error.page 此属性没有缺省值。 此属性指定要将未经认证的客户机请求重定向到的错误页面、IdP 登录页面或定制映射类。

如果在此定制属性上指定了定制映射类,那么必须将包含定制类的 .jar 文件放置在 (WAS_HOME)/lib(WAS_HOME)/lib/ext 目录中。

sso_<id>.sp.acsErrorPage 此属性没有缺省值。 此属性用于覆盖 sso_<id>.sp.login.error.page
sso_<id>.sp.allowedClockSkew 此属性没有缺省值。 此属性指定对 IdP 发送的 SAML 令牌的令牌到期时间添加的时间(以分钟计)。
sso_<id>.sp.trustStore 此属性没有缺省值。 此属性指定用于验证 SAML 签名的信任库。它指定受管密钥库的名称。
sso_<id>.sp.trustAnySigner 可以指定下列其中一个值:
  • false(缺省值)- 对签署者证书进行信任验证
  • true - 信任任何签署者证书,而不进行信任验证
  • 最佳实践: 仅将此定制属性用于诊断。请勿在生产环境中使用此定制属性。
此属性指定是否对 SAML 令牌的签署者证书进行信任验证。如果此属性设置为 true,那么将信任任何签署者证书。
sso_<id>.sp.keyStore 需要此属性来接收和处理 EncryptedAssertions,并且此属性没有缺省值。 此属性指定一个受管密钥库的名称,该密钥库包含用于对经过加密的 SAML 断言进行解密的专用密钥。
示例:
  • myKeyStoreRef
  • name=myKeyStoreRef managementScope=(cell):myCell:(node):myNode
myKeyStoreRef
sso_<id>.sp.keyName 需要此属性来接收和处理 EncryptedAssertions,并且此属性没有缺省值。 此属性指定用于对 SAML 断言进行解密的密钥的名称。
sso_<id>.sp.keyPassword 需要此属性来接收和处理 EncryptedAssertions,并且此属性没有缺省值。 此属性指定用于对 SAML 断言进行解密的密钥的密码。
sso_<id>.sp.keyAlias 需要此属性来接收和处理 EncryptedAssertions,并且此属性没有缺省值。 此属性指定用于对 SAML 断言进行解密的密钥的别名。
sso_<id>.sp.wantAssertionsSigned 可以指定下列其中一个值:
  • true(缺省值)- 服务提供程序要求 IdP 对 SAML 断言进行签名
  • false - SAML 断言不需要由 IdP 进行签名
如果此属性设置为 false,那么不需要对 SAML 断言进行签名,并且不会验证签名。
sso_<id>.sp.preserveRequestState 可以指定下列其中一个值:
  • true(缺省值)- 保存客户机状态,并在客户机重定向到 IdP 登录时复原该状态
  • false - 不保存客户机状态
此属性指定服务提供程序将客户机请求重定向到 IdP 登录时,是否需要保存客户机状态并在客户机请求完成后复原该状态。
sso_<id>.sp.enforceTaiCookie 可以指定下列其中一个值:
  • true(缺省值)
  • false
此属性用来指示 SAML TAI 是否应检查 LTPA Cookie 是否映射到针对 SSO 伙伴创建的主体集。
sso_<id>.sp.realmName 这可以是任意字符串值。缺省情况下,此属性设置为 SAML 签发者名称。 此属性指定任意 SAML 属性,并与 realmNameRange 配合使用。此属性的值用作主体集领域。如果 realmNameRange 指定的领域列表未包含此领域,那么将拒绝此领域。
sso_<id>.sp.realmNameRange 此属性没有缺省值。 此属性指定允许的领域名称的列表,并与 realmNameRange 配合使用。请参阅 sso_<id>.sp.realmName 的描述。
sso_<id>.sp.retryOnceAfterTrustFailure 可以指定下列其中一个值:
  • true
  • false
将此属性设置为 true 可使运行时在信任验证失败之后重新装入信任库。 这允许在运行应用程序服务器时使用新的 IdP 证书来更新信任库。
sso_<id>.sp.principalName 这可以是任意字符串值。缺省情况下,此属性设置为主体集的名称标识。 此属性指定任意 SAML 属性。此属性的值用作主体集主体。
sso_<id>.sp.uniqueId 这可以是任意字符串值。缺省情况下,此属性设置为主体集的名称标识。 此属性指定任意 SAML 属性。此属性的值用作主体集的唯一标识。
sso_<id>.sp.groupName 此属性没有缺省值。 此属性指定任意 SAML 属性。此属性的值用作主体集中的组。
sso_<id>.sp.defaultRealm 可以指定下列其中一个值:
  • IssuerName(缺省值)- 使用 SAML 令牌 Issuer 作为缺省领域
  • NameQualifier - 使用 SAML 令牌 NameQualifier 作为缺省领域
此定制属性指定是使用 SAML 断言中的 Issuer 还是 NameQualifier 作为缺省领域。
sso_<id>.sp.useRealm 此属性没有缺省值。 此属性指定领域名称,并用来覆盖缺省领域。此属性还覆盖 realmName 属性。
sso_<id>.sp.idMap 可以指定下列其中一个值:
  • idAssertion(缺省值)- 不在本地注册表中检查 SAML 断言中指定的用户
  • localRealm - 在本地用户注册表中验证 SAML 令牌用户
  • localRealmThenAssertion - 如果在本地注册表中找不到用户,那么将使用 IDAssertion
此属性指定将 SAML 令牌映射到主体集的方式。
sso_<id>.sp.groupMap 可以指定下列其中一个值:
  • localRealm - 指定此值表示将 SAML 令牌组映射到本地用户注册表中找到的组和父组
  • addGroupsFromLocalRealm - 指定此值表示将 SAML 令牌组映射到本地用户注册表中的组和父组。此用户的组成员资格将包含来自 SAML 断言的组和本地用户注册表中找到的组。
此属性与 IDAssertion 配合使用,并指定将 SAML 令牌映射到组的方式。
sso_<id>.sp.userMapImpl 此属性没有缺省值。 此属性指定定制用户映射模块类的名称。此属性用来将 SAML 令牌中的用户标识映射到本地用户注册表中存在的另一个用户标识。

该定制映射类必须实现 com.ibm.wsspi.security.web.saml.UserMapping 接口。必须将包含定制类的 .jar 文件放置在 (WAS_HOME)/lib(WAS_HOME)/lib/ext 目录中。

sso_<id>.sp.X509PATH 此属性没有缺省值。 此属性指定证书库,用于存储验证 SAML 签名时使用的中间证书。
sso_<id>.sp.CRLPATH 此属性没有缺省值。 此属性指定证书库,用于存储验证 SAML 签名时使用的证书撤销列表 (CRL)。
sso_<id>.sp.filter 此属性没有缺省值。 此属性用来指定针对 HTTP 请求检查的条件,以确定是否选择 SAML Web SSO 伙伴处理该 HTTP 请求。有关此属性的更多信息,请参阅“SAML TAI 过滤器属性”一节。
sso_<id>.sp.preventReplayAttack 可以指定下列其中一个值:
  • true(缺省值)
  • false
此属性用来指定 SAML TAI 是否应该阻止在客户机请求中发送两个相同的 SAML 令牌。此属性与全局属性 replayAttackTimeWindow 配合使用。
sso_<id>.sp.preventReplayAttackScope 此属性没有缺省值。您可以指定以下值:
  • 服务器
缺省情况下,SAML TAI 使用分发高速缓存来存储 SAML 断言标识,以阻止重放攻击。如果将此属性设置为 server,那么 SAML TAI 会改为使用本地高速缓存。
sso_<id>.sp.trustedAlias 此属性没有缺省值。 如果指定了属性,那么仅使用此别名指定的密钥来验证 SAML 断言中的签名。如果 SAMLResponse 的传入 SAML 断言中的签名未包含 KeyInfo 元素,请指定此属性以解析 KeyInfo 元素。
sso_<id>.sp.redirectToIdPonServerSide 可以指定下列其中一个值:
  • true(缺省值)
  • false
此属性用于指示 TAI 应该重定向到 IdP 本身。如果重定向时丢失 URL 片段,请将此属性设置为 false;TAI 之后会执行客户端重定向。

SAML TAI 过滤器属性

客户机直接调用受保护的服务提供者应用程序时,将使用 SAML TAI 过滤器属性 sp.filter,而不会向 IdP 进行认证。此过滤器属性通常与 sp.login.error.page 属性配合使用,以便将未经认证的客户机请求重定向到 sp.login.error.page 属性指定的 URL 地址。 sp.filter 属性不适用于 SAMLResponse。SAMLResponse 中的请求 URL 将根据 sp.acsURL 进行评估。

此过滤器属性指定了一组条件,这些条件将根据客户机的 HTTP 请求进行比较,以选择用于处理该 HTTP 请求的 SAML Web SSO 服务提供程序伙伴。每个条件由以下三个元素指定:
  • 必需的输入 - 输入元素通常指定 HTTP 头名称,但也可以使用 request-url 和 remote-address 作为特殊元素
  • 运算符 - 运算符元素指定下列其中一个值:==!=%=^=<>
  • 比较值 - 此元素通常指定一个字符串,但也允许指定 IP 地址范围

这些条件按从左到右顺序根据比较值的指定方式进行求值。如果 HTTP 请求满足某个 SSO 服务提供程序伙伴指定的所有过滤条件,那么将选择该 SSO 服务提供程序伙伴处理该 HTTP 请求。

输入元素用于标识要从 HTTP 请求中抽取的请求头字段,并根据指定的运算符将该字段的值与过滤器属性中指定的值进行比较。如果输入元素所标识的头字段在该 HTTP 请求中不存在,那么认为不满足该条件。任何标准的 HTTP 请求头字段都可以用作过滤条件中的输入元素。有关有效头的列表,请参阅 HTTP 规范。

除了可以使用标准的 HTTP 头字段以外,还可以在过滤属性中使用下面这两个特殊输入元素:
  • request-url - 此输入的比较值将与客户机应用程序用于发出请求的 URL 地址进行比较
  • remote-address - 此输入的比较值将与发送 HTTP 请求的客户机应用程序的 TCP/IP 地址进行比较

示例

在以下示例中,过滤器属性指定 HTTP 头字段 From 作为输入,指定 samluser@xyz.com 作为比较值,并指定 == 作为运算符:
sso_1.sp.filter=From==samluser@xyz.com
在这种情况下,如果客户机请求包含值为 samluser@xyz.com 的 HTTP 头字段 From,那么 SAML TAI 将选择这个 sso_1 过滤器的 SSO 服务提供程序伙伴来处理该客户机请求。
在以下示例中,过滤器属性指定了包含比较值 ivtlanding.jsp 和运算符 %= 的 URL:
sso_2.sp.filter=request-url%=ivtlanding.jsp
在这种情况下,如果客户机调用的目标应用程序的 URL 包含字符串 ivtlanding.jsp,那么 SAML TAI 将选择这个 sso_2 过滤器的 SSO 伙伴来处理该客户机请求。
在以下示例中,过滤器属性指定了包含比较值 DefaultApplication 和运算符 == 的应用程序名称:
sso_3.sp.filter=applicationNames==DefaultApplication
在这种情况下,如果客户机应用程序调用的目标应用程序名为 DefaultApplication,那么 SAML TAI 将选择这个 sso_3 过滤器的 SSO 伙伴来处理该客户机请求。
下表列示过滤器属性中使用的不同运算符:
表 4. 过滤器属性运算符
操作员 条件 示例
== 此运算符指定完全匹配。输入元素必须与比较值相等。 From==jones@my.company.com
%= 此运算符指定部分匹配。输入元素包含比较值。 user-agent%=IE 6request-url%=company.com/urlApp1
^= 输入元素包含其中一个比较值。这是可与 | 运算符进行组合的唯一运算符。 request-url^=urlApp1|urlApp2| urlApp3
!= 输入元素不包含比较值。 request-url!=test105
> 输入元素大于比较值。 remote-address>192.168.255.130
< 输入元素小于比较值。 remote-address<192.168.255.135
; 逻辑 AND 运算符 request-url!=test105;From==jones@my.company.com5
注: 没有您可以与过滤器属性配合使用的逻辑 OR 运算符。

指示主题类型的图标 参考主题



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