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 :

Algorithmes de hachage

OAM prend en charge la consommation et l'émission de messages SAML signés avec

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 :

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 :

La commande OAM WLST configureFedDigitalSignature() permet de configurer la façon dont OAM doit calculer une signature :

  1. Entrez dans l'environnement WLST en exécutant : $IAM_ORACLE_HOME/common/bin/wlst.sh.

  2. Connectez-vous au serveur d'administration WLS : connect().

  3. Accédez au branchement d'exécution de domaine : domainRuntime().

  4. Exécutez la commande configureFedDigitalSignature() : configureFedDigitalSignature(partner="", partnerProfile="", partnerType="",default="false", algorithm="SHA-256", displayOnly="false", delete="false").

  5. Vous pouvez définir les paramètres suivants :

    Par exemple :

    configureFedDigitalSignature(partner="AcmeIdP", partnerType="idp", algorithm="SHA-256")

  6. Quittez l'environnement WLST : exit()

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) :

Configuration

Supposons que vous êtes déjà dans l'environnement WLST et connecté à l'aide des éléments suivants :

  1. Entrez dans l'environnement WLST en exécutant : $IAM_ORACLE_HOME/common/bin/wlst.sh.

  2. Connectez-vous au serveur d'administration WLS : connect().

  3. 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 :

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 :

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) :

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 :

  1. Entrez dans l'environnement WLST en exécutant : $IAM_ORACLE_HOME/common/bin/wlst.sh.

  2. Connectez-vous au serveur d'administration WLS : connect().

  3. 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 :

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 :

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 :

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 :

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 :

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 :

Chiffrement SAML 2.0

Le protocole SAML 2.0 définit un moyen de crypter diverses données dans les messages :

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) :

Lors de la création d'un partenaire SP, la configuration de ce partenaire indique que IdP ne doit pas crypter l'assertion :

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 :

  1. Accédez à la console d'administration OAM : http(s)://oam-admin-host:oam-adminport/oamconsole.
  2. Accédez à Fédération des identités, Administration des fournisseurs d'identités.
  3. Ouvrez le partenaire SP.
  4. Dans la section Avancé, cochez la case Crypter l'assertion.
  5. Cliquez sur Enregistrer.

Description de l'image Access_Management.jpg

Pour configurer le partenaire SP via WLST, procédez comme suit :

  1. Entrez dans l'environnement WLST en exécutant : $IAM_ORACLE_HOME/common/bin/wlst.sh.
  2. Connectez-vous au serveur d'administration WLS : connect().
  3. Accédez au branchement d'exécution de domaine : domainRuntime().
  4. Exécutez la commande updatePartnerProperty() : updatePartnerProperty("PARTNER", "sp", "sendencryptedassertion", "true/false","boolean")
    1. Remplacez PARTNER par un nom de partenaire.
    2. Définissez la valeur sur True ou False.
    3. Par exemple : updatePartnerProperty("AcmeSP", "sp", "sendencryptedassertion", "true","boolean")
  5. Quittez l'environnement WLST : exit().

ID de nom/attributs cryptés

Pour configurer les propriétés, procédez comme suit :

  1. Entrez dans l'environnement WLST en exécutant : $IAM_ORACLE_HOME/common/bin/wlst.sh.
  2. Connectez-vous au serveur d'administration WLS : connect().
  3. Accédez au branchement d'exécution de domaine : domainRuntime().
  4. Exécutez l'une des commandes suivantes :
    1. Pour effectuer la configuration au niveau d'un profil de partenaire, exécutez : putBooleanProperty("/fedpartnerprofiles/PARTNER_PROFILE/PROPERTY_NAME", "true/false")
      1. Remplacez PARTNER_PROFILE par un nom de profil de partenaire.
      2. Remplacez PROPERTY_NAME par le nom de la propriété à définir.
      3. Définissez la valeur sur True ou False.
      4. Par exemple : putBooleanProperty("/fedpartnerprofiles/saml20-sp-partner-profile/sendencryptedattribute", "true")
    2. Pour effectuer la configuration au niveau du partenaire, exécutez : updatePartnerProperty("PARTNER", "PARTNER_TYPE", "PROPERTY_NAME","true/false", "boolean")
      1. Remplacez PARTNER par un nom de partenaire.
      2. Remplacez PARTNER_TYPE par le type du partenaire spécifié (idp ou sp).
      3. Remplacez PROPERTY_NAME par le nom de la propriété à définir.
      4. Définissez la valeur sur True ou False.
      5. Par exemple : updatePartnerProperty("AcmeSP", "sp", "sendencryptedattribute", "true","boolean")
  5. 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 :

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 :

  1. Entrez dans l'environnement WLST en exécutant : $IAM_ORACLE_HOME/common/bin/wlst.sh.

  2. Connectez-vous au serveur d'administration WLS : connect().

  3. Accédez au branchement d'exécution de domaine : domainRuntime().

  4. Exécutez l'une des commandes suivantes :

    1. Pour effectuer la configuration au niveau d'un profil de partenaire, exécutez :

      putStringProperty("/fedpartnerprofiles/PARTNER_PROFILE/defaultencryptionmethod", "ALGORITHM")

      1. Remplacez PARTNER_PROFILE par un nom de profil de partenaire.

      2. Remplacez ALGORITHM par l'une des valeurs d'algorithme ci-dessus.

      3. Par exemple :

      putStringProperty("/fedpartnerprofiles/saml20-sp-partner-profile/defaultencryptionmethod", "http://www.w3.org/2001/04/xmlenc#tripledes-cbc")

    2. Pour effectuer la configuration au niveau du partenaire, exécutez la commande suivante :

      updatePartnerProperty("PARTNER", "PARTNER_TYPE","defaultencryptionmethod", "ALGORITHM", "string")

      1. Remplacez PARTNER par un nom de partenaire.

      2. Remplacez PARTNER_TYPE par le type du partenaire spécifié (idp ou sp).

      3. Remplacez ALGORITHM par l'une des valeurs d'algorithme ci-dessus.

      4. Par exemple :

      updatePartnerProperty("AcmeSP", "sp", "defaultencryptionmethod","http://www.w3.org/2001/04/xmlenc#tripledes-cbc", "string")

  5. 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.