SAML 签发者配置属性
创建一个新的自签发 SAML 令牌时,您可以指定配置属性,以控制如何配置令牌。这些配置属性是名称/值对,描述了提供程序端的信息(例如签发者位置)以及密钥库和信任库文件的路径。
可以在名为 SAMLIssuerConfig.properties 的属性文件中存储 SAML 签发者配置属性。在 WebSphere Application Server V8 中不推荐使用 SAMLIssuerConfig.properties 文件。
从 WebSphere Application Server V8 开始,您还可在 WS-Security 策略绑定或 Web Service 安全性 (WSS) 应用程序编程接口 (API) WSSGenerationContext 中指定这些属性。
在管理控制台中,在 WS-Security 出站定制属性中设置这些属性。示例路径为
。您还可使用 setSAMLIssuerConfigInBinding 管理任务在 WS-Security 策略绑定中设置属性。有关更多信息,请参阅“使用 wsadmin 命令管理自签发 SAML 令牌配置”。在 WS-Security 绑定中,还可以在 SAML 令牌使用者或 SAML 令牌使用者回调处理程序上设置这些属性。优先顺序从高到低为:回调处理程序、令牌使用者、常规定制属性。
- 从头开始生成自签发令牌。
- 根据 runAs 主体集中现有令牌生成自签发令牌。如果主体集中没有令牌,那么将从头开始构建令牌。

如果使用 SAML 令牌生成器通过 WSSAPI 来自签发 SAML 令牌,那么会使用散列映射将定制属性直接添加至 com.ibm.websphere.wssecurity.wssapi.WSSGenerationContext。请参阅 com.ibm.websphere.wssecurity.wssapi.WSSGenerationContext 的 javadoc,以获取更多信息。
如果将使用 com.ibm.websphere.wssecurity.wssapi.token.SAMLTokenFactory WSSAPI 创建自签发 SAML 令牌,那么 SAMLTokenFactory.newDefaultProviderConfig() 方法会返回 com.ibm.wsspi.wssecurity.saml.config.ProviderConfig 对象,此对象将对象值设置为 SAMLIssuerConfig.properties 文件中指定的属性。如果未指定 SAMLIssuerConfig.properties 文件(建议的编程样式),那么将返回具有空内容的 ProviderConfig 对象。使用 ProviderConfig setter 方法填充其内容。请参阅 com.ibm.websphere.wssecurity.wssapi.token.SAMLTokenFactory 的 javadoc,以获取更多信息。
SAMLIssuerConfig.properties 文件位置
在每个服务器中创建并存储包含提供程序端属性单个配置文件(例如 SAMLIssuerConfig.properties)。在 WebSphere® 服务器上,该文件位于服务器级别的存储库中或位于单元级的存储库中。在非基于 WebSphere 的环境中,该文件位置由 Java™ 系统属性进行定义。此属性的名称为 com.ibm.webservices.wssecurity.platform.SAMLIssuerConfigDataPath。
例如,在 WebSphere 服务器上,此文件在服务器级别的位置为:app_server_root/profiles/$PROFILE/config/cells/$CELLNAME/nodes/$NODENAME/servers/$SERVERNAME/SAMLIssuerConfig.properties
在 WebSphere 服务器上,此文件在单元级别的位置为:app_server_root/profiles/$PROFILE/config/cells/$CELLNAME/sts/SAMLIssuerConfig.properties
SAML 令牌属性
SAMLIssuerConfig.properties 属性名 | 策略绑定属性名 | 样本属性值 | 属性描述 |
---|---|---|---|
com.ibm.wsspi.wssecurity.dsig.oldEnvelopedSignature | com.ibm.wsspi.wssecurity.saml.config.issuer.oldEnvelopedSignature | true | 仅在将 com.ibm.wsspi.wssecurity.dsig.enableEnvelopedSignatureProperty JVM 定制属性设置为 true 时使用。请参阅主题“Java 虚拟机 (JVM) 定制属性”以了解有关您何时可能要使用此 JVM 定制属性的描述。 |
IssuerFormat | com.ibm.wsspi.wssecurity.saml.config.issuer.IssuerFormat | urn:oasis:names:tc:SAML:1.1:nameid-format:X509SubjectName | SAML 令牌中签发者元素的格式属性的值。 注: 如果要向签发者元素中添加格式属性,那么您必须指定此属性。
|
IssuerURI | com.ibm.wsspi.wssecurity.saml.config.issuer.IssuerURI | http://www.websphere.ibm.com/SAML/SelfIssuer | 签发者的 URI。 |
TimeToLiveMilliseconds | com.ibm.wsspi.wssecurity.saml.config.issuer.TimeToLiveMilliseconds | 3600000 | 令牌到期前的时间量。此属性用于在令牌中设置 NotOnOrAfter 属性。NotOnOrAfter 设置为 (currentTime)+TimeToLive+(currentClockSkew)。 |
KeyStoreRef | com.ibm.wsspi.wssecurity.saml.config.issuer.KeyStoreRef | name=myKeyStoreRef managementScope=(cell):myCell:(node):myNode | 对包含签名密钥的 security.xml 中受管密钥库的引用。 |
KeyStorePath | com.ibm.wsspi.wssecurity.saml.config.issuer.KeyStorePath | app_server_root/etc/ws-security/samples/dsig-receiver.ks | 包含签名密钥的密钥库文件的位置。 注: 您必须修改此属性的缺省值,以匹配您的系统的路径位置。
|
KeyStoreType | com.ibm.wsspi.wssecurity.saml.config.issuer.KeyStoreType | JKS | 密钥库类型。 |
KeyStorePassword | com.ibm.wsspi.wssecurity.saml.config.issuer.KeyStorePassword | password | 密钥库文件的密码(该密码必须使用 XOR 编码)。有关更多信息,请阅读“对文件中的密码进行编码”。 |
KeyAlias | com.ibm.wsspi.wssecurity.saml.config.issuer.KeyAlias | soapprovider | 密钥库中定义的签名专用密钥的别名。 |
KeyName | com.ibm.wsspi.wssecurity.saml.config.issuer.KeyName | CN=SOAPProvider, OU=TRL, O=IBM, ST=Kanagawa, C=JP | 密钥库文件中定义的签名专用密钥的名称。此名称用于引用,运行时不对其进行评估。 |
KeyPassword | com.ibm.wsspi.wssecurity.saml.config.issuer.KeyPassword | password | 密钥库文件中定义的专用密钥的密码(该密码必须使用 XOR 编码)。 |
TrustStoreRef | com.ibm.wsspi.wssecurity.saml.config.issuer.TrustStoreRef | name=myTrustStoreRef managementScope=(cell):myCell:(node):myNode | 对包含加密证书的 security.xml 中受管密钥库的引用。 |
TrustStorePath | com.ibm.wsspi.wssecurity.saml.config.issuer.TrustStorePath | app_server_root/etc/ws-security/samples/dsig-receiver.ks | 包含加密证书的库文件的位置。 注: 您必须修改此属性的缺省值,以匹配您的系统的路径位置。
|
TrustStoreType | com.ibm.wsspi.wssecurity.saml.config.issuer.TrustStoreType | JKS | 包含加密证书的库文件的存储类型。 |
TrustStorePassword | com.ibm.wsspi.wssecurity.saml.config.issuer.TrustStorePassword | password | 包含加密证书的库文件的密码。 |
AttributeProvider | 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 令牌添加属性”。 |
EncryptingAlias | com.ibm.wsspi.wssecurity.saml.config.issuer.EncryptingAlias | soaprecipient | TrustStore 属性上提供的存储文件中的条目,其中包含将用于为 SAML 令牌加密的公用证书。使用 API 生成自签发令牌时,使用 setKeyAliasForAppliesTo 方法在 RequesterConfig 上设置的别名将优先于为此属性提供的值。 |
EncryptSAML | com.ibm.wsspi.wssecurity.saml.config.issuer.EncryptSAML | true | 如果要生成加密的 SAML 令牌,请将此属性设置为 true。此属性的缺省值为 false。 使用 API 生成自签发令牌时,还可以表明要使用 RequesterConfig 对象上的 setEncryptSAML(true) 方 法为 SAML 令牌加密。如果 RequesterConfig 对象上的 setEncryptSAML=true 或 EncryptSAML 定制属性设置为 true,那么将会为 SAML 令牌加密。 |
NameIDProvider | 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 令牌的名称标识”。 |
UseSha2ForSignature | com.ibm.wsspi.wssecurity.saml.config.issuer.UseSha2ForSignature | true | 将此属性设置为 true 将在签发 SAML 令牌时使用 SHA-2 签名算法 http://www.w3.org/2001/04/xmldsig-more#rsa-sha256。 |
示例
请参阅以下有关 SAML 令牌配置属性文件的示例:IssuerURI=http://www.websphere.ibm.com/SAML/SelfIssuer
TimeToLiveMilliseconds=3600000
KeyStorePath=${USER_INSTALL_ROOT}/etc/ws-security/samples/dsig-receiver.ks
KeyStoreType=JKS
KeyStorePassword={xor}LDotKTot
KeyAlias=soapprovider
KeyName=CN=SOAPProvider, OU=TRL, O=IBM, ST=Kanagawa, C=JP
KeyPassword={xor}LDotKTot
TrustStorePath=${USER_INSTALL_ROOT}/etc/ws-security/samples/dsig-receiver.ks
TrustStoreType=JKS
TrustStorePassword={xor}LDotKTot