Propriétés de configuration de l'émetteur SAML
Quand vous créez un jeton SAML auto-généré, vous pouvez indiquer des propriétés de configuration pour ce jeton. Les propriété de configuration sont des paires nom/valeur qui décrivent les informations relatives au fournisseur, telles que l'emplacement de l'émetteur et les chemins d'accès au fichier de clés et au fichier de clés certifiées.
Les propriétés de configuration de l'émetteur SAML peuvent être stockées dans un fichier de propriétés appelé SAMLIssuerConfig.properties. L'utilisation du fichier SAMLIssuerConfig.properties est obsolète dans WebSphere Application Server version 8.
A compter de WebSphere Application Server version 8, vous pouvez également spécifier ces propriétés dans des liaisons de règles WS-Security ou dans les API WSS (Web Services Security) WSSGenerationContext.
Dans la console d'administration, les propriétés sont définies dans les propriétés personnalisées sortantes WS-Security. Un exemple de chemin est
. Vous pouvez également définir les propriétés dans les liaisons de règles WS-Security à l'aide de la tâche d'administration setSAMLIssuerConfigInBinding. Pour plus d'informations, voir Gestion de la configuration des jetons SAML auto-générés à l'aide de commandes wsadmin.Dans les liaisons WS-Security, ces propriétés peuvent aussi être définies sur le consommateur du jeton SAML ou sur son gestionnaire de rappel. L'ordre des priorités, de la plus forte à la plus faible, est le suivant : gestionnaire de rappel, consommateur du jeton, propriétés générales personnalisées.
- Il auto-génère le jeton de toutes pièces.
- Il auto-génère le jeton à partir d'un jeton existant dans le sujet runAs. Si ce jeton n'est pas dans le sujet, le nouveau jeton est généré de toutes pièces.

Si le générateur de jetons SAML est utilisé pour générer automatiquement un jeton SAML à l'aide des API WSS, les propriétés personnalisées sont directement ajoutées à com.ibm.websphere.wssecurity.wssapi.WSSGenerationContext à l'aide d'une mappe de hachage. Pour plus d'informations, recherchez com.ibm.websphere.wssecurity.wssapi.WSSGenerationContext dans la documentation Java.
Si un jeton SAML auto-généré est créé à l'aide de l'API WSS com.ibm.websphere.wssecurity.wssapi.token.SAMLTokenFactory, la méthode SAMLTokenFactory.newDefaultProviderConfig() renvoie un objet com.ibm.wsspi.wssecurity.saml.config.ProviderConfig dont les valeurs correspondent aux propriétés spécifiées dans le fichier SAMLIssuerConfig.properties. Si aucun fichier SAMLIssuerConfig.properties n'est spécifié, ce qui correspond au style de programmation recommandé, un objet ProviderConfig avec un contenu vide est renvoyé. Utilisez les méthode d'accès set ProviderConfig pour alimenter son contenu. Pour plus d'informations, recherchez com.ibm.websphere.wssecurity.wssapi.token.SAMLTokenFactory dans la documentation Java.
Emplacement du fichier SAMLIssuerConfig.properties
Un fichier de configuration nommé SAMLIssuerConfig.properties est créé et stocké sur chaque serveur pour contenir les propriétés du fournisseur. Sur un serveur WebSphere le fichier réside dans le référentiel de niveau serveur ou le référentiel de niveau cellule. Dans un environnement non WebSphere, l'emplacement du fichier de configuration est défini par une propriété système Java™. Le nom de cette propriété est com.ibm.webservices.wssecurity.platform.SAMLIssuerConfigDataPath.
Par exemple, sur un serveur WebSphere, l'emplacement du fichier au niveau du serveur est : racine_serveur_app/profiles/$PROFILE/config/cells/$CELLNAME/nodes/$NODENAME/servers/$SERVERNAME/SAMLIssuerConfig.properties
Sur un serveur WebSphere, l'emplacement de ce fichier au niveau de la cellule est le suivant : racine_serveur_app/profiles/$PROFILE/config/cells/$CELLNAME/sts/SAMLIssuerConfig.properties
Propriétés du jeton SAML
Nom de la propriété SAMLIssuerConfig.properties | Nom de la propriété des liaisons de règles | Exemple de valeur | Description de la propriété |
---|---|---|---|
com.ibm.wsspi.wssecurity.dsig.oldEnvelopedSignature | com.ibm.wsspi.wssecurity.saml.config.issuer.oldEnvelopedSignature | true | A n'utiliser que si vous associez la propriété personnalisée JVM com.ibm.wsspi.wssecurity.dsig.enableEnvelopedSignatureProperty à la valeur true. Voir la rubrique relative aux propriétés personnalisées Java Virtual Machine (JVM) pour savoir quand utiliser cette propriété personnalisée JVM. |
IssuerFormat | com.ibm.wsspi.wssecurity.saml.config.issuer.IssuerFormat | urn:oasis:names:tc:SAML:1.1:nameid-format:X509SubjectName | Valeur de l'attribut Format de l'élément Issuer dans le jeton SAML.
Remarque : Si vous voulez ajouter l'attribut Format à l'élément Issuer, vous devez spécifier cette propriété.
|
IssuerURI | com.ibm.wsspi.wssecurity.saml.config.issuer.IssuerURI | http://www.websphere.ibm.com/SAML/SelfIssuer | URI de l'émetteur. |
TimeToLiveMilliseconds | com.ibm.wsspi.wssecurity.saml.config.issuer.TimeToLiveMilliseconds | 3600000 | Délai maximum avant l'expiration du jeton. Cette propriété est utilisée pour définir les attributs NotOnOrAfter dans le jeton. NotOnOrAfter est défini sur (currentTime)+TimeToLive+(currentClockSkew). |
KeyStoreRef | com.ibm.wsspi.wssecurity.saml.config.issuer.KeyStoreRef | name=myKeyStoreRef managementScope=(cell):myCell:(node):myNode | Référence à un fichier de clés géré dans le fichier security.xml qui contient la clé de signature. |
KeyStorePath | com.ibm.wsspi.wssecurity.saml.config.issuer.KeyStorePath | racine_serveur_app/etc/ws-security/samples/dsig-receiver.ks | Emplacement du fichier fichier de clés contenant
la clé de signature. Remarque : Vous devez entrer le chemin correspondant à votre installation à la place de la valeur par défaut.
|
KeyStoreType | com.ibm.wsspi.wssecurity.saml.config.issuer.KeyStoreType | JKS | Type du fichier de clés. |
KeyStorePassword | com.ibm.wsspi.wssecurity.saml.config.issuer.KeyStorePassword | motdepasse | Mot de passe du fichier de clés (le mot de passe doit être codé par la méthode XOR). Pour plus d'informations, consultez la rubrique relative au codage des mots de passe dans les fichiers. |
KeyAlias | com.ibm.wsspi.wssecurity.saml.config.issuer.KeyAlias | fournisseurSOAP | Alias de la clé privée de signature défini dans le magasin de clés. |
KeyName | com.ibm.wsspi.wssecurity.saml.config.issuer.KeyName | CN=SOAPProvider, OU=TRL, O=IBM, ST=Kanagawa, C=JP | Nom de la clé de la clé privée de signature défini dans le fichier de clés. Ce nom est donné à titre de référence et n'est pas évalué par l'environnement d'exécution. |
KeyPassword | com.ibm.wsspi.wssecurity.saml.config.issuer.KeyPassword | motdepasse | Mot de passe de la clé privée défini dans le fichier de clés (le mot de passe doit être codé par la méthode XOR). |
TrustStoreRef | com.ibm.wsspi.wssecurity.saml.config.issuer.TrustStoreRef | name=myTrustStoreRef managementScope=(cell):myCell:(node):myNode | Référence à un fichier de clés géré dans le fichier security.xml qui contient le certificat de chiffrement. |
TrustStorePath | com.ibm.wsspi.wssecurity.saml.config.issuer.TrustStorePath | racine_serveur_app/etc/ws-security/samples/dsig-receiver.ks | Emplacement du fichier de magasin contenant le certificat de
chiffrement. Remarque : Vous devez entrer le chemin correspondant à votre installation à la place de la valeur par défaut.
|
TrustStoreType | com.ibm.wsspi.wssecurity.saml.config.issuer.TrustStoreType | JKS | Type de magasin du fichier de magasin contenant le certificat de chiffrement. |
TrustStorePassword | com.ibm.wsspi.wssecurity.saml.config.issuer.TrustStorePassword | motdepasse | Mot de passe du fichier de magasin contenant le certificat de chiffrement. |
AttributeProvider | com.ibm.wsspi.wssecurity.saml.config.issuer.AttributeProvider | com.monentreprise.SAML.implFournisseurAttributs | Classe d'implémentation du fournisseur d'attributs. Remarque : Cette classe doit implémenter javax.security.auth.callback.CallbackHandler. Elle doit recevoir l'objet de rappel com.ibm.websphere.wssecurity.callbackhandler.Saml11AttributeCallback
ou com.ibm.websphere.wssecurity.callbackhandler.Saml20AttributeCallback, puis mettre à jour la liste SAMLAttribute reçue de la méthode getSAMLAttributes appelée depuis cet objet.
Pour plus d'informations, reportez-vous à la rubrique Ajout d'attributs à des jetons SAML auto-générés à l'aide de l'API. |
EncryptingAlias | com.ibm.wsspi.wssecurity.saml.config.issuer.EncryptingAlias | soaprecipient | Entrée du fichier indiqué par la propriété TrustStore, contenant le certificat public destiné au chiffrement du jeton SAML. Lors de la génération d'un jeton auto-généré avec les API, un alias défini sur RequesterConfig à l'aide de la méthode setKeyAliasForAppliesTo a la priorité sur la valeur de cette propriété. |
EncryptSAML | com.ibm.wsspi.wssecurity.saml.config.issuer.EncryptSAML | true | Définissez cette propriété sur true pour générer un jeton SAML chiffré. La valeur par défaut de la propriété est false. Lors de la génération d'un jeton auto-généré avec les API, vous pouvez aussi indiquer que vous souhaitez chiffrer le jeton SAML à l'aide de la méthode setEncryptSAML(true) sur l'objet RequesterConfig. Le jeton SAML sera chiffré si setEncryptSAML=true sur l'objet RequesterConfig ou la propriété personnalisée EncryptSAML a la valeur true. |
NameIDProvider | com.ibm.wsspi.wssecurity.saml.config.issuer.NameIDProvider | com.monentreprise.SAML.implFournisseurIDNom | Classe d'implémentation du fournisseur d'ID de nom. Remarque : Cette classe doit implémenter javax.security.auth.callback.CallbackHandler. Elle doit recevoir l'objet de rappel com.ibm.websphere.wssecurity.callbackhandler.NameIDCallback, puis appeler la méthode setSAMLNameID sur cet objet pour mettre à jour l'ID de nom (NameID).
Pour plus d'informations, reportez-vous à la rubrique Personnalisation du NameID des jetons SAML auto-générés à l'aide de l'API. |
UseSha2ForSignature | com.ibm.wsspi.wssecurity.saml.config.issuer.UseSha2ForSignature | true | Affectez à cette propriété la valeur true de manière à utiliser l'algorithme de signature SHA-2 http://www.w3.org/2001/04/xmldsig-more#rsa-sha256, lors de la signature du jeton SAML. |
Exemple
Observez l'exemple suivant de fichier de propriétés de configuration d'un jeton 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