SAML-HoK-Token mit der API erstellen
Das SAML-HoK-Token (Holder-of-Key) erweitert die öffentliche Schnittstelle in WebSphere Application Server und kann als Schutztoken verwendet werden. WebSphere Application Server stellt eine API der SAML-Bibliothek zum Erstellen von SAML-HoK-Token bereit.
Informationen zu diesem Vorgang
Für die SAML-Tokenerstellung sind drei Parameter erforderlich:
- com.ibm.wsspi.wssecurity.saml.config.RequesterConfig
- com.ibm.wsspi.wssecurity.saml.config.ProviderConfig
- com.ibm.wsspi.wssecurity.saml.config.CredentialConfig
Vorgehensweise
Beispiel
Verwenden Sie diesen Beispielcode, um ein
SAML-HoK-Token der Version 1.1 unter Verwendung eines geheimen Schlüssels
(eines symmetrischen Schlüssels) aus dem Subjekt zu erstellen.
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();
//"AppliesTo" dem Schlüsselalias zuordnen, damit die Bibliothek weiß, wie der
// symmetrische Schlüssel verschlüsselt werden soll
reqData.setKeyAliasForAppliesTo("SOAPRecipient");
ProviderConfig samlIssuerCfg = samlFactory.newDefaultProviderConfig(IsserUri);
Subject subject = com.ibm.websphere.security.auth.WSSubject.getRunAsSubject();
SAMLToken samlToken = samlFactory.newSAMLToken(subject, reqData, samlIssuerCfg);
Verwenden Sie diesen Beispielcode, um ein
SAML-HoK-Token der Version 2.0 unter Verwendung eines öffentlichen Schlüssels
aus dem Subjekt zu erstellen:
// Benutzerausdruck, der festlegt, wie SAML erstellt werden soll, Standardeinstellung wird angegeben
RequesterConfig reqData = samlFactory.newAsymmetricHolderOfKeyTokenGenerateConfig();
//Öffentlichen Schlüssel auswählen, der in SAML aufgenommen werden soll
reqData.setKeyAliasForRequester("SOAPInitiator");
//Keystore des Ausstellers abrufen, damit die Zusicherung signiert oder
// verschlüsselt werden kann, Name des Ausstellers
ProviderConfig samlIssuerCfg = samlFactory.newDefaultProviderConfig("any_issuer");
//JAAS-Subjekt abrufen, damit die Factory Principal und Attribute für SAML füllen kann
Subject subject = com.ibm.websphere.security.auth.WSSubject.getRunAsSubject();
SAMLToken samlToken = samlFactory.newSAMLToken(subject, reqData, samlIssuerCfg);
Verwenden Sie diesen Beispielcode, um ein
SAML-HoK-Token der Version 2.0 unter Verwendung eines geheimen Schlüssels
(eines symmetrischen Schlüssels) zu erstellen.
SAMLTokenFactory samlFactory = SAMLTokenFactory.getInstance (SAMLTokenFactory.WssSamlV20Token11);
RequesterConfig reqData = samlFactory. newSymmetricHolderOfKeyTokenGenerateConfig ();
//"AppliesTo" dem Schlüsselalias zuordnen, damit die Bibliothek weiß, wie der
// symmetrische Schlüssel verschlüsselt werden soll
reqData.setKeyAliasForAppliesTo("SOAPRecipient");
ProviderConfig samlIssuerCfg = samlFactory.newDefaultProviderConfig(null);
CredentialConfig cred = samlFactory.newCredentialConfig ();
cred.setRequesterNameID("any_name");
SAMLToken samlToken = samlFactory.newSAMLToken(subject, reqData, samlIssuerCfg);