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:
-
Algoritmo di hashing utilizzato per le firme
-
SHA-1
-
SHA-256
-
Messaggi SAML in uscita firmati
-
Quali messaggi SAML in entrata devono essere firmati
-
Indica se includere o meno il certificato di firma X.509 nel messaggio XML firmato in uscita
-
Indica se cifrare o meno i messaggi SAML 2.0:
-
Asserzione
-
NameID
-
Attributo
Algoritmi di hashing
OAM supporta l'utilizzo e l'emissione di messaggi SAML firmati con
-
L'algoritmo di hashing SHA-1
-
Oppure l'algoritmo di hashing SHA-256
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:
-
Firme digitali XML quando vengono utilizzate associazioni HTTP-POST o artifact
-
Esegue una query sulle firme quando viene utilizzata l'associazione HTTP-reindirizzamento
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:
-
A livello di partner.
-
A livello di profilo partner, in cui tutti i partner che fanno riferimento a questo profilo sono interessati, a meno che non siano stati configurati a livello di partner per le firme SHA-1/SHA-256.
Il comando OAM WLST configureFedDigitalSignature()
viene utilizzato per configurare il modo in cui OAM deve calcolare una firma:
-
Immettere l'ambiente WLST eseguendo:
$IAM_ORACLE_HOME/common/bin/wlst.sh
. -
Connettersi al server di amministrazione WLS:
connect()
. -
Passare alla diramazione Runtime dominio:
domainRuntime()
. -
Eseguire il comando
configureFedDigitalSignature()
:configureFedDigitalSignature(partner="", partnerProfile="", partnerType="",default="false", algorithm="SHA-256", displayOnly="false", delete="false")
. -
il partner viene utilizzato per configurare un partner specifico
-
partnerProfile
viene utilizzato per configurare un profilo partner specifico -
partnerType
indica il tipo di profilo partner/partner (idp o sp) -
L'algoritmo indica l'algoritmo di hashing da utilizzare (SHA-1 o SHA-256)
-
displayOnly
indica se il comando deve o meno visualizzare l'impostazione nel profilo partner/partner anziché impostarla. Se impostato su true, questo comando non modifica la configurazione (true o false). -
delete indica se il comando deve eliminare o meno l'impostazione nel profilo partner/partner anziché impostarla. Se impostato su true, questo comando elimina la configurazione e viene utilizzata la configurazione padre (profilo partner o globale) (true o false).
- Uscire dall'ambiente WLST:
exit()
È possibile impostare i parametri riportati di seguito.
Ad esempio:
configureFedDigitalSignature(partner="AcmeIdP", partnerType="idp", algorithm="SHA-256")
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):
-
Livello globale
- saml20sendsignedauthnrequest: SAML 2.0 AuthnRequest (true)
-
Profilo partner SAML 1.1 IdP
- sendsignedrequestsoap: richiesta SAML 1.1 tramite l'associazione Artifact/SOAP (true)
-
Profilo partner SP SAML 1.1
-
sendsignedassertion: asserzione SAML 1.1 (true)
-
sendsignedresponseassertionpost: risposta SAML 1.1 contenente un'asserzione sull'associazione HTTP-POST (false)
-
sendsignedresponseassertionsoap: risposta SAML 1.1 contenente un'asserzione sull'associazione artifact/SOAP (false)
-
sendsignedresponsesoap: risposta SAML 1.1 non contenente un'asserzione sull'associazione artifact/SOAP (true)
-
-
Profilo partner SAML 2.0 IdP
-
sendsignedrequestpost: richiesta SAML 2.0 sull'associazione HTTP-POST (true)
-
sendsignedrequestquery: richiesta SAML 2.0 sull'associazione HTTP-Redirect (true)
-
sendsignedrequestsoap: richiesta SAML 2.0 sull'associazione Artifact/SOAP (true)
-
sendsignedresponsepost: la risposta SAML 2.0 non contiene un'asserzione sull'associazione HTTP-POST (true)
-
sendsignedresponsequery: la risposta SAML 2.0 non contiene un'asserzione sull'associazione HTTP-Redirect (true)
-
sendsignedresponsesoap: risposta SAML 2.0 non contenente un'asserzione sull'associazione artifact/SOAP (true)
-
-
Profilo partner SP SAML 2.0
-
sendsignedassertion: asserzione SAML 2.0 (true)
-
sendsignedrequestpost: richiesta SAML 2.0 sull'associazione HTTP-POST (true)
-
sendsignedrequestquery: richiesta SAML 2.0 sull'associazione HTTP-Redirect (true)
-
sendsignedrequestsoap: richiesta SAML 2.0 sull'associazione Artifact/SOAP (true)
-
sendsignedresponseassertionpost: risposta SAML 2.0 contenente un'asserzione sull'associazione HTTP-POST (false)
-
sendsignedresponseassertionsoap: risposta SAML 2.0 contenente un'asserzione sull'associazione artifact/SOAP (false)
-
sendsignedresponsepost: la risposta SAML 2.0 non contiene un'asserzione sull'associazione HTTP-POST (true)
-
sendsignedresponsequery: la risposta SAML 2.0 non contiene un'asserzione sull'associazione HTTP-Redirect (true)
-
sendsignedresponsesoap: risposta SAML 2.0 non contenente un'asserzione sull'associazione artifact/SOAP (true)
-
Configurazione
Si supponga di trovarsi già nell'ambiente WLST e di essere connessi mediante:
-
Immettere l'ambiente WLST eseguendo:
$IAM_ORACLE_HOME/common/bin/wlst.sh
. -
Connettersi al server di amministrazione WLS:
connect()
. -
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.
-
Per eseguire la configurazione a livello globale, eseguire:
putBooleanProperty("/spglobal/saml20sendsignedauthnrequest", "true/false")
-
Impostare il valore su true affinché OAM firmi il file AuthnRequest in uscita.
-
Un esempio è
putBooleanProperty("/spglobal/saml20sendsignedauthnrequest", "true")
-
-
Per eseguire la configurazione a livello di profilo partner SAML 2.0 IdP, eseguire:
putBooleanProperty("/fedpartnerprofiles/PARTNER_PROFILE/sendsignedauthnrequest", "true/false")
-
Sostituire PARTNER_PROFILE con un nome di profilo partner SAML 2.0 IdP.
-
Impostare il valore su true affinché OAM firmi il file AuthnRequest in uscita.
-
Esempio:
putBooleanProperty("/fedpartnerprofiles/saml20-idp-partner-profile/sendsignedauthnrequest", "true")
-
-
Per eseguire la configurazione a livello di partner SAML 2.0 IdP, eseguire:
updatePartnerProperty("PARTNER", "idp", "sendsignedauthnrequest", "true/false","boolean")
-
Sostituire PARTNER con un nome partner SAML 2.0 IdP.
-
Impostare il valore su true affinché OAM firmi il file AuthnRequest in uscita.
-
Un esempio è
updatePartnerProperty("AcmeIdP", "idp", "sendsignedauthnrequest", "false","boolean")
Altre impostazioni
Per configurare le proprietà definite nei profili partner SP/IdP riportati sopra, eseguire uno dei comandi riportati di seguito.
-
Per eseguire la configurazione a livello di profilo partner, eseguire:
putBooleanProperty("/fedpartnerprofiles/PARTNER_PROFILE /PROPERTY_NAME", "true/false")
-
Sostituire
PARTNER_PROFILE
con un nome di profilo partner. -
Sostituire
PROPERTY_NAME
con il nome della proprietà da impostare. -
Impostare il valore su true o false Un esempio è
putBooleanProperty("/fedpartnerprofiles/saml20-idp-partner-profile /sendsignedrequestquery", "true")
-
-
Per eseguire la configurazione a livello di partner, eseguire:
updatePartnerProperty("PARTNER", "PARTNER_TYPE", "PROPERTY_NAME","true/false", "boolean")
- Sostituire
PARTNER
con un nome di partner. - Sostituire
PARTNER_TYPE
con il tipo del partner specificato (idp o sp). - Sostituire
PROPERTY_NAME
con il nome della proprietà da impostare. - Impostare il valore su true o false Un esempio è:
updatePartnerProperty("AcmeSP", "sp", "sendsignedrequestquery", "true","boolean")
- Sostituire
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):
-
Livello globale
-
saml20requiresignedauthnrequest: SAML 2.0 AuthnRequest (false)
-
saml11requiresignedassertion: asserzione SAML 1.1 contenuta in un messaggio di risposta (true)
-
saml20requiresignedassertion: asserzione SAML 2.0 contenuta in un messaggio di risposta (true)
-
-
Profilo partner SAML 1.1 IdP
-
requiresignedresponseassertionpost: risposta SAML 1.1 tramite l'associazione HTTP-POST (false)
-
requiresignedresponseassertionsoap: risposta SAML 1.1 tramite l'associazione artifact/SOAP (false)
-
-
Profilo partner SP SAML 1.1
- requiresignedrequestsoap: richiesta SAML 1.1 tramite l'associazione artifact/SOAP (false)
-
Profilo partner SAML 2.0 IdP
-
requiresignedrequestpost: richiesta SAML 2.0 sull'associazione HTTP-POST (false)
-
requiresignedrequestquery: richiesta SAML 2.0 sull'associazione HTTP-Redirect (false)
-
requiresignedrequestsoap: richiesta SAML 2.0 sull'associazione artifact/SOAP (false)
-
requiresignedresponseassertionpost: risposta SAML 2.0 contenente un'asserzione sull'associazione HTTP-POST (false)
-
requiresignedresponseassertionsoap: risposta SAML 2.0 contenente un'asserzione sull'associazione artifact/SOAP (false)
-
requiresignedresponsepost: risposta SAML 2.0 non contenente un'asserzione sull'associazione HTTP-POST (false)
-
requiresignedresponsequery: la risposta SAML 2.0 non contiene un'asserzione sull'associazione HTTP-Redirect (false)
-
requiresignedresponsesoap: risposta SAML 2.0 non contenente un'asserzione sull'associazione artifact/SOAP (false)
-
-
Profilo partner SP SAML 2.0
-
requiresignedrequestpost: richiesta SAML 2.0 sull'associazione HTTP-POST (false)
-
requiresignedrequestquery: richiesta SAML 2.0 sull'associazione HTTP-Redirect (false)
-
requiresignedrequestsoap: richiesta SAML 2.0 sull'associazione artifact/SOAP (false)
-
requiresignedresponsepost: risposta SAML 2.0 non contenente un'asserzione sull'associazione HTTP-POST (false)
-
requiresignedresponsequery: la risposta SAML 2.0 non contiene un'asserzione sull'associazione HTTP-Redirect (false)
-
requiresignedresponsesoap: risposta SAML 2.0 non contenente un'asserzione sull'associazione artifact/SOAP (false)
-
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:
-
Immettere l'ambiente WLST eseguendo:
$IAM_ORACLE_HOME/common/bin/wlst.sh
. -
Connettersi al server di amministrazione WLS:
connect()
. -
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.
-
Per eseguire la configurazione a livello globale, eseguire:
putBooleanProperty("/idpglobal/saml20requiresignedauthnrequest", "true/false")
- Impostare il valore su true affinché OAM richieda la firma di AuthnRequest in entrata
Esempio:putBooleanProperty("/idpglobal/saml20requiresignedauthnrequest", "true")
- Impostare il valore su true affinché OAM richieda la firma di AuthnRequest in entrata
-
Per eseguire la configurazione a livello di profilo partner SP SAML 2.0, eseguire:
putBooleanProperty("/fedpartnerprofiles/PARTNER_PROFILE /requiresignedauthnrequest", "true/false")
- Sostituire PARTNER_PROFILE con un nome di profilo partner SP SAML 2.0
- Impostare il valore su true affinché OAM richieda la firma di AuthnRequest in entrata. Esempio:
putBooleanProperty("/fedpartnerprofiles/saml20-sp-partner-profile /requiresignedauthnrequest", "true")
-
Per eseguire la configurazione a livello di partner SP SAML 2.0, eseguire le operazioni riportate di seguito.
updatePartnerProperty("PARTNER", "sp", "requiresignedauthnrequest","true/false", "boolean")
- Sostituisci PARTNER con nome partner SP SAML 2.0
- Impostare il valore su true affinché OAM richieda la firma di AuthnRequest in entrata. Esempio:
updatePartnerProperty("AcmeSP", "sp", "requiresignedauthnrequest", "false","boolean")
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.
- Per eseguire la configurazione a livello globale, eseguire:
putBooleanProperty("/spglobal/saml11requiresignedassertion", "true/false")
- Impostare il valore su true affinché OAM richieda la firma delle asserzioni SAML 1.1 in entrata. Esempio:
putBooleanProperty("/spglobal/saml11requiresignedassertion", "true")
- Impostare il valore su true affinché OAM richieda la firma delle asserzioni SAML 1.1 in entrata. Esempio:
- Per eseguire la configurazione a livello di profilo partner SAML 1.1 IdP, eseguire:
putBooleanProperty("/fedpartnerprofiles/PARTNER_PROFILE/requiresignedassertion", "true/false")
- Sostituire PARTNER_PROFILE con un nome di profilo partner SAML 1.1 IdP
- Impostare il valore su true affinché OAM richieda la firma delle asserzioni SAML 1.1 in entrata. Esempio:
putBooleanProperty("/fedpartnerprofiles/saml11-idp-partner-profile /requiresignedassertion", "true")
- Per eseguire la configurazione a livello di partner SAML 1.1 IdP, eseguire:
updatePartnerProperty("PARTNER", "idp", "requiresignedassertion", "true/false","boolean")
- Sostituisci PARTNER con nome partner SAML 1.1 IdP
- Impostare il valore su true affinché OAM richieda la firma delle asserzioni SAML 1.1 in entrata. Esempio:
updatePartnerProperty("AcmeSP", "sp", "requiresignedassertion", "false","boolean")
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.
- Per eseguire la configurazione a livello globale, eseguire:
putBooleanProperty("/spglobal/saml20requiresignedassertion", "true/false")
- Impostare il valore su true affinché OAM richieda la firma delle asserzioni SAML 2.0 in entrata. Esempio:
putBooleanProperty("/spglobal/saml20requiresignedassertion", "true")
- Per eseguire la configurazione a livello di profilo partner SAML 2.0 IdP, eseguire:
putBooleanProperty("/fedpartnerprofiles/PARTNER_PROFILE/requiresignedassertion", "true/false")
- Sostituire
PARTNER_PROFILE
con un nome di profilo partner SAML 2.0 IdP - Impostare il valore su true affinché OAM richieda la firma delle asserzioni SAML 2.0 in entrata. Esempio:
putBooleanProperty("/fedpartnerprofiles/saml20-idp-partner-profile /requiresignedassertion", "true")
- Per eseguire la configurazione a livello di partner SAML 2.0 IdP, eseguire:
updatePartnerProperty("PARTNER", "idp", "requiresignedassertion", "true/false","boolean")
- Sostituire
PARTNER
con un nome partner SAML 2.0 IdP - Impostare il valore su true affinché OAM richieda la firma delle asserzioni SAML 2.0 in entrata
Un esempio è:updatePartnerProperty("AcmeSP", "sp", "requiresignedassertion", "false","boolean")
Altre impostazioni
Per configurare le proprietà definite nei profili partner SP/IdP riportati sopra, eseguire uno dei comandi riportati di seguito.
- Per eseguire la configurazione a livello di profilo partner, eseguire:
putBooleanProperty("/fedpartnerprofiles/PARTNER_PROFILE /PROPERTY_NAME", "true/false")
- Sostituire
PARTNER_PROFILE
con un nome di profilo partner - Sostituire
PROPERTY_NAME
con il nome della proprietà da impostare - Impostare il valore su true o false Un esempio è:
putBooleanProperty("/fedpartnerprofiles/saml20-idp-partner-profile /requiresignedrequestquery", "true")
- Sostituire
- Per eseguire la configurazione a livello di partner, eseguire:
updatePartnerProperty("PARTNER", "PARTNER_TYPE", "PROPERTY_NAME","true/false", "boolean")
- Sostituire
PARTNER
con un nome partner - Sostituire
PARTNER_TYPE
con il tipo del partner specificato (idp o sp) - Sostituire
PROPERTY_NAME
con il nome della proprietà da impostare - Impostare il valore su true o false Un esempio è:
updatePartnerProperty("AcmeSP", "sp", "requiresignedrequestquery", "true","boolean")
- Sostituire
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.
-
L'attributo
WantAuthnRequestsSigned
nell'elementoIDPSSODescriptor
viene impostato in base a saml20requiresignedauthnrequest. -
L'attributo
WantAssertionsSigned
nell'elementoSPSSODescriptor
viene impostato in base a saml20requiresignedassertion.
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
.
- Per eseguire la configurazione a livello di profilo partner, eseguire:
putBooleanProperty("/fedpartnerprofiles/PARTNER_PROFILE/includecertinsignature", "true/false")
- Sostituire
PARTNER_PROFILE
con un nome di profilo partner - Impostare il valore su true o false Un esempio è:
putBooleanProperty("/fedpartnerprofiles/saml20-sp-partner-profile /includecertinsignature", "true")
- Sostituire
- Per configurare a livello di partner, esegui:
updatePartnerProperty("PARTNER", "PARTNER_TYPE", "includecertinsignature","true/false", "boolean")
- Sostituire
PARTNER
con un nome partner - Sostituire
PARTNER_TYPE
con il tipo del partner specificato (idp o sp) - Impostare il valore su true o false Un esempio è:
updatePartnerProperty("AcmeSP", "sp", "includecertinsignature", "true","boolean")
- Sostituire
Cifratura SAML 2.0
Il protocollo SAML 2.0 definisce un modo per cifrare i vari dati nei messaggi:
-
Asserzioni
-
NameIDs
-
Attributi
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):
-
Profilo partner SAML 2.0 IdP
- sendencryptednameid: indica se NameID contenuto in
LogoutRequest
messagesshould
deve essere cifrato (false).
- sendencryptednameid: indica se NameID contenuto in
-
Profilo partner SP SAML 2.0
-
sendencryptedattribute: indica se ogni attributo contenuto in un SAML
Assertionshould
deve essere cifrato (false). -
sendencryptednameid: indica se NameID è contenuto in
LogoutRequest
,Assertionmessages
deve essere cifrato (false).
-
Quando si crea un nuovo partner SP, la configurazione per tale partner indica che IdP non deve cifrare l'asserzione:
- sendencryptedassertion sulla voce partner: indica se le asserzioni devono essere state cifrate (false).
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.
- Andare alla console di amministrazione OAM:
http(s)://oam-admin-host:oam-adminport/oamconsole
. - Passare a Federazione Identity, Amministrazione provider di identità.
- Aprire il partner SP.
- Nella sezione Avanzate selezionare la casella di controllo Cifra asserzione.
- Fare clic su Salva.
Descrizione dell'immagine Access_Management.jpg
Per configurare il partner SP tramite WLST, effettuare le operazioni riportate di seguito.
- Immettere l'ambiente WLST eseguendo:
$IAM_ORACLE_HOME/common/bin/wlst.sh
. - Connettersi al server di amministrazione WLS:
connect()
. - Passare alla diramazione Runtime dominio:
domainRuntime()
. - Eseguire il comando
updatePartnerProperty()
:updatePartnerProperty("PARTNER", "sp", "sendencryptedassertion", "true/false","boolean")
- Sostituire PARTNER con un nome partner.
- Impostare il valore su vero o falso.
- Esempio:
updatePartnerProperty("AcmeSP", "sp", "sendencryptedassertion", "true","boolean")
- Uscire dall'ambiente WLST:
exit()
.
NameID/attributi cifrati
Per configurare le proprietà, procedere come segue:
- Immettere l'ambiente WLST eseguendo:
$IAM_ORACLE_HOME/common/bin/wlst.sh
. - Connettersi al server di amministrazione WLS:
connect()
. - Passare alla diramazione Runtime dominio:
domainRuntime()
. - Eseguire uno dei seguenti comandi:
- Per eseguire la configurazione a livello di profilo partner, eseguire:
putBooleanProperty("/fedpartnerprofiles/PARTNER_PROFILE/PROPERTY_NAME", "true/false")
- Sostituire
PARTNER_PROFILE
con un nome di profilo partner. - Sostituire
PROPERTY_NAME
con il nome della proprietà da impostare. - Impostare il valore su vero o falso.
- Esempio:
putBooleanProperty("/fedpartnerprofiles/saml20-sp-partner-profile/sendencryptedattribute", "true")
- Sostituire
- Per eseguire la configurazione a livello di partner, eseguire:
updatePartnerProperty("PARTNER", "PARTNER_TYPE", "PROPERTY_NAME","true/false", "boolean")
- Sostituire
PARTNER
con un nome di partner. - Sostituire
PARTNER_TYPE
con il tipo del partner specificato (idp o sp). - Sostituire
PROPERTY_NAME
con il nome della proprietà da impostare. - Impostare il valore su vero o falso.
- Esempio:
updatePartnerProperty("AcmeSP", "sp", "sendencryptedattribute", "true","boolean")
- Sostituire
- Per eseguire la configurazione a livello di profilo partner, eseguire:
- 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:
-
http://www.w3.org/2001/04/xmlenc#aes128-cbc per CBC AES-128
-
http://www.w3.org/2001/04/xmlenc#aes192-cbc per CBC AES-192
-
http://www.w3.org/2001/04/xmlenc#aes256-cbc per CBC AES-256
-
http://www.w3.org/2001/04/xmlenc#tripledes-cbc per CBC 3DES
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:
-
Immettere l'ambiente WLST eseguendo:
$IAM_ORACLE_HOME/common/bin/wlst.sh
. -
Connettersi al server di amministrazione WLS:
connect()
. -
Passare alla diramazione Runtime dominio:
domainRuntime()
. -
Eseguire uno dei seguenti comandi:
-
Per eseguire la configurazione a livello di profilo partner, eseguire le operazioni riportate di seguito.
putStringProperty("/fedpartnerprofiles/PARTNER_PROFILE/defaultencryptionmethod", "ALGORITHM")
-
Sostituire
PARTNER_PROFILE
con un nome di profilo partner. -
Sostituire
ALGORITHM
con uno dei valori dell'algoritmo sopra riportati. -
Ad esempio:
putStringProperty("/fedpartnerprofiles/saml20-sp-partner-profile/defaultencryptionmethod", "http://www.w3.org/2001/04/xmlenc#tripledes-cbc")
-
-
Per eseguire la configurazione a livello di partner, eseguire le operazioni riportate di seguito.
updatePartnerProperty("PARTNER", "PARTNER_TYPE","defaultencryptionmethod", "ALGORITHM", "string")
-
Sostituire
PARTNER
con un nome di partner. -
Sostituire
PARTNER_TYPE
con il tipo del partner specificato (idp o sp). -
Sostituire
ALGORITHM
con uno dei valori dell'algoritmo sopra riportati. -
Ad esempio:
updatePartnerProperty("AcmeSP", "sp", "defaultencryptionmethod","http://www.w3.org/2001/04/xmlenc#tripledes-cbc", "string")
-
-
-
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.