Konfigurationseigenschaften des SAML-Ausstellers
Wenn Sie ein neues selbst ausgestelltes SAML-Token erstellen, können Sie Konfigurationseigenschaften angeben, um die Konfiguration des Tokens zu steuern. Die Konfigurationseigenschaften sind Name/Wert-Paare, die Informationen auf der Providerseite beschreiben, wie z. B. die Position des Ausstellers und die Dateipfade der Keystores und Truststores.
Die Konfigurationseigenschaften des SAML-Ausstellers können in einer Eigenschaftendatei mit dem Namen SAMLIssuerConfig.properties gespeichert werden. Die Verwendung der Datei SAMLIssuerConfig.properties wird in WebSphere Application Server Version 8 nicht weiter unterstützt.
Beginnend mit WebSphere Application Server Version 8 können Sie diese Eigenschaften in WS-Security-Richtlinienbindungen oder in den APIs für Web Services Security (WSS), WSSGenerationContext, angeben.
In der Administrationskonsole werden die Eigenschaften in den Angepassten WS-Security-Eigenschaften für abgehende Nachrichten festgelegt. Ein Beispielpfad ist
. Sie können die Eigenschaften auch mit der Verwaltungstask setSAMLIssuerConfigInBinding in den WS-Security-Richtlinienbindungen festlegen. Weitere Informationen finden Sie im Artikel "Konfiguration selbst ausgestellter SAML-Token mit wsadmin-Befehlen verwalten".In den WS-Security-Bindungen können diese Eigenschaften auch im SAML-Tokenkonsumenten oder im Callback-Handler des SAML-Tokenkonsumenten definiert werden. Die Rangfolge, angefangen mit der höchsten Priorität, ist: Callback-Handler, Tokenkonsument, allgemeine angepasste Eigenschaften.
- Sie können das selbst ausgestellte Token völlig neu generieren.
- Sie können das selbst ausgestellte Token basierend auf einem im runAs-Subjekt vorhandenen Token generieren. Wenn kein Token im Subjekt vorhanden ist, wird das Token völlig neu erstellt.

Wenn der SAML-Tokengenerator verwendet wird, um ein SAML-Token mit den WSSAPIs auszustellen, werden die angepassten Eigenschaft über eine Hashzuordnung direkt zu com.ibm.websphere.wssecurity.wssapi.WSSGenerationContext hinzugefügt. Weitere Informationen finden Sie in der Javadoc für com.ibm.websphere.wssecurity.wssapi.WSSGenerationContext.
Wenn ein selbst ausgestelltes SAML-Token mit der WSSAPI com.ibm.websphere.wssecurity.wssapi.token.SAMLTokenFactory erstellt wird, gibt die Methode SAMLTokenFactory.newDefaultProviderConfig() ein Objekt des Typs com.ibm.wsspi.wssecurity.saml.config.ProviderConfig zurück, dessen Objektwerte auf die in der Datei SAMLIssuerConfig.properties angegebenen Eigenschaften gesetzt sind. Ist keine Datei des Typs SAMLIssuerConfig.properties angegeben (empfohlener Programmierstil), wird ein ProviderConfig-Objekt mit leerem Inhalt zurückgegeben. Verwenden Sie die ProviderConfig-Setter-Methoden, um den Inhalt zu füllen. Weitere Informationen finden Sie in der Javadoc für com.ibm.websphere.wssecurity.wssapi.token.SAMLTokenFactory.
Position der Datei SAMLIssuerConfig.properties
Auf jedem Server wird eine einzelne Konfigurationsdatei mit dem Namen SAMLIssuerConfig.properties erstellt und gespeichert, die die Eigenschaften auf Providerseite enthält. In einem WebSphere-Server befindet sich die Datei im Repository auf Serverebene bzw. im Repository auf Zellenebene. In einer Umgebung ohne WebSphere wird die Dateiadresse über eine Java™-Systemeigenschaft definiert. Der Name dieser Eigenschaft ist com.ibm.webservices.wssecurity.platform.SAMLIssuerConfigDataPath.
Beispielsweise hat die Datei auf Serverebene in einem WebSphere-Server die folgende Position: Stammverzeichnis_des_Anwendungsservers/profiles/$PROFILE/config/cells/$CELLNAME/nodes/$NODENAME/servers/$SERVERNAME/SAMLIssuerConfig.properties
Auf Zellenebene hat diese Datei in einem WebSphere-Server die folgende Position: Stammverzeichnis_des_Anwendungsservers/profiles/$PROFILE/config/cells/$CELLNAME/sts/SAMLIssuerConfig.properties
SAML-Tokeneigenschaften
Eigenschaftsname in SAMLIssuerConfig.properties | Eigenschaftsname in den Richtlinienbindungen | Beispieleigenschaftswert | Eigenschaftsbeschreibung |
---|---|---|---|
com.ibm.wsspi.wssecurity.dsig.oldEnvelopedSignature | com.ibm.wsspi.wssecurity.saml.config.issuer.oldEnvelopedSignature | true | Verwenden Sie diese Eigenschaft nur dann, wenn Sie die angepasste JVM-Eigenschaft com.ibm.wsspi.wssecurity.dsig.enableEnvelopedSignatureProperty auf true setzen. Informationen dazu, wann diese angepasste JVM-Eigenschaft verwendet werden sollte, finden Sie unter Angepasste JVM-Eigenschaften. |
IssuerFormat | com.ibm.wsspi.wssecurity.saml.config.issuer.IssuerFormat | urn:oasis:names:tc:SAML:1.1:nameid-format:X509SubjectName | Wert für das Attribut Format des Elements Issuer
im SAML-Token. Anmerkung: Wenn Sie das Attribut
Format dem Element
Issuer hinzufügen möchten, müssen Sie diese Eigenschaft angeben.
|
IssuerURI | com.ibm.wsspi.wssecurity.saml.config.issuer.IssuerURI | http://www.websphere.ibm.com/SAML/SelfIssuer | Der URI des Ausstellers. |
TimeToLiveMilliseconds | com.ibm.wsspi.wssecurity.saml.config.issuer.TimeToLiveMilliseconds | 3600000 | Verfallszeit des Tokens. Diese Eigenschaft wird verwendet, um die NotOnOrAfter-Attribute im Token festzulegen. NotOnOrAfter wird auf (currentTime)+TimeToLive+(currentClockSkew) gesetzt. |
KeyStoreRef | com.ibm.wsspi.wssecurity.saml.config.issuer.KeyStoreRef | name=myKeyStoreRef managementScope=(cell):myCell:(node):myNode | Eine Referenz auf einen verwalteten Keystore in security.xml, der den Signierschlüssel enthält. |
KeyStorePath | com.ibm.wsspi.wssecurity.saml.config.issuer.KeyStorePath | Stammverzeichnis_des_Anwendungsservers/etc/ws-security/samples/dsig-receiver.ks | Die Position der Keystore-Datei, die den Signierschlüssel enthält.
Anmerkung: Sie müssen anstelle der Pfadangabe im Standardwert die Pfadposition für Ihr System angeben.
|
KeyStoreType | com.ibm.wsspi.wssecurity.saml.config.issuer.KeyStoreType | JKS | Der Keystore-Typ. |
KeyStorePassword | com.ibm.wsspi.wssecurity.saml.config.issuer.KeyStorePassword | Kennwort | Das Kennwort der Keystore-Datei (das Kennwort für mit XOR verschlüsselt werden). Weitere Informationen finden Sie im Artikel, der sich mit der Kennwortcodierung in Dateien befasst. |
KeyAlias | com.ibm.wsspi.wssecurity.saml.config.issuer.KeyAlias | SOAP-Provider | Der Alias des privaten Signierschlüssels wie im Keystore definiert. |
KeyName | com.ibm.wsspi.wssecurity.saml.config.issuer.KeyName | CN=SOAPProvider, OU=TRL, O=IBM, ST=Kanagawa, C=JP | Der Name des privaten Signierschlüssels wie in der Keystore-Datei definiert. Dieser Name wird für Referenzzwecke verwendet und von der Laufzeit nicht ausgewertet. |
KeyPassword | com.ibm.wsspi.wssecurity.saml.config.issuer.KeyPassword | Kennwort | Das Kennwort des privaten Schlüssels gemäß Definition in der Keystore-Datei (das Kennwort muss mit XOR verschlüsselt werden). |
TrustStoreRef | com.ibm.wsspi.wssecurity.saml.config.issuer.TrustStoreRef | name=myTrustStoreRef managementScope=(cell):myCell:(node):myNode | Eine Referenz auf einen verwalteten Keystore in security.xml, der das Verschlüsselungszertifikat enthält. |
TrustStorePath | com.ibm.wsspi.wssecurity.saml.config.issuer.TrustStorePath | Stammverzeichnis_des_Anwendungsservers/etc/ws-security/samples/dsig-receiver.ks | Die Position der Speicherdatei, die das Verschlüsselungszertifikat enthält.
Anmerkung: Sie müssen anstelle der Pfadangabe im Standardwert die Pfadposition für Ihr System angeben.
|
TrustStoreType | com.ibm.wsspi.wssecurity.saml.config.issuer.TrustStoreType | JKS | Der Speichertyp der Speicherdatei, die das Verschlüsselungszertifikat enthält. |
TrustStorePassword | com.ibm.wsspi.wssecurity.saml.config.issuer.TrustStorePassword | Kennwort | Das Kennwort für die Speicherdatei, die das Verschlüsselungszertifikat enthält. |
AttributeProvider | com.ibm.wsspi.wssecurity.saml.config.issuer.AttributeProvider | com.mycompany.SAML.AttributeProviderImpl | Implementierungsklasse des Attributproviders. Anmerkung: Die Klasse muss die Schnittstelle
"javax.security.auth.callback.CallbackHandler" implementieren.
Die Klasse sollte das Callback-Objekt
"com.ibm.websphere.wssecurity.callbackhandler.Saml11AttributeCallback" oder
"com.ibm.websphere.wssecurity.callbackhandler.Saml20AttributeCallback" erhalten und anschließend
die SAMLAttribute-Liste aktualisieren. Diese Liste wird mit der Methode "getSAMLAttributes" vom betreffenden Objekt abgerufen.
Weitere Informationen finden Sie im Artikel "Attribute für selbst ausgestellte SAML-Token über die API hinzufügen". |
EncryptingAlias | com.ibm.wsspi.wssecurity.saml.config.issuer.EncryptingAlias | soaprecipient | Der Eintrag in der Speicherdatei, der in der TrustStore-Eigenschaft mit dem öffentlichen Zertifikat bereitgestellt wird, das für die Verschlüsselung des SAML-Tokens verwendet wird. Wenn ein selbst ausgestelltes Token mit APIs generiert wird, hat ein Alias, der im Objekt RequesterConfig mit der Methode setKeyAliasForAppliesTo festgelegt wird, Vorrang vor dem für diese Eigenschaft festgelegten Wert. |
EncryptSAML | com.ibm.wsspi.wssecurity.saml.config.issuer.EncryptSAML | true | Setzen Sie diese Eigenschaft auf true, wenn Sie ein verschlüsseltes SAML-Token generieren möchten.
Der Standardwert für diese Eigenschaft ist "false". Wenn Sie ein selbst ausgestelltes Token mit APIs generieren, können Sie auch angeben, dass Sie das SAML-Token mit der Methode setEncryptSAML(true) im Objekt RequesterConfig verschlüsseln möchten. Das SAML-Token wird verschlüsselt, wenn entweder die Einstellung setEncryptSAML=true im Objekt RequesterConfig festgelegt oder die angepasste Eigenschaft EncryptSAML auf true gesetzt wurde. |
NameIDProvider | com.ibm.wsspi.wssecurity.saml.config.issuer.NameIDProvider | com.mycompany.SAML.NameIDProviderImpl | Implementierungsklasse des Namens-ID-Providers. Anmerkung: Die Klasse muss die Schnittstelle
"javax.security.auth.callback.CallbackHandler" implementieren.
Die Klasse sollte das Callback-Objekt
"com.ibm.websphere.wssecurity.callbackhandler.NameIDCallback" erhalten und anschließend die Methode
"setSAMLNameID" für dieses Objekt aufrufen, um die Namens-ID ("NameID") zu aktualisieren.
Weitere Informationen finden Sie im Artikel "Namens-ID für selbst ausgestellte SAML-Token über die API anpassen". |
UseSha2ForSignature | com.ibm.wsspi.wssecurity.saml.config.issuer.UseSha2ForSignature | true | Setzen Sie diese Eigenschaft auf true, um den SHA-2-Signaturalgorithmus (http://www.w3.org/2001/04/xmldsig-more#rsa-sha256) beim Signieren der SAML-Token zu verwenden. |
Beispiel
Im Folgenden sehen Sie ein Beispiel für eine Konfigurationseigenschaftendatei eines SAML-Tokens: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