Configuración de cifrado en OAM
En este artículo se tratan las distintas propiedades de configuración de cifrado en OAM que se utilizan para afectar a los intercambios de SSO de federación, incluidos:
-
Algoritmo de hash utilizado para firmas
-
SHA-1 (Fin de creación)
-
SHA-256 (Fin de actualización)
-
Qué mensajes de SAML salientes están firmados
-
Qué mensajes de SAML entrantes se deben firmar
-
Si se debe incluir o no el certificado de firma X.509 en el mensaje XML firmado saliente
-
Si se deben cifrar o no los mensajes de SAML 2.0:
-
Afirmación
-
NameID (Fin de creación)
-
Atributo
Algoritmos de hash
OAM soporta el consumo y la emisión de mensajes SAML firmados con
-
El algoritmo de hash SHA-1
-
O el algoritmo de hash SHA-256
Por defecto, OAM utiliza SHA-1 al firmar mensajes salientes.
Los mensajes se firman de forma diferente, según el enlace utilizado:
-
Firmas digitales XML cuando se utilizan enlaces HTTP-POST o de artefacto
-
Firmas de consulta cuando se utiliza el enlace HTTP-Redirect
SHA-1 (Fin de creación)
Un ejemplo de un mensaje AuthnRequest firmado enviado mediante el enlace HTTP-Redirect es:
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 ejemplo de una afirmación de SAML 2.0 enviada mediante el enlace HTTP-POST es:
<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 (Fin de actualización)
Un ejemplo de un mensaje AuthnRequest firmado enviado mediante el enlace HTTP-Redirect es:
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 ejemplo de una afirmación de SAML 2.0 enviada mediante el enlace HTTP-POST es:
<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
OAM se puede configurar para utilizar SHA-1 o SHA-256 en firmas de SAML:
-
En el nivel de socio.
-
En el nivel de perfil de socio, donde todos los socios que hacen referencia a este perfil se ven afectados, a menos que se hayan configurado en el nivel de socio para las firmas SHA-1/SHA-256.
El comando WLST configureFedDigitalSignature()
de OAM se utiliza para configurar cómo OAM debe calcular una firma:
-
Introduzca el entorno WLST ejecutando:
$IAM_ORACLE_HOME/common/bin/wlst.sh
. -
Conéctese al servidor de administración de WLS:
connect()
. -
Navegue a la rama Domain Runtime:
domainRuntime()
. -
Ejecute el comando
configureFedDigitalSignature()
:configureFedDigitalSignature(partner="", partnerProfile="", partnerType="",default="false", algorithm="SHA-256", displayOnly="false", delete="false")
. -
el partner se utiliza para configurar un partner específico
-
partnerProfile
se utiliza para configurar un perfil de socio específico -
partnerType
indica el tipo de perfil de socio/socio (idp o sp) -
algoritmo indica qué algoritmo de hash se debe utilizar (SHA-1 o SHA-256)
-
displayOnly
indica si el comando debe mostrar o no la configuración en este perfil de socio/socio en lugar de definirla. Si se define en true, este comando no modifica la configuración (true o false). -
delete indica si el comando debe suprimir o no la configuración en este perfil de socio/socio en lugar de definirla. Si se define en true, este comando suprime la configuración y se utiliza la configuración principal (perfil de socio o global) (true o false).
- Salga del entorno WLST:
exit()
Se pueden configurar los siguientes parámetros:
Un ejemplo es:
configureFedDigitalSignature(partner="AcmeIdP", partnerType="idp", algorithm="SHA-256")
(Fin de creación)
Firma de Mensajes Salientes
Configuración de OOTB
A continuación se muestra la configuración booleana de OOTB que indica cuándo OAM debe firmar los mensajes de SAML salientes (si es verdadero, OAM firma los mensajes salientes):
-
Nivel global
- saml20sendsignedauthnrequest: SAML 2.0 AuthnRequest (verdadero)
-
Perfil de partner SAML 1.1 IdP
- sendsignedrequestsoap: solicitud de SAML 1.1 mediante el enlace de artefacto/SOAP (true)
-
Perfil de socio de SP de SAML 1.1
-
sendsignedassertion: afirmación de SAML 1.1 (verdadero)
-
sendsignedresponseassertionpost: respuesta de SAML 1.1 que contiene una afirmación sobre el enlace HTTP-POST (falso)
-
sendsignedresponseassertionsoap: respuesta de SAML 1.1 que contiene una afirmación sobre el enlace de artefacto/SOAP (falso)
-
sendsignedresponsesoap: respuesta de SAML 1.1 que no contiene una afirmación sobre el enlace de artefacto/SOAP (true)
-
-
Perfil de partner SAML 2.0 IdP
-
sendsignedrequestpost: solicitud de SAML 2.0 sobre el enlace HTTP-POST (true)
-
sendsignedrequestquery: solicitud de SAML 2.0 sobre el enlace de redirección HTTP (true)
-
sendsignedrequestsoap: solicitud de SAML 2.0 sobre el enlace de artefacto/SOAP (true)
-
sendsignedresponsepost: la respuesta de SAML 2.0 no contiene una afirmación sobre el enlace HTTP-POST (true)
-
sendsignedresponsequery: la respuesta de SAML 2.0 no contiene una afirmación sobre el enlace de redirección HTTP (true)
-
sendsignedresponsesoap: respuesta de SAML 2.0 que no contiene una afirmación sobre el enlace de artefacto/SOAP (true)
-
-
Perfil de socio de SP de SAML 2.0
-
sendsignedassertion: afirmación de SAML 2.0 (verdadero)
-
sendsignedrequestpost: solicitud de SAML 2.0 sobre el enlace HTTP-POST (true)
-
sendsignedrequestquery: solicitud de SAML 2.0 sobre el enlace de redirección HTTP (true)
-
sendsignedrequestsoap: solicitud de SAML 2.0 sobre el enlace de artefacto/SOAP (true)
-
sendsignedresponseassertionpost: respuesta de SAML 2.0 que contiene una afirmación sobre el enlace HTTP-POST (falso)
-
sendsignedresponseassertionsoap: respuesta de SAML 2.0 que contiene una afirmación sobre el enlace de artefacto/SOAP (falso)
-
sendsignedresponsepost: la respuesta de SAML 2.0 no contiene una afirmación sobre el enlace HTTP-POST (true)
-
sendsignedresponsequery: la respuesta de SAML 2.0 no contiene una afirmación sobre el enlace de redirección HTTP (true)
-
sendsignedresponsesoap: respuesta de SAML 2.0 que no contiene una afirmación sobre el enlace de artefacto/SOAP (true)
-
Configuración
Supongamos que ya está en el entorno WLST y conectado mediante:
-
Introduzca el entorno WLST ejecutando:
$IAM_ORACLE_HOME/common/bin/wlst.sh
. -
Conéctese al servidor de administración de WLS:
connect()
. -
Navegue a la rama Domain Runtime:
domainRuntime()
.
SAML 2.0 AuthnRequest
Para configurar OAM para que firme un SAML 2.0 AuthnRequest saliente, ejecute uno de los siguientes comandos:
-
Para configurar a nivel global, ejecute:
putBooleanProperty("/spglobal/saml20sendsignedauthnrequest", "true/false")
-
Defina el valor en true para que OAM firme el AuthnRequest saliente.
-
Un ejemplo es
putBooleanProperty("/spglobal/saml20sendsignedauthnrequest", "true")
-
-
Para configurar en un nivel de perfil de partner SAML 2.0 IdP, ejecute:
putBooleanProperty("/fedpartnerprofiles/PARTNER_PROFILE/sendsignedauthnrequest", "true/false")
-
Sustituya PARTNER_PROFILE por un nombre de perfil de socio IdP de SAML 2.0.
-
Defina el valor en true para que OAM firme el AuthnRequest saliente.
-
Un ejemplo es:
putBooleanProperty("/fedpartnerprofiles/saml20-idp-partner-profile/sendsignedauthnrequest", "true")
-
-
Para configurar a nivel de partner SAML 2.0 IdP, ejecute:
updatePartnerProperty("PARTNER", "idp", "sendsignedauthnrequest", "true/false","boolean")
-
Sustituya PARTNER por un nombre de partner IdP de SAML 2.0.
-
Defina el valor en true para que OAM firme el AuthnRequest saliente.
-
Un ejemplo es
updatePartnerProperty("AcmeIdP", "idp", "sendsignedauthnrequest", "false","boolean")
Otra Configuración
Para configurar las propiedades definidas en los perfiles de socio SP/IdP anteriores, ejecute uno de los siguientes comandos:
-
Para configurar en un nivel de perfil de socio, ejecute:
putBooleanProperty("/fedpartnerprofiles/PARTNER_PROFILE /PROPERTY_NAME", "true/false")
-
Sustituya
PARTNER_PROFILE
por un nombre de perfil de partner. -
Sustituya
PROPERTY_NAME
por el nombre de la propiedad que se va a definir. -
Defina el valor en true o false. Un ejemplo es
putBooleanProperty("/fedpartnerprofiles/saml20-idp-partner-profile /sendsignedrequestquery", "true")
-
-
Para configurar a nivel de partner, ejecute:
updatePartnerProperty("PARTNER", "PARTNER_TYPE", "PROPERTY_NAME","true/false", "boolean")
- Sustituya
PARTNER
por un nombre de socio. - Sustituya
PARTNER_TYPE
por el tipo de partner especificado (idp o sp). - Sustituya
PROPERTY_NAME
por el nombre de la propiedad que se va a definir. - Defina el valor en true o false. Un ejemplo es:
updatePartnerProperty("AcmeSP", "sp", "sendsignedrequestquery", "true","boolean")
- Sustituya
Metadatos
Al cambiar la propiedad saml20sendsignedauthnrequest
a nivel global, se cambian los metadatos de SAML 2.0 generados por OAM, como:
La AuthnRequestsSignedattribute
del elemento SPSSODescriptor
se define según saml20sendsignedauthnrequest.
Un ejemplo de metadatos de SAML 2.0 muestra estos dos atributos:
<md:EntityDescriptor ...>
<dsig:Signature>
...
</dsig:Signature> <md:IDPSSODescriptor WantAuthnRequestsSigned="false" ...>
...
</md:IDPSSODescriptor>
<md:SPSSODescriptor AuthnRequestsSigned="true" WantAssertionsSigned="true"
...>
</md:SPSSODescriptor> </md:EntityDescriptor>
Requiere que se firmen los mensajes
Configuración de OOTB
A continuación se muestran los valores booleanos de OOTB que controlan cuándo OAM necesita que se firmen los mensajes de SAML entrantes (si es verdadero, OAM necesita que se firme el mensaje entrante):
-
Nivel global
-
saml20requiresignedauthnrequest: SAML 2.0 AuthnRequest (falso)
-
saml11requiresignedassertion: afirmación de SAML 1.1 incluida en un mensaje de respuesta (verdadero)
-
saml20requiresignedassertion: afirmación de SAML 2.0 incluida en un mensaje de respuesta (verdadero)
-
-
Perfil de partner SAML 1.1 IdP
-
requiresignedresponseassertionpost: respuesta de SAML 1.1 mediante el enlace HTTP-POST (false)
-
requiresignedresponseassertionsoap: respuesta de SAML 1.1 mediante el enlace de artefacto/SOAP (falso)
-
-
Perfil de socio de SP de SAML 1.1
- requiresignedrequestsoap: solicitud de SAML 1.1 mediante el enlace de artefacto/SOAP (falso)
-
Perfil de partner SAML 2.0 IdP
-
requiresignedrequestpost: solicitud de SAML 2.0 sobre el enlace HTTP-POST (falso)
-
requiresignedrequestquery: solicitud de SAML 2.0 sobre el enlace HTTP-Redirect (false)
-
requiresignedrequestsoap: solicitud de SAML 2.0 sobre el enlace de artefacto/SOAP (false)
-
requiresignedresponseassertionpost: respuesta de SAML 2.0 que contiene una afirmación sobre el enlace HTTP-POST (falso)
-
requiresignedresponseassertionsoap: respuesta de SAML 2.0 que contiene una afirmación sobre el enlace de artefacto/SOAP (falso)
-
requiresignedresponsepost: Respuesta de SAML 2.0 que no contiene una afirmación sobre el enlace HTTP-POST (false)
-
requiresignedresponsequery: la respuesta de SAML 2.0 no contiene una afirmación sobre el enlace HTTP-Redirect (false)
-
requiresignedresponsesoap: Respuesta de SAML 2.0 que no contiene una afirmación sobre el enlace de artefacto/SOAP (falso)
-
-
Perfil de socio de SP de SAML 2.0
-
requiresignedrequestpost: solicitud de SAML 2.0 sobre el enlace HTTP-POST (falso)
-
requiresignedrequestquery: solicitud de SAML 2.0 sobre el enlace HTTP-Redirect (false)
-
requiresignedrequestsoap: solicitud de SAML 2.0 sobre el enlace de artefacto/SOAP (false)
-
requiresignedresponsepost: Respuesta de SAML 2.0 que no contiene una afirmación sobre el enlace HTTP-POST (false)
-
requiresignedresponsequery: la respuesta de SAML 2.0 no contiene una afirmación sobre el enlace HTTP-Redirect (false)
-
requiresignedresponsesoap: Respuesta de SAML 2.0 que no contiene una afirmación sobre el enlace de artefacto/SOAP (falso)
-
Nota importante: si se firma un mensaje entrante, OAM lo verifica y devuelve un error si falla la validación de firma, incluso si OAM no necesita que se firme ese tipo de mensaje.
Configuración
Supongamos que ya está en el entorno WLST y conectado mediante:
-
Introduzca el entorno WLST ejecutando:
$IAM_ORACLE_HOME/common/bin/wlst.sh
. -
Conéctese al servidor de administración de WLS:
connect()
. -
Navegue a la rama Domain Runtime:
domainRuntime()
.
SAML 2.0 AuthnRequest
Para configurar OAM para que requiera o no la firma de los mensajes entrantes de AuthnRequest, ejecute uno de los siguientes comandos:
-
Para configurar a nivel global, ejecute:
putBooleanProperty("/idpglobal/saml20requiresignedauthnrequest", "true/false")
- Defina el valor en true para que OAM requiera la firma de AuthnRequest entrante
Un ejemplo es:putBooleanProperty("/idpglobal/saml20requiresignedauthnrequest", "true")
- Defina el valor en true para que OAM requiera la firma de AuthnRequest entrante
-
Para configurar en un nivel de perfil de socio de SP de SAML 2.0, ejecute:
putBooleanProperty("/fedpartnerprofiles/PARTNER_PROFILE /requiresignedauthnrequest", "true/false")
- Sustituir PARTNER_PROFILE por un nombre de perfil de partner de SP de SAML 2.0
- Defina el valor en true para que OAM necesite que se firme AuthnRequest entrante. Un ejemplo es:
putBooleanProperty("/fedpartnerprofiles/saml20-sp-partner-profile /requiresignedauthnrequest", "true")
-
Para configurar en un nivel de partner de SP SAML 2.0, ejecute:
updatePartnerProperty("PARTNER", "sp", "requiresignedauthnrequest","true/false", "boolean")
- Sustituir PARTNER por un nombre de partner de SP de SAML 2.0
- Defina el valor en true para que OAM necesite que se firme AuthnRequest entrante. Un ejemplo es:
updatePartnerProperty("AcmeSP", "sp", "requiresignedauthnrequest", "false","boolean")
Afirmación SAML 1.1 contenida en un mensaje de respuesta
Para configurar OAM para que requiera o no la firma de las afirmaciones de SAML 1.1 entrantes, ejecute uno de los siguientes comandos:
- Para configurar a nivel global, ejecute:
putBooleanProperty("/spglobal/saml11requiresignedassertion", "true/false")
- Defina el valor en true para que OAM necesite que se firmen las afirmaciones entrantes de SAML 1.1. Un ejemplo es:
putBooleanProperty("/spglobal/saml11requiresignedassertion", "true")
- Defina el valor en true para que OAM necesite que se firmen las afirmaciones entrantes de SAML 1.1. Un ejemplo es:
- Para configurar en un nivel de perfil de partner SAML 1.1 IdP, ejecute:
putBooleanProperty("/fedpartnerprofiles/PARTNER_PROFILE/requiresignedassertion", "true/false")
- Sustituir PARTNER_PROFILE por un nombre de perfil de partner SAML 1.1 IdP
- Defina el valor en true para que OAM necesite que se firmen las afirmaciones entrantes de SAML 1.1. Un ejemplo es:
putBooleanProperty("/fedpartnerprofiles/saml11-idp-partner-profile /requiresignedassertion", "true")
- Para configurar a nivel de partner SAML 1.1 IdP, ejecute:
updatePartnerProperty("PARTNER", "idp", "requiresignedassertion", "true/false","boolean")
- Sustituir PARTNER por un nombre de partner SAML 1.1 IdP
- Defina el valor en true para que OAM necesite que se firmen las afirmaciones entrantes de SAML 1.1. Un ejemplo es:
updatePartnerProperty("AcmeSP", "sp", "requiresignedassertion", "false","boolean")
Afirmación de SAML 2.0 contenida en un mensaje de respuesta
Para configurar OAM para que requiera o no la firma de las afirmaciones de SAML 2.0 entrantes, ejecute uno de los siguientes comandos:
- Para configurar a nivel global, ejecute:
putBooleanProperty("/spglobal/saml20requiresignedassertion", "true/false")
- Defina el valor en true para que OAM necesite que se firmen las afirmaciones entrantes de SAML 2.0. Un ejemplo es:
putBooleanProperty("/spglobal/saml20requiresignedassertion", "true")
- Para configurar en un nivel de perfil de partner SAML 2.0 IdP, ejecute:
putBooleanProperty("/fedpartnerprofiles/PARTNER_PROFILE/requiresignedassertion", "true/false")
- Sustituir
PARTNER_PROFILE
por un nombre de perfil de partner SAML 2.0 IdP - Defina el valor en true para que OAM necesite que se firmen las afirmaciones entrantes de SAML 2.0. Un ejemplo es:
putBooleanProperty("/fedpartnerprofiles/saml20-idp-partner-profile /requiresignedassertion", "true")
- Para configurar a nivel de partner SAML 2.0 IdP, ejecute:
updatePartnerProperty("PARTNER", "idp", "requiresignedassertion", "true/false","boolean")
- Sustituir
PARTNER
por un nombre de partner IdP de SAML 2.0 - Defina el valor en true para que OAM necesite que se firmen las afirmaciones entrantes de SAML 2.0
Un ejemplo es:updatePartnerProperty("AcmeSP", "sp", "requiresignedassertion", "false","boolean")
Otra Configuración
Para configurar las propiedades definidas en los perfiles de socio SP/IdP anteriores, ejecute uno de los siguientes comandos:
- Para configurar en un nivel de perfil de socio, ejecute:
putBooleanProperty("/fedpartnerprofiles/PARTNER_PROFILE /PROPERTY_NAME", "true/false")
- Sustituir
PARTNER_PROFILE
por un nombre de perfil de partner - Sustituya
PROPERTY_NAME
por el nombre de la propiedad que se va a definir - Defina el valor en true o false. Un ejemplo es:
putBooleanProperty("/fedpartnerprofiles/saml20-idp-partner-profile /requiresignedrequestquery", "true")
- Sustituir
- Para configurar a nivel de partner, ejecute:
updatePartnerProperty("PARTNER", "PARTNER_TYPE", "PROPERTY_NAME","true/false", "boolean")
- Sustituir
PARTNER
por un nombre de socio - Sustituir
PARTNER_TYPE
por el tipo de partner especificado (idp o sp) - Sustituya
PROPERTY_NAME
por el nombre de la propiedad que se va a definir - Defina el valor en true o false. Un ejemplo es:
updatePartnerProperty("AcmeSP", "sp", "requiresignedrequestquery", "true","boolean")
- Sustituir
Metadatos
Al cambiar las propiedades saml20requiresignedauthnrequest o saml20requiresignedassertion a nivel global, se cambian los metadatos de SAML 2.0 generados por OAM, como:
-
El atributo
WantAuthnRequestsSigned
del elementoIDPSSODescriptor
se define según saml20requiresignedauthnrequest. -
El atributo
WantAssertionsSigned
del elementoSPSSODescriptor
se define según saml20requiresignedassertion.
Un ejemplo de metadatos de SAML 2.0 muestra estos dos atributos:
<md:EntityDescriptor ...>
<dsig:Signature>
...
</dsig:Signature>
<md:IDPSSODescriptor WantAuthnRequestsSigned="false" ...>
...
</md:IDPSSODescriptor>
<md:SPSSODescriptor AuthnRequestsSigned="true" WantAssertionsSigned="true"
...>
</md:SPSSODescriptor> </md:EntityDescriptor>
X.509 Certificado en el mensaje
OAM se puede configurar para enviar el certificado de firma X.509 en el mensaje XML SAML saliente enviado a través de los enlaces HTTP-POST o SOAP.
La propiedad booleana includecertinsignature
indica si el certificado se ha agregado o no al mensaje.
Para configurar OAM para que envíe el certificado de firma X.509 en el mensaje saliente, ejecute uno de los siguientes comandos para definir la propiedad booleana includecertinsignature
:
- Para configurar en un nivel de perfil de socio, ejecute:
putBooleanProperty("/fedpartnerprofiles/PARTNER_PROFILE/includecertinsignature", "true/false")
- Sustituir
PARTNER_PROFILE
por un nombre de perfil de partner - Defina el valor en true o false. Un ejemplo es:
putBooleanProperty("/fedpartnerprofiles/saml20-sp-partner-profile /includecertinsignature", "true")
- Sustituir
- Para configurar a nivel de partner, ejecute:
updatePartnerProperty("PARTNER", "PARTNER_TYPE", "includecertinsignature","true/false", "boolean")
- Sustituir
PARTNER
por un nombre de socio - Sustituir
PARTNER_TYPE
por el tipo de partner especificado (idp o sp) - Defina el valor en true o false. Un ejemplo es:
updatePartnerProperty("AcmeSP", "sp", "includecertinsignature", "true","boolean")
- Sustituir
Cifrado de SAML 2.0
El protocolo SAML 2.0 define una forma de cifrar varios datos en mensajes:
-
Afirmaciones
-
NameIDs (Fin de creación)
-
Atributos
OAM permite a un administrador indicar qué tipos de datos se deben cifrar.
Configuración de OOTB
A continuación se muestran los valores booleanos de OOTB que indican cuándo OAM debe cifrar los mensajes de SAML salientes (si es verdadero, OAM cifra los datos salientes):
-
Perfil de partner SAML 2.0 IdP
- sendencryptednameid: indica si NameID contenido en
LogoutRequest
messagesshould
se debe cifrar (falso)
- sendencryptednameid: indica si NameID contenido en
-
Perfil de socio de SP de SAML 2.0
-
sendencryptedattribute: indica si cada atributo incluido en un SAML
Assertionshould
se debe cifrar (falso) -
sendencryptednameid: indica si NameID contenido en
LogoutRequest
,Assertionmessages
se debe cifrar (falso)
-
Al crear un nuevo partner de SP, la configuración de dicho partner indica que IdP no debe cifrar la afirmación:
- sendencryptedassertion en la entrada de socio: indica si las afirmaciones se deben cifrar (falso)
Afirmación cifrada
Para configurar IdP para cifrar la afirmación saliente para un partner de SP a través de la consola de administración de OAM, realice los siguientes pasos:
- Vaya a la consola de administración de OAM:
http(s)://oam-admin-host:oam-adminport/oamconsole
. - Vaya a Federación de identidad, Administración de proveedores de identidad.
- Abra el socio del SP.
- En la sección Avanzado, active la casilla de control Cifrar afirmación.
- Haga clic en Guardar.
Descripción de la ilustración Access_Management.jpg
Para configurar el socio de SP mediante WLST, realice los siguientes pasos:
- Introduzca el entorno WLST ejecutando:
$IAM_ORACLE_HOME/common/bin/wlst.sh
. - Conéctese al servidor de administración de WLS:
connect()
. - Navegue a la rama Domain Runtime:
domainRuntime()
. - Ejecute el comando
updatePartnerProperty()
:updatePartnerProperty("PARTNER", "sp", "sendencryptedassertion", "true/false","boolean")
- Sustituya PARTNER por un nombre de socio.
- Defina el valor en true o false.
- Un ejemplo es:
updatePartnerProperty("AcmeSP", "sp", "sendencryptedassertion", "true","boolean")
- Salga del entorno WLST:
exit()
.
NameID/Atributos cifrados
Para configurar las propiedades, realice los siguientes pasos:
- Introduzca el entorno WLST ejecutando:
$IAM_ORACLE_HOME/common/bin/wlst.sh
. - Conéctese al servidor de administración de WLS:
connect()
. - Navegue a la rama Domain Runtime:
domainRuntime()
. - Ejecute uno de los comandos siguientes:
- Para configurar en un nivel de perfil de socio, ejecute:
putBooleanProperty("/fedpartnerprofiles/PARTNER_PROFILE/PROPERTY_NAME", "true/false")
- Sustituya
PARTNER_PROFILE
por un nombre de perfil de partner. - Sustituya
PROPERTY_NAME
por el nombre de la propiedad que se va a definir. - Defina el valor en true o false.
- Un ejemplo es:
putBooleanProperty("/fedpartnerprofiles/saml20-sp-partner-profile/sendencryptedattribute", "true")
- Sustituya
- Para configurar a nivel de partner, ejecute:
updatePartnerProperty("PARTNER", "PARTNER_TYPE", "PROPERTY_NAME","true/false", "boolean")
- Sustituya
PARTNER
por un nombre de socio. - Sustituya
PARTNER_TYPE
por el tipo de partner especificado (idp o sp). - Sustituya
PROPERTY_NAME
por el nombre de la propiedad que se va a definir. - Defina el valor en true o false.
- Un ejemplo es:
updatePartnerProperty("AcmeSP", "sp", "sendencryptedattribute", "true","boolean")
- Sustituya
- Para configurar en un nivel de perfil de socio, ejecute:
- Salga del entorno WLST:
exit()
algoritmo de cifrado
El algoritmo de cifrado se puede definir en el nivel Socio o Perfil de socio, definiendo la propiedad de cadena defaultencryptionmethod
en uno de los siguientes valores:
-
http://www.w3.org/2001/04/xmlenc#aes128-cbc para AES-128 CBC
-
http://www.w3.org/2001/04/xmlenc#aes192-cbc para AES-192 CBC
-
http://www.w3.org/2001/04/xmlenc#aes256-cbc para AES-256 CBC
-
http://www.w3.org/2001/04/xmlenc#tripledes-cbc para CBC 3DES
Por defecto, esa propiedad está definida en http://www.w3.org/2001/04/xmlenc#aes128-cbc (AES-128 CBC).
Para configurar la propiedad defaultencryptionmethod
, realice los siguientes pasos:
-
Introduzca el entorno WLST ejecutando:
$IAM_ORACLE_HOME/common/bin/wlst.sh
. -
Conéctese al servidor de administración de WLS:
connect()
. -
Navegue a la rama Domain Runtime:
domainRuntime()
. -
Ejecute uno de los comandos siguientes:
-
Para configurar en un nivel de perfil de socio, ejecute:
putStringProperty("/fedpartnerprofiles/PARTNER_PROFILE/defaultencryptionmethod", "ALGORITHM")
(Fin de creación)-
Sustituya
PARTNER_PROFILE
por un nombre de perfil de partner. -
Sustituya
ALGORITHM
por uno de los valores de algoritmo anteriores. -
Un ejemplo es:
putStringProperty("/fedpartnerprofiles/saml20-sp-partner-profile/defaultencryptionmethod", "http://www.w3.org/2001/04/xmlenc#tripledes-cbc")
(Fin de creación) -
-
Para configurar a nivel de socio, ejecute:
updatePartnerProperty("PARTNER", "PARTNER_TYPE","defaultencryptionmethod", "ALGORITHM", "string")
(Fin de creación)-
Sustituya
PARTNER
por un nombre de socio. -
Sustituya
PARTNER_TYPE
por el tipo de partner especificado (idp o sp). -
Sustituya
ALGORITHM
por uno de los valores de algoritmo anteriores. -
Un ejemplo es:
updatePartnerProperty("AcmeSP", "sp", "defaultencryptionmethod","http://www.w3.org/2001/04/xmlenc#tripledes-cbc", "string")
(Fin de creación) -
-
-
Salga del entorno WLST:
exit()
Más recursos de aprendizaje
Explore otros laboratorios en docs.oracle.com/learn o acceda a más contenido de aprendizaje gratuito en el canal YouTube de Oracle Learning. Además, visite education.oracle.com/learning-explorer para convertirse en un explorador de Oracle Learning.
Para obtener documentación sobre el producto, visite Oracle Help Center.