Propriétés personnalisées de l'intercepteur de relations de confiance (TAI) SSO Web SAML
Les tableaux ci-dessous répertorient les propriétés personnalisées de l'intercepteur de relations de confiance (TAI) SAML (Security Assertion Markup Language). Vous pouvez définir ces propriétés dans le panneau des propriétés personnalisées de TAI SAML à l'aide de la console d'administration.
Pour attribuer des noms de propriétés uniques qui identifient chaque fournisseur de services de connexion unique (SSO) possible, un sso_<id> est inscrit dans le nom de propriété et utilisé dans le but de regrouper toutes les propriétés associées à chaque partenaire SSO. Les sso_<id> sont numérotés de manière séquentielle pour chaque partenaire de fournisseur de services SSO.
- Propriétés globales - ces propriétés s'appliquent à tous les partenaires SSO configurés pour TAI SAML.
- Propriétés IdP - ces propriétés s'appliquent à tous les fournisseurs de services configurés pour TAI SAML. Pour attribuer des noms de propriétés uniques qui identifient chaque partenaire fournisseur d'identité, un idp_<id> est inscrit dans le nom de propriété et utilisé dans le but de regrouper toutes les propriétés associées à chaque partenaire IdP SSO.
- Propriétés du fournisseur de services - ces propriétés s'appliquent à un fournisseur de services et sont regroupées pour chaque partenaire fournisseur de services SSO dans un sso_<id> unique.
Le tableau ci-dessous décrit les propriétés personnalisées TAI SAML globales :
Nom de la propriété | Valeurs | Description |
---|---|---|
targetUrl | Vous pouvez spécifier une valeur d'URL. | Cette propriété est remplacée par sso_<id>.sp.targetUrl. Il s'agit de l'URL cible par défaut suite à la validation de SAMLResponse lorsqu'aucun RelayState n'a été reçu de l'IdP. |
useRelayStateForTarget | Vous pouvez indiquer l'une des valeurs suivantes :
|
This property is overridden by sso_<id>.sp. useRelayStateForTarget. Elle permet de préciser s'il convient d'utiliser RelayState en tant qu'URL cible. |
allowedClockSkew | Vous pouvez indiquer un nombre positif. La valeur par défaut est de trois minutes. | This property is overridden by sso_<id>.sp. allowedClockSkew. Elle permet d'indiquer le décalage d'horloge admis (en minutes) lors de la validation du jeton SAML. |
enforceTaiCookie | Vous pouvez indiquer l'une des valeurs suivantes :
|
This property is overridden by sso_<id>.sp. enforceTaiCookie. Elle permet de préciser si TAI SAML doit vérifier si le cookie LTPA est mis en correspondance avec un sujet créé pour le partenaire SSO. |
preventReplayAttackScope | Cette propriété ne comporte pas de valeur par défaut. Vous pouvez spécifier la valeur suivante :
|
Par défaut, le TAI SAML utilise un cache distribué pour stocker des ID d'assertion SAML destinés à empêcher toute attaque par réinsertion. Si vous affectez la valeur server à cette propriété, le TAI SAML utilise un cache local à la place. |
replayAttackTimeWindow | Vous pouvez spécifier une valeur entière. La valeur par défaut est de 30 minutes. | Cette propriété spécifie la durée, en minutes, au cours de laquelle la deuxième demande est rejetée si deux jetons SAML identiques sont reçus par le TAI. See also sso_<id>.sp. preventReplayAttack. |
retryOnceAfterTrustFailure | Vous pouvez indiquer l'une des valeurs suivantes :
|
Définissez cette propriété sur la valeur true pour que l'exécution recharge le magasin de relations de confiance lorsque la validation a échoué. Ceci permet de mettre à jour le fichier de clés avec de nouveaux certificats IdP lorsque le serveur d'applications est en cours d'exécution. |
redirectToIdPonServerSide | Vous pouvez indiquer l'une des valeurs suivantes :
|
This property is overridden by sso_<id>.sp. redirectToIdPonServerSide. Cette propriété permet d'indiquer que le TAI doit être réacheminé vers l'IdP proprement dit. Affectez la valeur false à cette propriété pour effectuer un réacheminement côté client. Affectez la valeur false à cette propriété si des fragments d'URL sont perdus lors du réacheminement et pour que le TAI effectue un réacheminement côté client. |
Le tableau ci-dessous décrit les propriétés personnalisées de TAI SAML IdP:
Nom de la propriété | Valeurs | Description |
---|---|---|
sso_<id>.idp_<id>.SingleSignOnUrl | Vous pouvez spécifier une valeur d'URL. | Cette propriété personnalisée indique l'URL du service SSO de l'IdP. |
sso_<id>.idp_<id>.allowedIssuerDN | Cette propriété personnalisée ne possède pas de valeur par défaut. | Cette propriété personnalisée spécifie le nom distinctif de sujet du certificat qui est autorisé à signer le jeton SAML envoyé par le fournisseur d'identité. Si le jeton SAML n'est pas signé par ce certificat, il est rejeté. Si cette propriété est spécifiée, la propriété personnalisée sso_<id>.sp.wantAssertionSigned doit avoir pour valeur true. Utilisez cette propriété lorsque votre fichier de clés certifiées contient non pas le certificat de signataire du fournisseur d'identité, mais l'émetteur du certificat de signataire. Cela vous empêchera d'autoriser tous les signataires ayant des certificats émis par le même émetteur. |
sso_<id>.idp_<id>.allowedIssuerName | Cette propriété personnalisée ne possède pas de valeur par défaut. | Cette propriété personnalisée spécifie la valeur de l'élément d'émetteur <saml:Issuer> dans le jeton SAML. Le jeton SAML reçu de l'IdP est rejeté si l'émetteur dans le jeton ne correspond pas à cette valeur. |
Le tableau ci-dessous décrit les propriétés personnalisées TAI SAML du fournisseur de services :
Nom de la propriété | Valeurs | Description |
---|---|---|
sso_<id>.sp.acsUrl | Cette propriété ne comporte pas de valeur par défaut. Vous pouvez indiquer l'une des valeurs suivantes :
|
Il s'agit de la seule propriété obligatoire pour chaque
sso_<id>. Elle spécifie l'URL de l'ACS ou de l'application métier. Si
vous avez besoin de plusieurs points d'entrée similaires pour vos flux de travaux SAML, vous pouvez
spécifier une URL avec un caractère générique à la fin de la chaîne à la place d'une chaîne de masque URI spécifique pour cette propriété. Par
exemple :
|
sso_<id>.sp.cookiegroup | Cette propriété ne comporte pas de valeur par défaut. | Cette propriété spécifie une balise à ajouter à un cookie ltpa pour le partenaire SAML SSO configuré. Lorsqu'une requête Web est reçue avec un cookie ltpa, ce cookie n'est valide que si la balise correspond à cette valeur. |
sso_<id>.sp.EntityID | Par défaut, la valeur sso_<id>.sp.aclUrl est attribuée à cette propriété. | Cette propriété est utilisée pour vérifier AudienceRestriction dans l'assertion SAML. |
sso_<id>.sp.targetUrl | Cette propriété ne comporte pas de valeur par défaut. | Cette propriété indique l'URL de l'application cible. Elle est utilisée lorsque la demande du client ne contient pas RelayState. |
sso_<id>.sp.useRelayStateForTarget | Vous pouvez indiquer l'une des valeurs suivantes :
|
Cette propriété indique s'il convient d'utiliser ou non la valeur RelayState reçue dans la demande du client en tant qu'URL de l'application cible. Si la valeur false est attribuée à cette propriété, la propriété sso_<id>.sp.targetUrl est utilisée en tant qu'URL de l'application cible. |
sso_<id>.sp.login.error.page | Cette propriété ne comporte pas de valeur par défaut. | Cette propriété spécifie la page d'erreur, la page de connexion IdP ou la classe de mappage
personnalisé vers laquelle une demande de client authentifiée est réacheminée. Si une classe de mappage personnalisée est spécifiée pour cette propriété personnalisée, le fichier .jar qui contient la classe personnalisée doit être placé dans le répertoire (WAS_HOME)/lib ou (WAS_HOME)/lib/ext. |
sso_<id>.sp.acsErrorPage | Cette propriété ne comporte pas de valeur par défaut. | Cette propriété est utilisée pour remplacer sso_<id>.sp.login.error. page. |
sso_<id>.sp.allowedClockSkew | Cette propriété ne comporte pas de valeur par défaut. | Cette propriété indique la durée, en minutes, ajoutée au délai d'expiration du jeton SAML envoyé par l'IdP. |
sso_<id>.sp.trustStore | Cette propriété ne comporte pas de valeur par défaut. | Cette propriété indique le fichier de clés certifiées pour la validation de la signature SAML. Elle indique le nom d'un fichier de clés géré. |
sso_<id>.sp.trustAnySigner | Vous pouvez indiquer l'une des valeurs suivantes :
|
Cette propriété indique si le certificat de signataire du jeton SAML est vérifié pour la validation des relations de confiance. Si la valeur true est attribuée à cette propriété, tout certificat de signataire est digne de confiance. |
sso_<id>.sp.keyStore | Cette propriété est requise pour la réception et le traitement des assertions EncryptedAssertions et n'a pas de valeur par défaut. | Cette propriété indique le nom du fichier de clés géré
qui contient la clé privée permettant de déchiffrer une assertion SAML chiffrée. Exemples :
|
sso_<id>.sp.keyName | Cette propriété est requise pour la réception et le traitement des assertions EncryptedAssertions et n'a pas de valeur par défaut. | Cette propriété spécifie le nom de clé pour le déchiffrement de l'assertion SAML. |
sso_<id>.sp.keyPassword | Cette propriété est requise pour la réception et le traitement des assertions EncryptedAssertions et n'a pas de valeur par défaut. | Cette propriété spécifie le mot de passe de clé pour le déchiffrement de l'assertion SAML. |
sso_<id>.sp.keyAlias | Cette propriété est requise pour la réception et le traitement des assertions EncryptedAssertions et n'a pas de valeur par défaut. | Cette propriété spécifie l'alias de clé pour le déchiffrement de l'assertion SAML. |
sso_<id>.sp.wantAssertionsSigned | Vous pouvez indiquer l'une des valeurs suivantes :
|
Si la valeur false est attribuée à cette propriété, il n'est pas obligatoire de signer l'assertion SAML et la signature n'est pas validée. |
sso_<id>.sp.preserveRequestState | Vous pouvez indiquer l'une des valeurs suivantes :
|
Lorsque le fournisseur de services réachemine la demande du client vers la connexion IdP, cette propriété indique si l'état du client doit être sauvegardé et restauré à l'issue de la demande du client. |
sso_<id>.sp.enforceTaiCookie | Vous pouvez indiquer l'une des valeurs suivantes :
|
Cette propriété permet de préciser si TAI SAML doit vérifier si le cookie LTPA est mis en correspondance avec un sujet créé pour le partenaire SSO. |
sso_<id>.sp.realmName | Il peut s'agir de toute valeur de chaîne. Par défaut, le nom de l'émetteur SAML est attribué à cette propriété. | Cette propriété spécifie un attribut SAML et est utilisé conjointement avec realmNameRange. La valeur de cet attribut est utilisée en tant que domaine du sujet. Si ce domaine n'existe pas dans la liste des domaines spécifiée par realmNameRange, le domaine est rejeté. |
sso_<id>.sp.realmNameRange | Cette propriété n'a pas de valeur par défaut. | Cette propriété spécifie une liste des noms de domaine admis, et est utilisée conjointement avec realmName. Reportez-vous à la description de sso_<id>.sp.realmName. |
sso_<id>.sp.retryOnceAfterTrustFailure | Vous pouvez indiquer l'une des valeurs suivantes :
|
Définissez cette propriété sur la valeur true pour que l'exécution recharge le magasin de relations de confiance lorsque la validation a échoué. Ceci permet de mettre à jour le fichier de clés avec de nouveaux certificats IdP lorsque le serveur d'applications est en cours d'exécution. |
sso_<id>.sp.principalName | Il peut s'agir de toute valeur de chaîne. Par défaut, l'ID de nom de sujet est attribué à cette propriété. | Cette propriété spécifie un attribut SAML. La valeur de cet attribut est utilisée en tant que principal du sujet. |
sso_<id>.sp.uniqueId | Il peut s'agir de toute valeur de chaîne. Par défaut, l'ID de nom de sujet est attribué à cette propriété. | Cette propriété spécifie un attribut SAML. La valeur de cet attribut est utilisée en tant qu'uniqueId du sujet. |
sso_<id>.sp.groupName | Cette propriété ne comporte pas de valeur par défaut. | Cette propriété spécifie un attribut SAML. La valeur de cet attribut est utilisée en tant que groupes dans le sujet. |
sso_<id>.sp.defaultRealm | Vous pouvez indiquer l'une des valeurs suivantes :
|
Cette propriété personnalisée indique si Issuer ou NameQualifier de l'assertion SAML est utilisé en tant que domaine par défaut. |
sso_<id>.sp.useRealm | Cette propriété ne comporte pas de valeur par défaut. | Cette propriété indique un nom de domaine et est utilisée pour remplacer le domaine par défaut. Elle remplace également la propriété realmName. |
sso_<id>.sp.idMap | Vous pouvez indiquer l'une des valeurs suivantes :
|
Cette propriété indique la manière dont le jeton SAML est mis en correspondance avec le sujet. |
sso_<id>.sp.groupMap | Vous pouvez indiquer l'une des valeurs suivantes :
|
Cette propriété est utilisée avec IDAssertion et indique la manière dont le jeton SAML est mis en correspondance avec les groupes. |
sso_<id>.sp.userMapImpl | Cette propriété ne comporte pas de valeur par défaut. | Cette propriété spécifie la classe de module de mappage d'utilisateur
personnalisé. Elle est utilisée pour mettre en correspondance un ID utilisateur dans le jeton SAML avec un autre
ID utilisateur qui existe dans le registre utilisateur local. La classe de mappage personnalisée doit implémenter l'interface com.ibm.wsspi.security.web.saml.UserMapping. Le fichier .jar contenant la classe personnalisée doit être placé dans le répertoire (WAS_HOME)/lib ou (WAS_HOME)/lib/ext. |
sso_<id>.sp.X509PATH | Cette propriété ne comporte pas de valeur par défaut. | Cette propriété spécifie le magasin de certificats utilisé pour les certificats intermédiaires utilisés dans le cadre de la validation de la signature SAML. |
sso_<id>.sp.CRLPATH | Cette propriété ne comporte pas de valeur par défaut. | Cette propriété spécifie le magasin de certificats utilisé pour la liste de révocation de certificat utilisée dans le cadre de la validation de la signature SAML. |
sso_<id>.sp.filter | Cette propriété ne comporte pas de valeur par défaut. | Chaque propriété est utilisée pour spécifier une condition comparée à la requête HTTP afin de déterminer si la requête HTTP est sélectionnée ou non pour un partenaire SSO Web SAML. Voir la section Propriété du filtre TAI SAML pour plus d'informations sur cette propriété. |
sso_<id>.sp.preventReplayAttack | Vous pouvez indiquer l'une des valeurs suivantes :
|
Cette propriété est utilisée pour indiquer si l'intercepteur de relations de confiance SAML doit empêcher l'envoi de deux jetons SAML identiques dans les demandes du client. Cette propriété est utilisée conjointement avec la propriété globale replayAttackTimeWindow. |
sso_<id>.sp.preventReplayAttackScope | Cette propriété ne comporte pas de valeur par défaut. Vous pouvez spécifier la valeur suivante :
|
Par défaut, le TAI SAML utilise un cache distribué pour stocker des ID d'assertion SAML destinés à empêcher toute attaque par réinsertion. Si vous affectez la valeur server à cette propriété, le TAI SAML utilise un cache local à la place. |
sso_<id>.sp.trustedAlias | Cette propriété ne comporte pas de valeur par défaut. | Si cette propriété est spécifiée, seule la clé spécifiée par cet alias est utilisée pour valider la signature dans l'assertion SAML. Si la signature de l'assertion SAML entrante de SAMLResponse ne contient pas l'élément KeyInfo, spécifiez cette propriété pour résoudre l'élément KeyInfo. |
sso_<id>.sp.redirectToIdPonServerSide | Vous pouvez indiquer l'une des valeurs suivantes :
|
Cette propriété permet d'indiquer que le TAI doit être réacheminé vers l'IdP proprement dit. Affectez la valeur false à cette propriété si des fragments d'URL sont perdus lors du réacheminement et pour que le TAI effectue un réacheminement côté client. |
Propriété du filtre TAI SAML
La propriété du filtre TAI SAML sp.filter est utilisée lorsqu'un client appelle directement une application de fournisseur de services protégée, sans authentification auprès de l'IdP. La propriété de filtre est généralement utilisée conjointement avec la propriété sp.login.error.page pour réacheminer une demande de client authentifiée vers l'adresse URL spécifiée par la propriété sp.login.error.page. Les propriétés sp.filter ne s'appliquent pas à une réponse SAML. L'URL de demande contenue dans une réponse SAML est évaluée par rapport à sp.acsURL.
- entrée requise - en règle générale, l'élément d'entrée spécifie un nom d'en-tête HTTP, mais l'URL de requête et l'adresse distante peuvent également être utilisées en tant qu'éléments particuliers
- opérateur - l'élément d'opérateur spécifie l'une des valeurs suivantes : ==, !=, %=, ^=, < et >
- valeur de comparaison - cet élément spécifie généralement une chaîne, mais les plages d'adresses IP sont également admises
Les conditions sont évaluées de gauche à droite, tel que spécifié par la valeur de comparaison. Si toutes les conditions de filtre spécifiées par un partenaire de fournisseur de services SSO sont satisfaites dans une requête HTTP, le partenaire de fournisseur de services SSO est sélectionné pour la requête HTTP.
L'élément d'entrée identifie une zone d'en-tête de demande HTTP à extraire de la requête, sa valeur étant ensuite comparée à celle spécifiée dans la propriété de filtre conformément à la spécification de l'opérateur. Si la zone d'en-tête identifiée par l'élément d'entrée est absente de la requête HTTP, la condition est traitée comme n'étant pas satisfaite. L'une des zones d'en-tête HTTP standard peut faire office d'élément d'entrée dans la condition de filtre. Voir la spécification HTTP pour obtenir la liste des en-têtes valides.
- URL de requête - la valeur de comparaison de cette entrée est comparée à l'adresse URL utilisée par l'application client pour formuler la requête
- adresse distante - la valeur de comparaison de cette entrée est comparée à l'adresse TCP/IP de l'application client qui envoie la demande HTTP
Exemples
sso_1.sp.filter=From==samluser@xyz.com
Dans ce cas, si une demande du client contient
une zone d'en-tête HTTP From avec une valeur samluser@xyz.com,
TAI SAML sélectionne le partenaire de fournisseur de services SSO de ce filtre
sso_1 pour traiter la demande du client.sso_2.sp.filter=request-url%=ivtlanding.jsp
Dans ce cas,
si l'URL de l'application cible appelée par le client contient la chaîne ivtlanding.jsp,
le TAI SAML sélectionne le partenaire SSO de ce filtre sso_2 pour le traitement de la demande
du client.sso_3.sp.filter=applicationNames==DefaultApplication
Dans ce cas,
si le nom de l'application cible appelée par l'application client est DefaultApplication,
le TAI SAML sélectionne le partenaire SSO de ce filtre sso_3 pour le traitement de la demande
du client.Opérateur | Condition | Exemple |
---|---|---|
== | Cet opérateur indique une correspondance exacte. L'élément d'entrée doit être égal à la valeur de comparaison. | From==jones@my.company.com |
%= | Cet opérateur indique une correspondance partielle. L'élément d'entrée contient la valeur de comparaison. | user-agent%=IE 6request-url%=company.com/urlApp1 |
^= | L'élément d'entrée l'une des valeurs de comparaison. C'est le seul opérateur qui peut être combiné avec l'opérateur |. | request-url^=urlApp1|urlApp2| urlApp3 |
!= | L'élément d'entrée ne contient pas la valeur de comparaison. | request-url!=test105 |
> | L'élément d'entrée est supérieur à la valeur de comparaison. | remote-address>192.168.255.130 |
< | L'élément d'entrée est inférieur à la valeur de comparaison. | remote-address<192.168.255.135 |
; | Opérateur logique AND | request-url!=test105;From==jones@my.company.com5 |