Web Service 安全 SAML 令牌定制属性
配置 Web Service 安全 SAML 令牌时,您可以配置数据的“名称/值”对,其中名称是属性关键字而值是字符串值,可使用这些“名称/值”对来设置内部系统配置属性。可以使用这些配置属性以及管理控制台中提供的选项来控制生成或使用 SAML 令牌的方式。
要在管理控制台中配置这些 SAML 定制属性,请执行下列任意一项操作:
- 展开服务。
- 选择服务提供程序或服务客户机
- 单击名称列中相应的应用程序。
- 单击绑定列中相应的绑定。
先前必须已连接策略集并且已指定绑定。
或
- 展开WebSphere 企业应用程序。 ,然后单击
- 选择包含 Web Service 的应用程序。该应用程序必须包含服务提供程序或服务客户机。
- 在 Web Service 属性标题下,单击服务提供程序策略集和绑定或服务客户机策略集和绑定。
- 选择绑定。您先前必须已连接策略集并且已指定特定于应用程序的绑定。
然后完成以下步骤:
- 单击“策略”表中的WS-Security。
- 在主消息安全策略绑定标题下面,单击认证和保护。
- 在认证令牌标题下,单击认证令牌的名称。
支持的配置: 您只能将通用安全性令牌登录模块处理的令牌用于认证。不能将该令牌用作保护令牌。sptcfg
- 在其他绑定标题下面,单击回调处理程序。
- 在定制属性标题下,输入“名称/值”对。
下列各节列示定制属性并指示每个定制属性的使用方式。
SAML 令牌生成者定制属性
下表列示了只能用于配置 SAML 令牌生成者绑定的回调处理程序定制属性。
Name | 值 | 描述 |
---|---|---|
appliesTo | 此定制属性没有缺省值。 | 指定在使用 WSS API 时用于所请求的 SAML 令牌的 AppliesTo。 |
audienceRestriction | 有效值为 true 和 false。缺省行为是 true,这将在 SAML 令牌中包括 AudienceRestrictionCondition。 | 此属性仅适用于自我签发的 SAML 令牌。使用此定制属性可以指定是否在 SAML 令牌中包括 AudienceRestrictionCondition 元素。 |
authenticationMethod | 此定制属性没有缺省值。 | 此属性仅适用于自我签发的 SAML 令牌。使用此定制属性可以指定 SAML 令牌中 AuthenticationStatement 元素的 AuthenticationMethod 属性的值。指定此定制属性后,Subject 将包含在 AuthenticationStatement 中,而不是包含在 AttributeStatement 中。 |
com.ibm.webservices.wssecurity.platform.SAMLIssuerConfigDataPath | 此定制属性没有缺省值。 | 使用此定制属性可以指定生成自我签发的 SAML 令牌时所需的配置数据。 |
cacheCushion | 缺省值为 5 分钟。 | 一段时间(以分钟计),经过该时间之后,SAML 令牌的到期时间将到期并且必须发出新令牌。例如,如果将 cacheCushion 设置为 5 分钟并且 SAML 令牌将在 2 分钟内到期,那么不会再次使用该令牌,而是签发新的 SAML 令牌。运行时对 SAML 令牌进行高速缓存时,不会对缓冲垫以外的令牌进行高速缓存。 |
cacheToken | 有效值为 true 和 false。缺省行为是 true,这将允许对 SAML 令牌进行高速缓存以便重复使用。 | 使用此定制属性可以指定是否可以对 SAML 令牌进行高速缓存以便重复使用。 |
com.ibm.webservices.wssecurity.platform.SAMLIssuerConfigDataPath | 缺省值为 ${USER_INSTALL_ROOT}/config/cells/${WAS_CELL_NAME}/sts/SAMLIssuerConfig.properties | 这是生成自签发 SAML 令牌时要使用的配置数据的文件路径。 |
com.ibm.wsspi.wssecurity.saml.client.SamlTokenCacheEntries | 缺省值为 250。 | 使用此 JVM 定制属性来指定可以维护的高速缓存条目的最大数目。 |
com.ibm.wsspi.wssecurity.saml.client.SamlTokenCacheTimeout | 缺省值为 60 分钟。 | 此属性仅用于到期时间未知的 SAML 令牌(经过加密的令牌,或者到期时间未随令牌一起包括在来自 STS 的响应中的令牌)。对于到期时间未知的 SAML 令牌,SamlTokenCacheTimeout 用来替换到期时间。对于将在此条件下进入高速缓存的新 SAML 令牌,其到期时间将是 (current_time)+SamlTokenCacheTimeout。针对 cacheCushion 属性描述的条件仍适用,因此在更改 SamlTokenCacheTimeout 的值时,请记住 cacheCushion 的值。 |
com.ibm.wsspi.wssecurity.saml.get.SamlToken 和 com.ibm.wsspi.wssecurity.saml.put.SamlToken | 有效值为 true 或 false。缺省值为 false。 | |
confirmationMethod | 有效值包括 bearer、holder-of-key 和 sender-vouches。缺省值为 bearer。 | SAML 令牌主体集 ConfirmationMethod。 |
com.ibm.wsspi.wssecurity.saml.get.SamlToken | 此定制属性没有缺省值。 | 使用此定制属性从 RequestContext 中获取 SAML 令牌。 |
com.ibm.wsspi.wssecurity.saml.put.SamlToken | 此定制属性没有缺省值。 | 使用此定制属性对 RequestContext 设置 SAML 令牌。 |
failOverToTokenRequest | 有效值为 true 或 false。缺省值为 true,这表示输入令牌无效时,Web Service 安全性运行时始终签发新的 SAML 令牌。 | 使用此定制属性可以指定 RequestContext 中的输入 SAML 令牌无效时,Web Service 安全性运行时是否应该使用附加的策略集来签发新 SAML 令牌。 |
recipientAlias | 此定制属性没有缺省值。 | 证书的目标服务别名。 |
signToken | 有效值为 true 和 false。 此定制属性没有缺省值。 | 使用此定制属性可以指定是否应使用应用程序消息对 SAML 令牌进行签名。 |
sslConfigAlias | 如果未对此属性指定值,那么将使用系统的 SSL 配置中定义的缺省 SSL 别名。
此属性是可选的。 |
这是 WS-Trust 客户机用来请求获取 SAML 令牌的 SSL 配置的别名。 |
stsURI | 此定制属性没有缺省值。 | SecurityTokenService (STS) 地址。 |
keySize | 此定制属性没有缺省值。 | 这是请求从 STS 获取 SecretKey 时的 KeySize。 |
tokenRequest | 有效值包括 issue、propagation、issueByWSCredential 和 issueByWSPrincipal。缺省值为 issue。 | SAMLToken 请求方法。有关可为此属性指定的值的更多信息,请参阅“传播 SAML 令牌”主题 |
tokenType | 此定制属性没有缺省值。 | 使用此定制属性将所需的令牌类型设置为 SAMLGenerateCallback。 |
usekeyType | 此定制属性是可选的。有效值为 KeyValue、X509Certificate 和 X509IssuerSerial。 | 使用此定制属性可以指定 Usekey 类型,这将指示客户机生成特定类型的密钥信息。 |
WSSConsumingContext | 此定制属性没有缺省值。 | 使用此定制属性可以指定 WS-Trust 客户机用来请求获取 SAML 令牌的 WSSConsumingContext 对象。 |
WSSGenerationContext | 此定制属性没有缺省值。 | 使用此定制属性可以指定 WS-Trust 客户机用来请求获取 SAML 令牌的 WSSGenerationContext 对象。 |
NameID | 此定制属性没有缺省值。 | 此属性用于在自签发 SAML 令牌的主体集中设置 NameID。如果生成器配置为自签发令牌,那么在未指定 NameID 属性的情况下,将尝试根据 runAs 主体集中的 SAML 令牌生成令牌。如果 runAs 主体集中不存在 SAML 令牌,那么将从头开始构建令牌,并且主体集中的 NameID 将设置为 UNAUTHENTICATED。有关使用 WS-Security 绑定中的设置生成自签发 SAML 令牌的更多信息,请参阅“SAML 签发者配置属性”。 |
SAML 令牌使用者定制属性
下表列示了只能用于配置 SAML 令牌使用者绑定的回调处理程序定制属性。
Name | 值 | 描述 |
---|---|---|
allowUnencKeyInHok | 有效值为 true 或 false。缺省值为 true,这表示允许使用未经加密的密钥。 | 使用此属性可以指示 SAML 令牌使用者接受 SAML 密钥持有者令牌中未经加密的密钥。 |
com.ibm.wsspi.wssecurity.saml.signature.SignatureCacheEntries | 整数。缺省值为 1000。 | 可以为 SAML 使用者令牌维护的签名高速缓存条目数。 |
com.ibm.wsspi.wssecurity.saml.signature.SignatureCacheTimeout | 整数。缺省值为 60 分钟。 | 对 SAML 令牌进行高速缓存的分钟数。对 SAML 令牌进行高速缓存时,不需要重复进行签名验证。 |
keyAlias | 此定制属性没有缺省值。 | 密钥库中定义的解密专用密钥的别名。 |
keyName | 此定制属性没有缺省值。 | 密钥库文件中定义的解密专用密钥的名称。此名称用于引用,运行时不对其进行评估。 |
keyPassword | 此定制属性没有缺省值。 | 密钥库文件中定义的解密专用密钥的密码(该密码必须使用 XOR 编码)。有关更多信息,请阅读“对文件中的密码进行编码”。 |
keyStorePassword | 此定制属性没有缺省值。 | 密钥库文件的密码。该密码可以使用 XOR 编码。有关更多信息,请阅读“对文件中的密码进行编码”。 |
keyStorePath | 此定制属性没有缺省值。 | 这是包含解密密钥的密钥库文件的文件路径。 |
keyStoreRef | 此定制属性没有缺省值。 | 对包含解密密钥的 security.xml 中受管密钥库的引用。 样本: name=myKeyStoreRef managementScope=(cell):myCell:(node):myNode |
keyStoreType | 此定制属性没有缺省值。 | 密钥库文件的密钥库类型。 |
signatureRequired | 缺省值为 True。 | 使用此定制属性可以指定是否需要对 SAML 断言进行签名。 |
trustAnySigner | 缺省值是 false。 | 使用此定制属性可以指定接收方能否信任所有对 SAML 断言进行签名的证书。 |
trustedAlias | 此定制属性没有缺省值。 | SAML 使用者令牌的可信 STS 证书的别名。 |
trustedIssuer_ | 名称指定为 trustedIssuer_n,其中,n 是整数。此定制属性没有缺省值。 | 可信签发者的名称。 |
trustedSubjectDN_ | 指定的值的格式必须为 trustedSubjectDN_n,其中,n 是整数。此定制属性没有缺省值。 | X509Certificate 的可信签发者 SubjectDN 名称。 |
trustStorePassword | 此定制属性没有缺省值。 | SAML 使用者令牌的信任库密码。 |
trustStorePath | 此定制属性没有缺省值。 | SAML 使用者令牌的信任库路径。 |
trustStoreRef | 此定制属性没有缺省值。 | SAML 使用者令牌的信任库引用。 样本: name=myTrustStoreRef managementScope=(cell):myCell:(node):myNode |
trustStoreType | 此定制属性没有缺省值。 | 信任库的密钥库类型。 |
validateAudienceRestriction | 有效值为 true 或 false。缺省值为 false,这表示不需要进行 AudienceRestriction 断言验证。 | 使用此定制属性可以指定是否必须验证 AudienceRestriction 断言。 |
validateOneTimeUse | 有效值为 true 或 false。缺省值为 true,这表示需要进行 OneTimeUse 断言验证。 | 使用此定制属性可以指定是否必须验证 SAML 2.0 中的 OneTimeUse 断言或 SAML 1.1 中的 DoNotCacheCondition。 |
CRLPATH | 此定制属性没有缺省值。 | SAML 使用者令牌的已撤销证书列表的文件路径。 |
X509PATH | 此定制属性没有缺省值。 | SAML 使用者令牌的中间 X509 证书文件路径。 |
CRLPATH_ | 指定的值的格式必须为 trustedSubjectDN_n,其中,n 是整数。此定制属性没有缺省值。 | SAML 使用者令牌的已撤销 X509 证书列表的文件路径。 |
X509PATH_ | 指定的值的格式必须为 X509_path_n,其中,n 是整数。此定制属性没有缺省值。 | SAML 使用者令牌的中间 X509 证书的文件路径。 |
同时用于令牌生成者和令牌使用者的 SAML 令牌定制属性
下表列示了可用于同时配置 SAML 令牌生成者和 SAML 令牌使用者绑定的回调处理程序定制属性。
Name | 值 | 描述 |
---|---|---|
clockSkew | 缺省值为 3 分钟。 | 对 SAMLGenerateLoginModule 创建的自签发 SAML 令牌中的时间的调整(以分钟计)。 clockSkew 定制属性是在使用 SAMLGenerateLoginModule 类的 SAML 令牌生成者的回调处理程序中设置的。对此定制属性指定的值必须为数字并且指定以分钟为单位。 对此定制属性指定值后,将在 SAMLGenerateLoginModule 创建的自发放 SAML 令牌中调整以下时间:
|
clientLabel | 此定制属性没有缺省值。 | 这是每当 WSS API 与请求获取的 SAML 令牌配合使用时用于派生的密钥的客户机标签(以字节计)。 |
serviceLabel | 此定制属性没有缺省值。 | 这是每当 WSS API 与请求获取的 SAML 令牌配合使用时用于派生的密钥的服务标签(以字节计)。 |
keylength | 此定制属性没有缺省值。 | 这是每当 WSS API 与请求获取的 SAML 令牌配合使用时用于派生的密钥的派生密钥长度(以字节计)。 |
nonceLength | 缺省值为 128。 | 这是每当 WSS API 与请求获取的 SAML 令牌配合使用时用于派生的密钥的派生现时标志长度(以字节计)。 |
requireDKT | 缺省值是 false。 | 使用此定制属性可以指定每当 WSS API 与请求获取的 SAML 令牌配合使用时用于派生的密钥的选项。 |
useImpliedDKT | 缺省值是 false。 | 使用此定制属性可以指定每当 WSS API 与请求获取的 SAML 令牌配合使用时用于隐式派生的密钥的选项。 |
自签发令牌的 SAML 令牌生成器属性
下表列示了只能用于为自签发 SAML 令牌配置 SAML 令牌生成者绑定的回调处理程序定制属性。
策略绑定属性名 | 样本属性值 | 属性描述 |
---|---|---|
com.ibm.wsspi.wssecurity.saml.config.issuer.oldEnvelopedSignature | true | 仅在将 com.ibm.wsspi.wssecurity.dsig.enableEnvelopedSignatureProperty JVM 定制属性设置为 true 时使用。请参阅主题“Java 虚拟机 (JVM) 定制属性”以了解有关您何时可能要使用此 JVM 定制属性的描述。 |
com.ibm.wsspi.wssecurity.saml.config.issuer.IssuerFormat | urn:oasis:names:tc:SAML:1.1:nameid-format:X509SubjectName | SAML 令牌中签发者元素的格式属性的值。 注: 如果要向签发者元素中添加格式属性,那么您必须指定此属性。
|
com.ibm.wsspi.wssecurity.saml.config.issuer.IssuerURI | http://www.websphere.ibm.com/SAML/SelfIssuer | 签发者的 URI。 |
com.ibm.wsspi.wssecurity.saml.config.issuer.TimeToLiveMilliseconds | 3600000 | 令牌到期前的时间量。此属性用于在令牌中设置 NotOnOrAfter 属性。NotOnOrAfter 设置为 (currentTime)+TimeToLive+(currentClockSkew)。 |
com.ibm.wsspi.wssecurity.saml.config.issuer.KeyStoreRef | name=myKeyStoreRef managementScope=(cell):myCell:(node):myNode | 对包含签名密钥的 security.xml 中受管密钥库的引用。 |
com.ibm.wsspi.wssecurity.saml.config.issuer.KeyStorePath | app_server_root/etc/ws-security/samples/dsig-receiver.ks | 包含签名密钥的密钥库文件的位置。 注: 您必须修改此属性的缺省值,以匹配您的系统的路径位置。
|
com.ibm.wsspi.wssecurity.saml.config.issuer.KeyStoreType | JKS | 密钥库类型。 |
com.ibm.wsspi.wssecurity.saml.config.issuer.KeyStorePassword | password | 密钥库文件的密码(该密码必须使用 XOR 编码)。有关更多信息,请阅读“对文件中的密码进行编码”。 |
com.ibm.wsspi.wssecurity.saml.config.issuer.KeyAlias | soapprovider | 密钥库中定义的签名专用密钥的别名。 |
com.ibm.wsspi.wssecurity.saml.config.issuer.KeyName | CN=SOAPProvider, OU=TRL, O=IBM, ST=Kanagawa, C=JP | 密钥库文件中定义的签名专用密钥的名称。此名称用于引用,运行时不对其进行评估。 |
com.ibm.wsspi.wssecurity.saml.config.issuer.KeyPassword | password | 密钥库文件中定义的专用密钥的密码(该密码必须使用 XOR 编码)。 |
com.ibm.wsspi.wssecurity.saml.config.issuer.TrustStoreRef | name=myTrustStoreRef managementScope=(cell):myCell:(node):myNode | 对包含加密证书的 security.xml 中受管密钥库的引用。 |
com.ibm.wsspi.wssecurity.saml.config.issuer.TrustStorePath | app_server_root/etc/ws-security/samples/dsig-receiver.ks | 包含加密证书的库文件的位置。 注: 您必须修改此属性的缺省值,以匹配您的系统的路径位置。
|
com.ibm.wsspi.wssecurity.saml.config.issuer.TrustStoreType | JKS | 包含加密证书的库文件的存储类型。 |
com.ibm.wsspi.wssecurity.saml.config.issuer.TrustStorePassword | password | 包含加密证书的库文件的密码。 |
com.ibm.wsspi.wssecurity.saml.config.issuer.AttributeProvider | com.mycompany.SAML.AttributeProviderImpl | 属性提供程序的实现类型。 注: 该类必须实现 javax.security.auth.callback.CallbackHandler。该类应接收 com.ibm.websphere.wssecurity.callbackhandler.Saml11AttributeCallback 或 com.ibm.websphere.wssecurity.callbackhandler.Saml20AttributeCallback 回调对象,然后更新通过从该对象调用的 getSAMLAttributes 方法接收到的 SAMLAttribute 列表。
有关更多信息,请参阅“使用 API 向自签发 SAML 令牌添加属性”。 |
com.ibm.wsspi.wssecurity.saml.config.issuer.EncryptingAlias | soaprecipient | TrustStore 属性上提供的存储文件中的条目,其中包含将用于为 SAML 令牌加密的公用证书。使用 API 生成自签发令牌时,使用 setKeyAliasForAppliesTo 方法在 RequesterConfig 上设置的别名将优先于为此属性提供的值。 |
com.ibm.wsspi.wssecurity.saml.config.issuer.EncryptSAML | true | 如果要生成加密的 SAML 令牌,请将此属性设置为 true。此属性的缺省值为 false。 使用 API 生成自签发令牌时,还可以表明要使用 RequesterConfig 对象上的 setEncryptSAML(true) 方 法为 SAML 令牌加密。如果 RequesterConfig 对象上的 setEncryptSAML=true 或 EncryptSAML 定制属性设置为 true,那么将会为 SAML 令牌加密。 |
com.ibm.wsspi.wssecurity.saml.config.issuer.NameIDProvider | com.mycompany.SAML.NameIDProviderImpl | 名称 ID 提供程序的实现类型。 注: 该类必须实现 javax.security.auth.callback.CallbackHandler。该类应接收 com.ibm.websphere.wssecurity.callbackhandler.NameIDCallback 回调对象,然后调用该对象上的 setSAMLNameID 方法来更新 NameID。
有关更多信息,请参阅“使用 API 定制自签发 SAML 令牌的名称标识”。 |
com.ibm.wsspi.wssecurity.saml.config.issuer.UseSha2ForSignature | true | 将此属性设置为 true 将在签发 SAML 令牌时使用 SHA-2 签名算法 http://www.w3.org/2001/04/xmldsig-more#rsa-sha256。 |
信任客户机定制属性
下表列示了可用于配置信任客户机的定制属性。与 SAML 令牌生成器结合使用时,会将这些定制属性添加到 SAML 令牌生成器回调处理程序。
Name | 值 | 描述 |
---|---|---|
com.ibm.wsspi.wssecurity.trust.client.TrustServiceCacheEntries | 缺省值为 1000。 | 这是可以维护的 STS 服务实例高速缓存条目的最大数目。 |
com.ibm.wsspi.wssecurity.trust.client.TrustServiceCacheTimeout | 缺省值为 60 分钟。 | 这是可以将 STS 服务实例保留在客户机端高速缓存中的时间长度(以分钟计)。 |
keyType | 可以对 WS-Trust 1.2 指定下列 keyType:
可以对 WS-Trust 1.3 指定下列 keyType:
|
这是向 STS 发出 WS-Trust 请求时使用的 keyType。 |
wstrustActAsRequired | 有效值为 true 和 false。缺省值为 false。 | 如果 SAML 令牌将插入 STS 请求中的 ActAs 元素中,请将此属性设置为 true。SAML 令牌必须在当前 runAs 主体集或 JAAS 登录共享状态对象中存在。JAAS 登录共享状态中的令牌优先于 runAs 主体集中的令牌。如果 onBehalfOfRequired 和 actAsRequired 均设置为 true,那么将仅在 STS 请求中插入 OnBehalfOf 元素。有关更多信息,请参阅“使用堆栈化 JAAS 登录模块来生成并使用 SAML 令牌”。 |
wstrustActAsTokenType | 有效值为 http://docs.oasis-open.org/wss/oasis-wss-saml-token-profile-1.1#SAMLV1.1 和 http://docs.oasis-open.org/wss/oasis-wss-saml-token-profile-1.1#SAMLV2.0。缺省值是使用 SAML 生成器回调处理程序生成的令牌的类型。 | 将此属性设置为将插入到 STS 请求中的 ActAs 元素中的消息的 SAML 令牌的令牌类型。 |
wstrustActAsReIssue | 有效值为 true 和 false。缺省值为 false。 | 将此属性设置为 true 以将 SAML 令牌插入至 STS 请求中的 ActAsReIssue 元素,或通过 runAs 主体集插入使用 SAML 生成器回调处理程序中的签名和加密设置重新发出的 SAML 令牌。无法重新签发从 JAAS 登录共享状态对象获取的 SAML 令牌。 |
wstrustClientBinding | 此定制属性没有缺省值。 | WS-Trust 客户机的绑定名称。 |
wstrustClientBindingScope | 此定制属性没有缺省值。 | 这是附加到 WS-Trust 客户机的策略集的绑定范围。 |
wstrustClientCollectionRequest | 有效值为 true 或 false。缺省值为 false,这表示使用 RequestSecurityToken 来代替 RequestSecurityTokenCollection。 | 使用此定制属性可以指定在 WS-Trust 请求中是否需要 RequestSecurityTokenCollection。 |
wstrustClientPolicy | 此定制属性没有缺省值。 | WS-Trust 客户机的策略集名称。 |
wstrustClientSoapVersion | 有效值为 1.1 和 1.2。如果未指定值,那么 SOAP 版本将缺省为应用程序客户机所使用的 SOAP 版本。 | WS-Trust 请求中的 SOAP 版本。 |
wstrustClientWSTNamespace | 缺省值为 trust13。有效值是 trust12 和 trust13。 | WS-Trust 请求的 WS-Trust 名称空间。 |
wstrustOnBehalfOfRequired | 有效值为 true 和 false。缺省值为 false。 | 如果 SAML 令牌将插入 STS 请求中的 OnBehalfOf 元素中,请将此属性设置为 true。SAML 令牌必须在当前 runAs 主体集或 JAAS 登录共享状态对象中存在。JAAS 登录共享状态中的令牌优先于 runAs 主体集中的令牌。请参阅 twbs_gen_con_token_JAAS_mod 以获取更多信息。 |
wstrustOnBehalfOfTokenType | 有效值为 http://docs.oasis-open.org/wss/oasis-wss-saml-token-profile-1.1#SAMLV1.1 和 http://docs.oasis-open.org/wss/oasis-wss-saml-token-profile-1.1#SAMLV2.0。缺省值是使用 SAML 生成器回调处理程序生成的令牌的类型。 | 将此属性设置为将插入到 STS 请求中的 OnBehalfOf 元素中的消息的 SAML 令牌的令牌类型。 |
wstrustOnBehalfOfReIssue | 有效值为 true 和 false。缺省值为 false。 | 如果将此属性设置为 true,那么会将 SAML 令牌插入使用 SAML 生成器回调处理程序中的签名和加密设置重新签发的 runAs 主体集中 STS 请求中的 OnBehalfOf 元素中。无法重新签发从 JAAS 登录共享状态对象获取的 SAML 令牌。 |