Paramètres de cryptographie dans OAM
Cet article traite des différentes propriétés de configuration cryptographique dans OAM qui sont utilisées pour affecter les échanges SSO de fédération, notamment :
-
Algorithme de hachage utilisé pour les signatures
-
SHA-1
-
SHA-256
-
Quels messages SAML sortants sont signés ?
-
Quels messages SAML entrants doivent être signés ?
-
Inclusion ou non du certificat de signature X.509 dans le message XML signé sortant
-
Chiffrement ou non des messages SAML 2.0 :
-
Assertion
-
NameID
-
Attribut
Algorithmes de hachage
OAM prend en charge la consommation et l'émission de messages SAML signés avec
-
Algorithme de hachage SHA-1
-
Ou l'algorithme de hachage SHA-256
Par défaut, OAM utilise SHA-1 lors de la signature des messages sortants.
Les messages sont signés différemment, en fonction de la liaison utilisée :
-
Signatures numériques XML lorsque des liaisons HTTP-POST ou d'artefact sont utilisées
-
Interroger les signatures lorsque la liaison HTTP-Redirect est utilisée
SHA-1
Voici un exemple de message signé AuthnRequest envoyé via la liaison HTTP-Redirect :
https://acme.com/idp/saml20?SAMLRequest=hVPLbtswEPwVgT1LpB6tY8JyoNZ1q9ZujVgJ3N4Yio5ZSKTMpaz470v5ESQB4gA8LWZ2ZnaXo%2BvHuvJ2woDUKkVhQJAnFNelVA8pui2m%2FhXywDJVskorkaK9AHQ9HgGrq4Zmrd2oG7FtBVjPNVJAS5COuLG2oRh3XRd0ca%2B%2FruIoOPN0IOU8aba1MxeDtpXXKj1AeoOxUq7R%2BMX0py%2Fko5iQiKsWd3rj%2FAzyfPN%2FnJd88lCV5Lv37URBuFrGzWTVVaWRgAgL6sq3X0xgln3NaxpBcLjo%2BrLzzH%2BDw%3D%3D&RelayState=id-AkgTE5PMRAZTaKRcZHT-2rIse-oPhCxyI00Xycbf&SigAlg=http%3A%2F%2Fwww.w3.org%2F2000%2F09%2Fxmldsig%23rsa-sha1&Signature=rjZFsFuaFKv77JbspdDwT2wGV366iL3zvWc%2B1aybu%2FW%2BpFwLOfTJBtVsKfwJre1nGCU5SEvFD%2FBBURkxOG1KhR3k%2FrOw%2Bj7g7RlHfSaHKaAO3p6aAGQYPCpz%2Fd0%2BKArDAL%2FDNoH46G6Pnf7VWSb6a2COUiTV6118KaPbex
Voici un exemple d'assertion SAML 2.0 envoyée via la liaison HTTP-POST :
<samlp:Response ...<samlp:Response ...>
<saml:Issuer Format="urn:oasis:names:tc:SAML:2.0:nameid-format:entity">...
</saml:Issuer>
<samlp:Status><samlp:StatusCode
Value="urn:oasis:names:tc:SAML:2.0:status:Success"/></samlp:Status> <saml:Assertion ID="id-BgLUimKUWYyS3JQbf2geeP9EwS-eGKxOPTuPvxgJ" ...> <saml:Issuer Format="urn:oasis:names:tc:SAML:2.0:nameid-format:entity">...
</saml:Issuer>
<dsig:Signature>
<dsig:SignedInfo>
<dsig:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-excc14n#"/>
<dsig:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsasha1"/>
<dsig:Reference URI="#id-BgLUimKUWYyS3JQbf2geeP9EwS-eGKxOPTuPvxgJ">
<dsig:Transforms>
<dsig:Transform Algorithm="http://www.w3.org/2000/09/xmldsig#envelopedsignature"/>
<dsig:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> </dsig:Transforms>
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
<dsig:DigestValue>uS85cIFf4z9KcHH/z60fNRPLoyo=</dsig:DigestValue>
</dsig:Reference>
</dsig:SignedInfo>
<dsig:SignatureValue>NiTyPtOEjyG...SpVjbhKxY=</dsig:SignatureValue>
</dsig:Signature>
<saml:Subject>
...
</saml:Subject> <saml:Conditions ...>
...
</saml:Conditions> <saml:AuthnStatement ...>
...
</saml:AuthnStatement>
</saml:Assertion> </samlp:Response>
SHA-256
Voici un exemple de message signé AuthnRequest envoyé via la liaison HTTP-Redirect :
https://acme.com/idp/saml20?SAMLRequest=hVNdb9owFP0rkfec%2BCbAVixClY2hIdGWDui6vhnbFEuOndoOKfv1c%2Fio2kqlkp%2BuzrnnnHuvB5fPpYq2wjppdI7SBFAkNDNc6sccLRfj%2BAJFzlPNqTJa5GgnHLocDhwtVUWK2m%2F0b%2FFUC%2Bej0Eg7wp0MxI33FcG4%2F%2FFLDswb9bFN2dNp61G584V4vJ3o4PJUi7MYTXWaRd0vtKoP%2BAolHYsdTU71nHbJQzgEo8JbULASlTImGmJN%2B6%2FT5eC44lr3A7%2F20G6HAzZC9lo7GxJfXng7aVEGq9h4ZD8dLv0PCNNGPvpLMOQIYNLVv9AX4lebrZ69B1MpoZJdnuUxtpkrRelayState=id-BiQreMi9cMY3oFI9PKMNKtuOjpuFS2PrW4R8KKvd&SigAlg=http%3A%2F%2Fwww.w3.org%2F2001%2F04%2Fxmldsig-more%23rsa-sha256&Signature=PvyMUD%2FKXnCc0drlN1pvoK171znJkajEHLgtzE4I7YFQIvP4wp3M%2FV7y08x0Qkv0jwo9K4VBG%2BQUBFtXr41ZDp%2BHOb7GlmaY973n7X2UDlbUbVlrJX%2FqS1GyyNY6MSMcO5K0J7VJcQXf8CvGEcVHr%2FZhPjihnAO2vi%2Bej3fbfgo%3D
Voici un exemple d'assertion SAML 2.0 envoyée via la liaison HTTP-POST :
<samlp:Response ...<samlp:Response ...>
<saml:Issuer Format="urn:oasis:names:tc:SAML:2.0:nameid-format:entity">...
</saml:Issuer>
<samlp:Status><samlp:StatusCode
Value="urn:oasis:names:tc:SAML:2.0:status:Success"/></samlp:Status> <saml:Assertion ID="id-5B4KZ-PeUzikxtC-Cr9g6uFQ-muwj3ZmC4PUW4wT" ...> <saml:Issuer Format="urn:oasis:names:tc:SAML:2.0:nameid-format:entity">...
</saml:Issuer>
<dsig:Signature>
<dsig:SignedInfo>
<dsig:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-excc14n#"/>
<dsig:SignatureMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#rsasha256"/>
<dsig:Reference URI="#id-5B4KZ-PeUzikxtC-Cr9g6uFQ-muwj3ZmC4PUW4wT">
<dsig:Transforms>
<dsig:Transform Algorithm="http://www.w3.org/2000/09/xmldsig#envelopedsignature"/>
<dsig:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
</dsig:Transforms>
<dsig:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
<dsig:DigestValue>Ppx/...L9ooHtsvgxvI=</dsig:DigestValue>
</dsig:Reference>
</dsig:SignedInfo>
<dsig:SignatureValue>G6yppQXy...SzHz2oa+zA=</dsig:SignatureValue>
</dsig:Signature>
<saml:Subject>
...
</saml:Subject> <saml:Conditions ...>
...
</saml:Conditions> <saml:AuthnStatement ...>
...
</saml:AuthnStatement>
</saml:Assertion> </samlp:Response>
Commande WLST
OAM peut être configuré pour utiliser SHA-1 ou SHA-256 dans les signatures SAML :
-
Au niveau Partenaire.
-
Au niveau d'un profil de partenaire, où tous les partenaires référençant ce profil sont affectés, sauf s'ils ont été configurés au niveau du partenaire pour les signatures SHA-1/SHA-256.
La commande OAM WLST configureFedDigitalSignature()
permet de configurer la façon dont OAM doit calculer une signature :
-
Entrez dans l'environnement WLST en exécutant :
$IAM_ORACLE_HOME/common/bin/wlst.sh
. -
Connectez-vous au serveur d'administration WLS :
connect()
. -
Accédez au branchement d'exécution de domaine :
domainRuntime()
. -
Exécutez la commande
configureFedDigitalSignature()
:configureFedDigitalSignature(partner="", partnerProfile="", partnerType="",default="false", algorithm="SHA-256", displayOnly="false", delete="false")
. -
le partenaire est utilisé pour configurer un partenaire spécifique
-
partnerProfile
permet de configurer un profil de partenaire spécifique. -
partnerType
indique le type de profil partenaire/partenaire (IDP ou SP) -
algorithme indiquant l'algorithme de hachage à utiliser (SHA-1 ou SHA-256)
-
displayOnly
indique si la commande doit afficher le paramètre sur ce profil de partenaire/partenaire au lieu de le définir. Si elle est définie sur true, cette commande ne modifie pas la configuration (true ou false). -
delete indique si la commande doit supprimer le paramètre sur ce profil de partenaire/partenaire au lieu de le définir. Si la valeur est True, cette commande supprime la configuration et la configuration parent (profil partenaire ou global) est utilisée (True ou False).
- Quittez l'environnement WLST :
exit()
Vous pouvez définir les paramètres suivants :
Par exemple :
configureFedDigitalSignature(partner="AcmeIdP", partnerType="idp", algorithm="SHA-256")
Signature des messages sortants
Configuration OOTB
Voici les paramètres booléens OOTB qui indiquent quand OAM doit signer les messages SAML sortants (si la valeur est True, OAM signe les messages sortants) :
-
Niveau global
- saml20sendsignedauthnrequest : SAML 2.0 AuthnRequest (vrai)
-
Profil de partenaire SAML 1.1 IdP
- sendsignedrequestsoap : demande SAML 1.1 via la liaison Artifact/SOAP (True)
-
Profil de partenaire de fournisseur de services SAML 1.1
-
sendsignedassertion : Assertion SAML 1.1 (true)
-
sendsignedresponseassertionpost : réponse SAML 1.1 contenant une assertion sur la liaison HTTP-POST (false)
-
sendsignedresponseassertionsoap : réponse SAML 1.1 contenant une assertion sur la liaison Artifact/SOAP (false)
-
sendsignedresponsesoap : réponse SAML 1.1 ne contenant pas d'assertion sur la liaison Artifact/SOAP (True)
-
-
Profil de partenaire SAML 2.0 IdP
-
sendsignedrequestpost : Demande SAML 2.0 sur la liaison HTTP-POST (True)
-
sendsignedrequestquery : Demande SAML 2.0 sur la liaison HTTP-Redirect (true)
-
sendsignedrequestsoap : Demande SAML 2.0 sur la liaison Artifact/SOAP (True)
-
sendsignedresponsepost : La réponse SAML 2.0 ne contient aucune assertion sur la liaison HTTP-POST (True).
-
sendsignedresponsequery : La réponse SAML 2.0 ne contient aucune assertion sur la liaison HTTP-Redirect (True).
-
sendsignedresponsesoap : La réponse SAML 2.0 ne contient pas d'assertion sur la liaison Artifact/SOAP (True).
-
-
Profil de partenaire de fournisseur de services SAML 2.0
-
sendsignedassertion : Assertion SAML 2.0 (true)
-
sendsignedrequestpost : Demande SAML 2.0 sur la liaison HTTP-POST (True)
-
sendsignedrequestquery : Demande SAML 2.0 sur la liaison HTTP-Redirect (true)
-
sendsignedrequestsoap : Demande SAML 2.0 sur la liaison Artifact/SOAP (True)
-
sendsignedresponseassertionpost : réponse SAML 2.0 contenant une assertion sur la liaison HTTP-POST (false)
-
sendsignedresponseassertionsoap : réponse SAML 2.0 contenant une assertion sur la liaison Artifact/SOAP (false)
-
sendsignedresponsepost : La réponse SAML 2.0 ne contient aucune assertion sur la liaison HTTP-POST (True).
-
sendsignedresponsequery : La réponse SAML 2.0 ne contient aucune assertion sur la liaison HTTP-Redirect (True).
-
sendsignedresponsesoap : La réponse SAML 2.0 ne contient pas d'assertion sur la liaison Artifact/SOAP (True).
-
Configuration
Supposons que vous êtes déjà dans l'environnement WLST et connecté à l'aide des éléments suivants :
-
Entrez dans l'environnement WLST en exécutant :
$IAM_ORACLE_HOME/common/bin/wlst.sh
. -
Connectez-vous au serveur d'administration WLS :
connect()
. -
Accédez au branchement d'exécution de domaine :
domainRuntime()
.
SAML 2.0 AuthnRequest
Pour configurer OAM afin qu'il signe un SAML 2.0 AuthnRequest sortant, exécutez l'une des commandes suivantes :
-
Pour effectuer la configuration au niveau global, exécutez :
putBooleanProperty("/spglobal/saml20sendsignedauthnrequest", "true/false")
-
Définissez la valeur sur True pour qu'OAM signe le AuthnRequest sortant.
-
Exemple :
putBooleanProperty("/spglobal/saml20sendsignedauthnrequest", "true")
-
-
Pour effectuer la configuration au niveau d'un profil de partenaire SAML 2.0 IdP, exécutez :
putBooleanProperty("/fedpartnerprofiles/PARTNER_PROFILE/sendsignedauthnrequest", "true/false")
-
Remplacez PARTNER_PROFILE par un nom de profil de partenaire SAML 2.0 IdP.
-
Définissez la valeur sur True pour qu'OAM signe le AuthnRequest sortant.
-
Par exemple :
putBooleanProperty("/fedpartnerprofiles/saml20-idp-partner-profile/sendsignedauthnrequest", "true")
-
-
Pour effectuer la configuration au niveau du partenaire SAML 2.0 IdP, exécutez la commande suivante :
updatePartnerProperty("PARTNER", "idp", "sendsignedauthnrequest", "true/false","boolean")
-
Remplacez PARTNER par un nom de partenaire SAML 2.0 IdP.
-
Définissez la valeur sur True pour qu'OAM signe le AuthnRequest sortant.
-
Exemple :
updatePartnerProperty("AcmeIdP", "idp", "sendsignedauthnrequest", "false","boolean")
Autres paramètres
Pour configurer les propriétés définies dans les profils de partenaire SP/IdP ci-dessus, exécutez l'une des commandes suivantes :
-
Pour effectuer la configuration au niveau d'un profil de partenaire, exécutez :
putBooleanProperty("/fedpartnerprofiles/PARTNER_PROFILE /PROPERTY_NAME", "true/false")
-
Remplacez
PARTNER_PROFILE
par un nom de profil de partenaire. -
Remplacez
PROPERTY_NAME
par le nom de la propriété à définir. -
Définissez la valeur sur True ou False. Exemple :
putBooleanProperty("/fedpartnerprofiles/saml20-idp-partner-profile /sendsignedrequestquery", "true")
-
-
Pour effectuer la configuration au niveau du partenaire, exécutez :
updatePartnerProperty("PARTNER", "PARTNER_TYPE", "PROPERTY_NAME","true/false", "boolean")
- Remplacez
PARTNER
par un nom de partenaire. - Remplacez
PARTNER_TYPE
par le type du partenaire spécifié (idp ou sp). - Remplacez
PROPERTY_NAME
par le nom de la propriété à définir. - Définissez la valeur sur True ou False Par exemple :
updatePartnerProperty("AcmeSP", "sp", "sendsignedrequestquery", "true","boolean")
- Remplacez
Métadonnées
La modification de la propriété saml20sendsignedauthnrequest
au niveau global modifie les métadonnées SAML 2.0 générées par OAM, comme suit :
L'élément AuthnRequestsSignedattribute
dans l'élément SPSSODescriptor
est défini en fonction de saml20sendsignedauthnrequest.
Un exemple de métadonnées SAML 2.0 présente ces deux attributs :
<md:EntityDescriptor ...>
<dsig:Signature>
...
</dsig:Signature> <md:IDPSSODescriptor WantAuthnRequestsSigned="false" ...>
...
</md:IDPSSODescriptor>
<md:SPSSODescriptor AuthnRequestsSigned="true" WantAssertionsSigned="true"
...>
</md:SPSSODescriptor> </md:EntityDescriptor>
Messages à signer
Configuration OOTB
Voici les paramètres booléens OOTB qui régissent le moment où OAM doit exiger la signature des messages SAML entrants (si la valeur est True, OAM requiert la signature du message entrant) :
-
Niveau global
-
saml20requiresignedauthnrequest : SAML 2.0 AuthnRequest (faux)
-
saml11requiresignedassertion : assertion SAML 1.1 contenue dans un message de réponse (true)
-
saml20requiresignedassertion : assertion SAML 2.0 contenue dans un message de réponse (true)
-
-
Profil de partenaire SAML 1.1 IdP
-
requiresignedresponseassertionpost : réponse SAML 1.1 via la liaison HTTP-POST (false)
-
requiresignedresponseassertionsoap : réponse SAML 1.1 via la liaison Artifact/SOAP (false)
-
-
Profil de partenaire de fournisseur de services SAML 1.1
- requiresignedrequestsoap : demande SAML 1.1 via la liaison Artifact/SOAP (false)
-
Profil de partenaire SAML 2.0 IdP
-
requiresignedrequestpost : demande SAML 2.0 sur la liaison HTTP-POST (false)
-
requiresignedrequestquery : Demande SAML 2.0 sur la liaison HTTP-Redirect (false)
-
requiresignedrequestsoap : Demande SAML 2.0 sur la liaison Artifact/SOAP (faux)
-
requiresignedresponseassertionpost : réponse SAML 2.0 contenant une assertion sur la liaison HTTP-POST (false)
-
requiresignedresponseassertionsoap : réponse SAML 2.0 contenant une assertion sur la liaison Artifact/SOAP (faux)
-
requiresignedresponsepost : Réponse SAML 2.0 ne contenant aucune assertion sur la liaison HTTP-POST (false)
-
requiresignedresponsequery : La réponse SAML 2.0 ne contient pas d'assertion sur la liaison HTTP-Redirect (false)
-
requiresignedresponsesoap : réponse SAML 2.0 ne contenant pas d'assertion sur la liaison Artifact/SOAP (faux)
-
-
Profil de partenaire de fournisseur de services SAML 2.0
-
requiresignedrequestpost : demande SAML 2.0 sur la liaison HTTP-POST (false)
-
requiresignedrequestquery : Demande SAML 2.0 sur la liaison HTTP-Redirect (false)
-
requiresignedrequestsoap : Demande SAML 2.0 sur la liaison Artifact/SOAP (faux)
-
requiresignedresponsepost : Réponse SAML 2.0 ne contenant aucune assertion sur la liaison HTTP-POST (false)
-
requiresignedresponsequery : La réponse SAML 2.0 ne contient pas d'assertion sur la liaison HTTP-Redirect (false)
-
requiresignedresponsesoap : réponse SAML 2.0 ne contenant pas d'assertion sur la liaison Artifact/SOAP (faux)
-
Remarque importante : si un message entrant est signé, OAM le vérifie et renvoie une erreur en cas d'échec de la validation de la signature, même si OAM ne requiert pas la signature de ce type de message.
Configuration
Supposons que vous êtes déjà dans l'environnement WLST et connecté à l'aide des éléments suivants :
-
Entrez dans l'environnement WLST en exécutant :
$IAM_ORACLE_HOME/common/bin/wlst.sh
. -
Connectez-vous au serveur d'administration WLS :
connect()
. -
Accédez au branchement d'exécution de domaine :
domainRuntime()
.
SAML 2.0 AuthnRequest
Pour configurer OAM de manière à exiger ou non la signature des messages AuthnRequest entrants, exécutez l'une des commandes suivantes :
-
Pour effectuer la configuration au niveau global, exécutez :
putBooleanProperty("/idpglobal/saml20requiresignedauthnrequest", "true/false")
- Définissez la valeur sur True pour qu'OAM exige la signature de l'entrée AuthnRequest
Par exemple :putBooleanProperty("/idpglobal/saml20requiresignedauthnrequest", "true")
- Définissez la valeur sur True pour qu'OAM exige la signature de l'entrée AuthnRequest
-
Pour effectuer la configuration au niveau d'un profil de partenaire de fournisseur de services SAML 2.0, exécutez la commande suivante :
putBooleanProperty("/fedpartnerprofiles/PARTNER_PROFILE /requiresignedauthnrequest", "true/false")
- Remplacez PARTNER_PROFILE par un nom de profil de partenaire de fournisseur de services SAML 2.0.
- Définissez la valeur sur True pour qu'OAM exige la signature de AuthnRequest entrant. Exemple :
putBooleanProperty("/fedpartnerprofiles/saml20-sp-partner-profile /requiresignedauthnrequest", "true")
-
Pour effectuer la configuration au niveau d'un partenaire SP SAML 2.0, exécutez la commande suivante :
updatePartnerProperty("PARTNER", "sp", "requiresignedauthnrequest","true/false", "boolean")
- Remplacer le partenaire par un nom de partenaire SP SAML 2.0
- Définissez la valeur sur True pour qu'OAM exige la signature de AuthnRequest entrant. Exemple :
updatePartnerProperty("AcmeSP", "sp", "requiresignedauthnrequest", "false","boolean")
Assertion SAML 1.1 contenue dans un message de réponse
Pour configurer OAM de manière à exiger ou non la signature des assertions SAML 1.1 entrantes, exécutez l'une des commandes suivantes :
- Pour effectuer la configuration au niveau global, exécutez :
putBooleanProperty("/spglobal/saml11requiresignedassertion", "true/false")
- Définissez la valeur sur True pour qu'OAM exige la signature des assertions SAML 1.1 entrantes. Exemple :
putBooleanProperty("/spglobal/saml11requiresignedassertion", "true")
- Définissez la valeur sur True pour qu'OAM exige la signature des assertions SAML 1.1 entrantes. Exemple :
- Pour effectuer la configuration au niveau d'un profil de partenaire SAML 1.1 IdP, exécutez :
putBooleanProperty("/fedpartnerprofiles/PARTNER_PROFILE/requiresignedassertion", "true/false")
- Remplacez PARTNER_PROFILE par un nom de profil de partenaire SAML 1.1 IdP.
- Définissez la valeur sur True pour qu'OAM exige la signature des assertions SAML 1.1 entrantes. Exemple :
putBooleanProperty("/fedpartnerprofiles/saml11-idp-partner-profile /requiresignedassertion", "true")
- Pour effectuer la configuration au niveau Partenaire SAML 1.1 IdP, exécutez :
updatePartnerProperty("PARTNER", "idp", "requiresignedassertion", "true/false","boolean")
- Remplacer PARTNER par un nom de partenaire SAML 1.1 IdP
- Définissez la valeur sur True pour qu'OAM exige la signature des assertions SAML 1.1 entrantes. Exemple :
updatePartnerProperty("AcmeSP", "sp", "requiresignedassertion", "false","boolean")
Assertion SAML 2.0 contenue dans un message de réponse
Pour configurer OAM de manière à exiger ou non la signature des assertions SAML 2.0 entrantes, exécutez l'une des commandes suivantes :
- Pour effectuer la configuration au niveau global, exécutez :
putBooleanProperty("/spglobal/saml20requiresignedassertion", "true/false")
- Définissez la valeur sur True pour qu'OAM exige la signature des assertions SAML 2.0 entrantes. Exemple :
putBooleanProperty("/spglobal/saml20requiresignedassertion", "true")
- Pour effectuer la configuration au niveau d'un profil de partenaire SAML 2.0 IdP, exécutez :
putBooleanProperty("/fedpartnerprofiles/PARTNER_PROFILE/requiresignedassertion", "true/false")
- Remplacez
PARTNER_PROFILE
par un nom de profil de partenaire SAML 2.0 IdP. - Définissez la valeur sur True pour qu'OAM exige la signature des assertions SAML 2.0 entrantes. Exemple :
putBooleanProperty("/fedpartnerprofiles/saml20-idp-partner-profile /requiresignedassertion", "true")
- Pour effectuer la configuration au niveau du partenaire SAML 2.0 IdP, exécutez la commande suivante :
updatePartnerProperty("PARTNER", "idp", "requiresignedassertion", "true/false","boolean")
- Remplacez
PARTNER
par un nom de partenaire SAML 2.0 IdP. - Définissez la valeur sur True pour qu'OAM exige la signature des assertions SAML 2.0 entrantes
Exemple :updatePartnerProperty("AcmeSP", "sp", "requiresignedassertion", "false","boolean")
Autres paramètres
Pour configurer les propriétés définies dans les profils de partenaire SP/IdP ci-dessus, exécutez l'une des commandes suivantes :
- Pour effectuer la configuration au niveau d'un profil de partenaire, exécutez :
putBooleanProperty("/fedpartnerprofiles/PARTNER_PROFILE /PROPERTY_NAME", "true/false")
- Remplacez
PARTNER_PROFILE
par un nom de profil de partenaire. - Remplacez
PROPERTY_NAME
par le nom de la propriété à définir. - Définissez la valeur sur True ou False Par exemple :
putBooleanProperty("/fedpartnerprofiles/saml20-idp-partner-profile /requiresignedrequestquery", "true")
- Remplacez
- Pour effectuer la configuration au niveau du partenaire, exécutez :
updatePartnerProperty("PARTNER", "PARTNER_TYPE", "PROPERTY_NAME","true/false", "boolean")
- Remplacez
PARTNER
par un nom de partenaire. - Remplacez
PARTNER_TYPE
par le type du partenaire spécifié (idp ou sp). - Remplacez
PROPERTY_NAME
par le nom de la propriété à définir. - Définissez la valeur sur True ou False Par exemple :
updatePartnerProperty("AcmeSP", "sp", "requiresignedrequestquery", "true","boolean")
- Remplacez
Métadonnées
La modification des propriétés saml20requiresignedauthnrequest ou saml20requiresignedassertion au niveau global modifie les métadonnées SAML 2.0 générées par OAM, comme suit :
-
L'attribut
WantAuthnRequestsSigned
de l'élémentIDPSSODescriptor
est défini en fonction de saml20requiresignedauthnrequest. -
L'attribut
WantAssertionsSigned
de l'élémentSPSSODescriptor
est défini en fonction de saml20requiresignedassertion.
Un exemple de métadonnées SAML 2.0 présente ces deux attributs :
<md:EntityDescriptor ...>
<dsig:Signature>
...
</dsig:Signature>
<md:IDPSSODescriptor WantAuthnRequestsSigned="false" ...>
...
</md:IDPSSODescriptor>
<md:SPSSODescriptor AuthnRequestsSigned="true" WantAssertionsSigned="true"
...>
</md:SPSSODescriptor> </md:EntityDescriptor>
X.509 Certificat dans le message
OAM peut être configuré pour envoyer le certificat de signature X.509 dans le message SAML XML sortant envoyé via les liaisons HTTP-POST ou SOAP.
La propriété booléenne includecertinsignature
indique si le certificat est ajouté au message.
Pour configurer OAM afin qu'il envoie le certificat de signature X.509 dans le message sortant, exécutez l'une des commandes suivantes afin de définir la propriété booléenne includecertinsignature
:
- Pour effectuer la configuration au niveau d'un profil de partenaire, exécutez :
putBooleanProperty("/fedpartnerprofiles/PARTNER_PROFILE/includecertinsignature", "true/false")
- Remplacez
PARTNER_PROFILE
par un nom de profil de partenaire. - Définissez la valeur sur True ou False Par exemple :
putBooleanProperty("/fedpartnerprofiles/saml20-sp-partner-profile /includecertinsignature", "true")
- Remplacez
- Pour effectuer la configuration au niveau du partenaire, exécutez :
updatePartnerProperty("PARTNER", "PARTNER_TYPE", "includecertinsignature","true/false", "boolean")
- Remplacez
PARTNER
par un nom de partenaire. - Remplacez
PARTNER_TYPE
par le type du partenaire spécifié (idp ou sp). - Définissez la valeur sur True ou False Par exemple :
updatePartnerProperty("AcmeSP", "sp", "includecertinsignature", "true","boolean")
- Remplacez
Chiffrement SAML 2.0
Le protocole SAML 2.0 définit un moyen de crypter diverses données dans les messages :
-
Assertions
-
NameIDs
-
Attributs
OAM permet à un administrateur d'indiquer les types de données à crypter.
Configuration OOTB
Voici les paramètres booléens OOTB qui indiquent quand OAM doit crypter les messages SAML sortants (si la valeur est True, OAM crypte les données sortantes) :
-
Profil de partenaire SAML 2.0 IdP
- sendencryptednameid : indique si NameID contenu dans
LogoutRequest
messagesshould
doit être chiffré (faux)
- sendencryptednameid : indique si NameID contenu dans
-
Profil de partenaire de fournisseur de services SAML 2.0
-
sendencryptedattribute : indique si chaque attribut contenu dans un attribut SAML
Assertionshould
doit être crypté (faux) -
sendencryptednameid : indique si NameID contenu dans
LogoutRequest
,Assertionmessages
doit être chiffré (faux)
-
Lors de la création d'un partenaire SP, la configuration de ce partenaire indique que IdP ne doit pas crypter l'assertion :
- sendencryptedassertion sur l'entrée de partenaire : indique si les assertions doivent être cryptées (faux)
Assertion cryptée
Pour configurer IdP afin de crypter l'assertion sortante pour un partenaire de fournisseur de services via la console d'administration OAM, procédez comme suit :
- Accédez à la console d'administration OAM :
http(s)://oam-admin-host:oam-adminport/oamconsole
. - Accédez à Fédération des identités, Administration des fournisseurs d'identités.
- Ouvrez le partenaire SP.
- Dans la section Avancé, cochez la case Crypter l'assertion.
- Cliquez sur Enregistrer.
Description de l'image Access_Management.jpg
Pour configurer le partenaire SP via WLST, procédez comme suit :
- Entrez dans l'environnement WLST en exécutant :
$IAM_ORACLE_HOME/common/bin/wlst.sh
. - Connectez-vous au serveur d'administration WLS :
connect()
. - Accédez au branchement d'exécution de domaine :
domainRuntime()
. - Exécutez la commande
updatePartnerProperty()
:updatePartnerProperty("PARTNER", "sp", "sendencryptedassertion", "true/false","boolean")
- Remplacez PARTNER par un nom de partenaire.
- Définissez la valeur sur True ou False.
- Par exemple :
updatePartnerProperty("AcmeSP", "sp", "sendencryptedassertion", "true","boolean")
- Quittez l'environnement WLST :
exit()
.
ID de nom/attributs cryptés
Pour configurer les propriétés, procédez comme suit :
- Entrez dans l'environnement WLST en exécutant :
$IAM_ORACLE_HOME/common/bin/wlst.sh
. - Connectez-vous au serveur d'administration WLS :
connect()
. - Accédez au branchement d'exécution de domaine :
domainRuntime()
. - Exécutez l'une des commandes suivantes :
- Pour effectuer la configuration au niveau d'un profil de partenaire, exécutez :
putBooleanProperty("/fedpartnerprofiles/PARTNER_PROFILE/PROPERTY_NAME", "true/false")
- Remplacez
PARTNER_PROFILE
par un nom de profil de partenaire. - Remplacez
PROPERTY_NAME
par le nom de la propriété à définir. - Définissez la valeur sur True ou False.
- Par exemple :
putBooleanProperty("/fedpartnerprofiles/saml20-sp-partner-profile/sendencryptedattribute", "true")
- Remplacez
- Pour effectuer la configuration au niveau du partenaire, exécutez :
updatePartnerProperty("PARTNER", "PARTNER_TYPE", "PROPERTY_NAME","true/false", "boolean")
- Remplacez
PARTNER
par un nom de partenaire. - Remplacez
PARTNER_TYPE
par le type du partenaire spécifié (idp ou sp). - Remplacez
PROPERTY_NAME
par le nom de la propriété à définir. - Définissez la valeur sur True ou False.
- Par exemple :
updatePartnerProperty("AcmeSP", "sp", "sendencryptedattribute", "true","boolean")
- Remplacez
- Pour effectuer la configuration au niveau d'un profil de partenaire, exécutez :
- Quittez l'environnement WLST :
exit()
Algorithme de cryptage
L'algorithme de cryptage peut être défini au niveau du partenaire ou du profil du partenaire, en définissant la propriété de chaîne defaultencryptionmethod
sur l'une des valeurs suivantes :
-
http://www.w3.org/2001/04/xmlenc#aes128-cbc pour CBC AES-128
-
http://www.w3.org/2001/04/xmlenc#aes192-cbc pour CBC AES-192
-
http://www.w3.org/2001/04/xmlenc#aes256-cbc pour CBC AES-256
-
http://www.w3.org/2001/04/xmlenc#tripledes-cbc pour CBC 3DES
Par défaut, cette propriété est définie sur http://www.w3.org/2001/04/xmlenc#aes128-cbc (AES-128 CBC).
Pour configurer la propriété defaultencryptionmethod
, procédez comme suit :
-
Entrez dans l'environnement WLST en exécutant :
$IAM_ORACLE_HOME/common/bin/wlst.sh
. -
Connectez-vous au serveur d'administration WLS :
connect()
. -
Accédez au branchement d'exécution de domaine :
domainRuntime()
. -
Exécutez l'une des commandes suivantes :
-
Pour effectuer la configuration au niveau d'un profil de partenaire, exécutez :
putStringProperty("/fedpartnerprofiles/PARTNER_PROFILE/defaultencryptionmethod", "ALGORITHM")
-
Remplacez
PARTNER_PROFILE
par un nom de profil de partenaire. -
Remplacez
ALGORITHM
par l'une des valeurs d'algorithme ci-dessus. -
Par exemple :
putStringProperty("/fedpartnerprofiles/saml20-sp-partner-profile/defaultencryptionmethod", "http://www.w3.org/2001/04/xmlenc#tripledes-cbc")
-
-
Pour effectuer la configuration au niveau du partenaire, exécutez la commande suivante :
updatePartnerProperty("PARTNER", "PARTNER_TYPE","defaultencryptionmethod", "ALGORITHM", "string")
-
Remplacez
PARTNER
par un nom de partenaire. -
Remplacez
PARTNER_TYPE
par le type du partenaire spécifié (idp ou sp). -
Remplacez
ALGORITHM
par l'une des valeurs d'algorithme ci-dessus. -
Par exemple :
updatePartnerProperty("AcmeSP", "sp", "defaultencryptionmethod","http://www.w3.org/2001/04/xmlenc#tripledes-cbc", "string")
-
-
-
Quittez l'environnement WLST :
exit()
Ressources de formation supplémentaires
Parcourez d'autres ateliers sur docs.oracle.com/learn ou accédez à d'autres contenus de formation gratuite sur le canal Oracle Learning YouTube. En outre, visitez le site education.oracle.com/learning-explorer pour devenir un explorateur Oracle Learning.
Pour consulter la documentation du produit, visitez le site Oracle Help Center.