Impostazioni di crittografia in OAM

In questo articolo vengono descritte le varie proprietà di configurazione crittografiche in OAM utilizzate per influenzare gli scambi SSO Federation, tra cui:

Algoritmi di hashing

OAM supporta l'utilizzo e l'emissione di messaggi SAML firmati con

Per impostazione predefinita, OAM utilizza SHA-1 per la firma dei messaggi in uscita.

I messaggi vengono firmati in modo diverso in base all'associazione utilizzata:

SHA-1

Un esempio di messaggio AuthnRequest firmato inviato tramite l'associazione HTTP-reindirizzamento è:

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

Un esempio di asserzione SAML 2.0 inviata tramite l'associazione 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

Un esempio di messaggio AuthnRequest firmato inviato tramite l'associazione HTTP-reindirizzamento è:

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

Un esempio di asserzione SAML 2.0 inviata tramite l'associazione 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>

Comando WLST

È possibile configurare OAM in modo che utilizzi SHA-1 o SHA-256 nelle firme SAML:

Il comando OAM WLST configureFedDigitalSignature() viene utilizzato per configurare il modo in cui OAM deve calcolare una firma:

  1. Immettere l'ambiente WLST eseguendo: $IAM_ORACLE_HOME/common/bin/wlst.sh.

  2. Connettersi al server di amministrazione WLS: connect().

  3. Passare alla diramazione Runtime dominio: domainRuntime().

  4. Eseguire il comando configureFedDigitalSignature(): configureFedDigitalSignature(partner="", partnerProfile="", partnerType="",default="false", algorithm="SHA-256", displayOnly="false", delete="false").

  5. È possibile impostare i parametri riportati di seguito.

    Ad esempio:

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

  6. Uscire dall'ambiente WLST: exit()

Firma dei messaggi in uscita

Configurazione OOTB

Di seguito sono riportate le impostazioni booleane di OOTB che indicano quando OAM deve firmare i messaggi SAML in uscita (se vero, OAM firma i messaggi in uscita):

Configurazione

Si supponga di trovarsi già nell'ambiente WLST e di essere connessi mediante:

  1. Immettere l'ambiente WLST eseguendo: $IAM_ORACLE_HOME/common/bin/wlst.sh.

  2. Connettersi al server di amministrazione WLS: connect().

  3. Passare alla diramazione Runtime dominio: domainRuntime().

SAML 2.0 AuthnRequest

Per configurare OAM per la firma di un SAML 2.0 AuthnRequest in uscita, eseguire uno dei comandi riportati di seguito.

Altre impostazioni

Per configurare le proprietà definite nei profili partner SP/IdP riportati sopra, eseguire uno dei comandi riportati di seguito.

Metadati

La modifica della proprietà saml20sendsignedauthnrequest a livello globale comporta la modifica dei metadati SAML 2.0 generati da OAM, come indicato di seguito.

AuthnRequestsSignedattribute nell'elemento SPSSODescriptor viene impostato in base a saml20sendsignedauthnrequest.

Un esempio di metadati SAML 2.0 mostra i due attributi seguenti:

<md:EntityDescriptor ...>
 <dsig:Signature>
 ...
 </dsig:Signature> <md:IDPSSODescriptor WantAuthnRequestsSigned="false" ...>
 ...
 </md:IDPSSODescriptor>
 <md:SPSSODescriptor AuthnRequestsSigned="true" WantAssertionsSigned="true"
...>
 </md:SPSSODescriptor> </md:EntityDescriptor>

Richiedono messaggi da firmare

Configurazione OOTB

Di seguito sono riportate le impostazioni booleane OOTB che regolano quando OAM deve richiedere la firma dei messaggi SAML in entrata (se true, OAM richiede la firma del messaggio in entrata):

Nota importante: se un messaggio in entrata è firmato, OAM lo verifica e restituisce un errore se la convalida della firma non riesce, anche se OAM non richiede la firma del tipo di messaggio.

Configurazione

Si supponga di trovarsi già nell'ambiente WLST e di essere connessi mediante:

  1. Immettere l'ambiente WLST eseguendo: $IAM_ORACLE_HOME/common/bin/wlst.sh.

  2. Connettersi al server di amministrazione WLS: connect().

  3. Passare alla diramazione Runtime dominio: domainRuntime().

SAML 2.0 AuthnRequest

Per configurare OAM in modo che richieda o meno la firma dei messaggi AuthnRequest in entrata, eseguire uno dei comandi riportati di seguito.

Asserzione SAML 1.1 contenuta in un messaggio di risposta

Per configurare OAM in modo che richieda o meno la firma delle asserzioni SAML 1.1 in entrata, eseguire uno dei comandi riportati di seguito.

Asserzione SAML 2.0 contenuta in un messaggio di risposta

Per configurare OAM in modo che richieda o meno la firma delle asserzioni SAML 2.0 in entrata, eseguire uno dei comandi riportati di seguito.

Altre impostazioni

Per configurare le proprietà definite nei profili partner SP/IdP riportati sopra, eseguire uno dei comandi riportati di seguito.

Metadati

La modifica delle proprietà saml20requiresignedauthnrequest o saml20requiresignedassertion a livello globale comporta la modifica dei metadati SAML 2.0 generati da OAM, come indicato di seguito.

Un esempio di metadati SAML 2.0 mostra i due attributi seguenti:

<md:EntityDescriptor ...>
 <dsig:Signature>
 ...
 </dsig:Signature>
 <md:IDPSSODescriptor WantAuthnRequestsSigned="false" ...>
 ...
 </md:IDPSSODescriptor>
 <md:SPSSODescriptor AuthnRequestsSigned="true" WantAssertionsSigned="true"
...>
 </md:SPSSODescriptor> </md:EntityDescriptor>

X.509 Certificato nel messaggio

È possibile configurare OAM per l'invio del certificato di firma X.509 nel messaggio SAML XML in uscita inviato tramite le associazioni HTTP-POST o SOAP.

La proprietà booleana includecertinsignature indica se il certificato viene aggiunto o meno al messaggio.

Per configurare OAM in modo che invii il certificato di firma X.509 nel messaggio in uscita, eseguire uno dei comandi riportati di seguito per impostare la proprietà booleana includecertinsignature.

Cifratura SAML 2.0

Il protocollo SAML 2.0 definisce un modo per cifrare i vari dati nei messaggi:

OAM consente a un amministratore di indicare i tipi di dati da cifrare.

Configurazione OOTB

Di seguito sono riportate le impostazioni booleane OOTB che indicano quando OAM deve cifrare i messaggi SAML in uscita (se true, OAM cifra i dati in uscita):

Quando si crea un nuovo partner SP, la configurazione per tale partner indica che IdP non deve cifrare l'asserzione:

Asserzione cifrata

Per configurare IdP per la cifratura dell'asserzione in uscita per un partner SP tramite la console di amministrazione OAM, effettuare le operazioni riportate di seguito.

  1. Andare alla console di amministrazione OAM: http(s)://oam-admin-host:oam-adminport/oamconsole.
  2. Passare a Federazione Identity, Amministrazione provider di identità.
  3. Aprire il partner SP.
  4. Nella sezione Avanzate selezionare la casella di controllo Cifra asserzione.
  5. Fare clic su Salva.

Descrizione dell'immagine Access_Management.jpg

Per configurare il partner SP tramite WLST, effettuare le operazioni riportate di seguito.

  1. Immettere l'ambiente WLST eseguendo: $IAM_ORACLE_HOME/common/bin/wlst.sh.
  2. Connettersi al server di amministrazione WLS: connect().
  3. Passare alla diramazione Runtime dominio: domainRuntime().
  4. Eseguire il comando updatePartnerProperty(): updatePartnerProperty("PARTNER", "sp", "sendencryptedassertion", "true/false","boolean")
    1. Sostituire PARTNER con un nome partner.
    2. Impostare il valore su vero o falso.
    3. Esempio: updatePartnerProperty("AcmeSP", "sp", "sendencryptedassertion", "true","boolean")
  5. Uscire dall'ambiente WLST: exit().

NameID/attributi cifrati

Per configurare le proprietà, procedere come segue:

  1. Immettere l'ambiente WLST eseguendo: $IAM_ORACLE_HOME/common/bin/wlst.sh.
  2. Connettersi al server di amministrazione WLS: connect().
  3. Passare alla diramazione Runtime dominio: domainRuntime().
  4. Eseguire uno dei seguenti comandi:
    1. Per eseguire la configurazione a livello di profilo partner, eseguire: putBooleanProperty("/fedpartnerprofiles/PARTNER_PROFILE/PROPERTY_NAME", "true/false")
      1. Sostituire PARTNER_PROFILE con un nome di profilo partner.
      2. Sostituire PROPERTY_NAME con il nome della proprietà da impostare.
      3. Impostare il valore su vero o falso.
      4. Esempio: putBooleanProperty("/fedpartnerprofiles/saml20-sp-partner-profile/sendencryptedattribute", "true")
    2. Per eseguire la configurazione a livello di partner, eseguire: updatePartnerProperty("PARTNER", "PARTNER_TYPE", "PROPERTY_NAME","true/false", "boolean")
      1. Sostituire PARTNER con un nome di partner.
      2. Sostituire PARTNER_TYPE con il tipo del partner specificato (idp o sp).
      3. Sostituire PROPERTY_NAME con il nome della proprietà da impostare.
      4. Impostare il valore su vero o falso.
      5. Esempio: updatePartnerProperty("AcmeSP", "sp", "sendencryptedattribute", "true","boolean")
  5. Uscire dall'ambiente WLST: exit()

Algoritmo di cifratura

L'algoritmo di cifratura può essere definito a livello di partner o di profilo partner impostando la proprietà stringa defaultencryptionmethod su uno dei seguenti valori:

Per impostazione predefinita, tale proprietà è impostata su http://www.w3.org/2001/04/xmlenc#aes128-cbc (AES-128 CBC).

Per configurare la proprietà defaultencryptionmethod, effettuare le seguenti operazioni:

  1. Immettere l'ambiente WLST eseguendo: $IAM_ORACLE_HOME/common/bin/wlst.sh.

  2. Connettersi al server di amministrazione WLS: connect().

  3. Passare alla diramazione Runtime dominio: domainRuntime().

  4. Eseguire uno dei seguenti comandi:

    1. Per eseguire la configurazione a livello di profilo partner, eseguire le operazioni riportate di seguito.

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

      1. Sostituire PARTNER_PROFILE con un nome di profilo partner.

      2. Sostituire ALGORITHM con uno dei valori dell'algoritmo sopra riportati.

      3. Ad esempio:

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

    2. Per eseguire la configurazione a livello di partner, eseguire le operazioni riportate di seguito.

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

      1. Sostituire PARTNER con un nome di partner.

      2. Sostituire PARTNER_TYPE con il tipo del partner specificato (idp o sp).

      3. Sostituire ALGORITHM con uno dei valori dell'algoritmo sopra riportati.

      4. Ad esempio:

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

  5. Uscire dall'ambiente WLST: exit()

Altre risorse di apprendimento

Esplora altri laboratori su docs.oracle.com/learn o visita altri contenuti di formazione gratuiti sul canale Oracle Learning YouTube. Inoltre, visitare education.oracle.com/learning-explorer per diventare un Oracle Learning Explorer.

Per la documentazione sul prodotto, visitare Oracle Help Center.