API を使用した SAML holder-of-key トークンの作成
SAML holder-of-key トークンは、 WebSphere® Application Server のセキュリティー・トークン・パブリック・インターフェース を拡張するものであり、保護トークンとして使用できます。WebSphere Application Server では、SAML holder-of-key トークン作成用の SAML ライブラリー API が提供されます。
このタスクについて
SAML トークン作成には、次の 3 つのパラメーターが必要です。
- com.ibm.wsspi.wssecurity.saml.config.RequesterConfig
- com.ibm.wsspi.wssecurity.saml.config.ProviderConfig
- com.ibm.wsspi.wssecurity.saml.config.CredentialConfig
手順
例
秘密鍵 (対称鍵) を使用する SAML バージョン 1.1 holder-of-key トークン
をサブジェクトから作成するには、次のサンプル・コードを使用します。
import com.ibm.wsspi.wssecurity.saml.config.RequesterConfig;
import com.ibm.wsspi.wssecurity.saml.config.ProviderConfig;
import com.ibm.wsspi.wssecurity.saml.config.CredentialConfoig ;
import com.ibm.websphere.wssecurity.wssapi.token.SAMLTokenFactory
SAMLTokenFactory samlFactory = SAMLTokenFactory.getInstance(SAMLTokenFactory.WssSamlV11Token11);
RequesterConfig reqData = samlFactory.newSymmetricHolderOfKeyTokenGenerateConfig();
//Map "AppliesTo" to key alias, so library knows how to encrypt the Symmetric Key
reqData.setKeyAliasForAppliesTo("SOAPRecipient");
ProviderConfig samlIssuerCfg = samlFactory.newDefaultProviderConfig(IsserUri);
Subject subject = com.ibm.websphere.security.auth.WSSubject.getRunAsSubject();
SAMLToken samlToken = samlFactory.newSAMLToken(subject, reqData, samlIssuerCfg);
公開鍵を
使用する SAML バージョン 2.0 holder-of-key トークンをサブジェクトから作成するには、
次のサンプル・コードを使用します。
//User expression on how SAML should be created, default provided
RequesterConfig reqData = samlFactory.newAsymmetricHolderOfKeyTokenGenerateConfig();
//Choose a public key to be included in SAML
reqData.setKeyAliasForRequester("SOAPInitiator");
//Get issuer key store so can sign or encrypt assertion, issuer name
ProviderConfig samlIssuerCfg = samlFactory.newDefaultProviderConfig("any_issuer");
//Get JAAS Subject so the factory can populate principal and attributes to SAML
Subject subject = com.ibm.websphere.security.auth.WSSubject.getRunAsSubject();
SAMLToken samlToken = samlFactory.newSAMLToken(subject, reqData, samlIssuerCfg);
秘密鍵 (対称鍵) を
使用する SAML バージョン 2.0 holder-of-key トークンを作成するには、
次のサンプル・コードを使用します。
SAMLTokenFactory samlFactory = SAMLTokenFactory.getInstance (SAMLTokenFactory.WssSamlV20Token11);
RequesterConfig reqData = samlFactory. newSymmetricHolderOfKeyTokenGenerateConfig ();//Map "AppliesTo" to key alias so library knows how to encrypt the Symmetric Key
reqData.setKeyAliasForAppliesTo("SOAPRecipient");
ProviderConfig samlIssuerCfg = samlFactory.newDefaultProviderConfig(null);
CredentialConfig cred = samlFactory.newCredentialConfig ();cred.setRequesterNameID("any_name");
SAMLToken samlToken = samlFactory.newSAMLToken(subject, reqData, samlIssuerCfg);