Configuración de AuthnRequest en OAM y SP

En este artículo se muestran los distintos valores de OAM/SP que afectan al modo en que se crea un mensaje AuthnRequest en OAM en un flujo SSO de federación. Un SP utiliza el mensaje AuthnRequest para iniciar una operación SSO de federación e indicar a IdP cómo se debe ejecutar la operación:

Protocolos

Los protocolos SAML 2.0, SAML 1.1 y OpenID 2.0 definen diferentes elementos de mensaje y reglas que permiten a un administrador influir en los flujos de SSO de federación de diferentes maneras, cuando el SP dispara una operación de SSO:

SAML 2.0

OAM/SP permite la personalización del mensaje AuthnRequest de SAML 2.0 para los siguientes elementos:

ForceAuthn:

IsPassive (Fin de creación)

RequestedAuthnContext (Fin de creación)

NameIDPolicy (Fin de creación)

ProtocolBinding (Fin de creación)

OAM/SP también permite al administrador configurar el servidor para:

SAML 1.1

Las especificaciones de SAML 1.1 no definen un mensaje para que el SP envíe a IdP cuando se inicie una operación de SSO de federación. Como tal, no hay capacidad para configurar OAM/SP sobre cómo afectar al inicio del flujo SSO de federación.

OpenID 2.0

OpenID 2.0 define varias extensiones que puede utilizar el SP/RP para afectar al modo en que se realiza la operación de SSO de federación:

Solicitud OpenID:

Extensión de PAPE:

preferred_auth_policies (Fin de creación)

Extensión de IU

Preferencia de Idioma

Icono:

ForceAuthn y IsPassive

Comando WLST

OAM/SP proporciona el comando WLST configureIdPAuthnRequest() para definir:

ForceAuthn como booleano:

IsPassive como booleano:

Probar

En esta prueba, OAM/SP está integrado con un partner SAML 2.0 IdP remoto, con la configuración de OOTB. Según esta configuración, cuando OAM/SP inicia un flujo de SSO de federación, se genera el siguiente SAML 2.0 AuthnRequest:

<samlp:AuthnRequest
ProtocolBinding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-
POST" ID="id-
E4BOT7lwbYK56lO57dBaqGUFq01WJSjAHiSR60Q4"
Version="2.0" IssueInstant="2014-04-01T21:39:14Z"
Destination="https://acme.com/saml20/sso">
   <saml:Issuer
Format="urn:oasis:names:tc:SAML:2.0:nameidformat:entity">https://sp.com
/oam/fed</saml:Issuer>
   <samlp:NameIDPolicy AllowCreate="true"/> </samlp:AuthnRequest>

Vamos a configurar OAM/SP para ese partner IdP, de modo que el SP necesite IdP para volver a confirmar al usuario, incluso si el usuario ya está autenticado:

  1. Introduzca el entorno WLST ejecutando:$IAM_ORACLE_HOME/common/bin/wlst.sh
  2. Conéctese al servidor de administración de WLS: connect()
  3. Navegue a la rama Domain Runtime: domainRuntime()
  4. Ejecute el comando configureIdPAuthnRequest(): configureIdPAuthnRequest(partner="AcmeIdP", forceAuthn="true")
  5. Salga del entorno WLST: exit()

Después de los cambios, se genera el siguiente SAML 2.0 AuthnRequest:

<samlp:AuthnRequest ForceAuthn="true" ProtocolBinding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP- POST" ID="id- E4BOT7lwbYK56lO57dBaqGUFq01WJSjAHiSR60Q4" Version="2.0" IssueInstant="2014-04-01T21:39:14Z" Destination="https://acme.com/saml20/sso">
   <saml:Issuer Format="urn:oasis:names:tc:SAML:2.0:nameidformat:entity">https://sp.com/oam/fed</saml:Issuer>
   <samlp:NameIDPolicy AllowCreate="true"/> </samlp:AuthnRequest>

Para mostrar o suprimir la configuración de ForceAuthn/IsPassive, realice las siguientes operaciones:

  1. Introduzca el entorno WLST ejecutando: $IAM_ORACLE_HOME/common/bin/wlst.sh
  2. Conéctese al servidor de administración de WLS: connect()
  3. Navegue a la rama Domain Runtime: domainRuntime()
  4. Ejecute el comando configureIdPAuthnRequest() para mostrar la configuración de ForceAuthn/IsPassive en el partner configureIdPAuthnRequest(partner="AcmeIdP", displayOnly="true")
  5. Para suprimir la configuración de ForceAuthn/IsPassive del partner configureIdPAuthnRequest(partner="AcmeIdP", delete="true")
  6. Salga del entorno WLST: exit()

Método de autorización federal solicitado

En el artículo "Solicitudes de método de autenticación alimentada en OAM/SP", se ha explicado cómo se podría configurar OAM/SP para solicitar un método de autenticación de federación específico desde IdP al iniciar una operación de SSO de federación, definiendo elementos en el mensaje de solicitud de SSO.

Comando WLST

Los comandos WLST de OAM que se pueden utilizar son:

Esto se aplica a los protocolos SAML 2.0 y OpenID 2.0. Consulte el artículo "Fed Authentication Method Requests in OAM/SP" para obtener más información.

Probar

En esta prueba, OAM/SP está integrado con un partner SAML 2.0 IdP remoto, con la configuración de OOTB. Según esta configuración, cuando OAM/SP inicia un flujo de SSO de federación, se genera el siguiente SAML 2.0 AuthnRequest:

<samlp:AuthnRequest
ProtocolBinding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-
POST" ID="id-
E4BOT7lwbYK56lO57dBaqGUFq01WJSjAHiSR60Q4"
Version="2.0" IssueInstant="2014-04-01T21:39:14Z"
Destination="https://acme.com/saml20/sso">
   <saml:Issuer
Format="urn:oasis:names:tc:SAML:2.0:nameidformat:entity">https://sp.com
/oam/fed</saml:Issuer>
   <samlp:NameIDPolicy AllowCreate="true"/> </samlp:AuthnRequest>

Vamos a configurar OAM/SP para ese partner IdP, de modo que el SP solicite a IdP que utilice un mecanismo asignado al método de autenticación de federación urn:oasis:names:tc:SAML:2.0:ac:classes:X509 para autenticar al usuario:

  1. Introduzca el entorno WLST ejecutando: $IAM_ORACLE_HOME/common/bin/wlst.sh
  2. Conéctese al servidor de administración de WLS: connect()
  3. Navegue a la rama Domain Runtime: domainRuntime()
  4. Ejecute el comando setIdPPartnerRequestAuthnMethod(): setIdPPartnerRequestAuthnMethod("AcmeIdP", "urn:oasis:names:tc:SAML:2.0:ac:classes:X509")
  5. Salga del entorno WLST: exit()

Después de los cambios, se genera el siguiente SAML 2.0 AuthnRequest:

<samlp:AuthnRequest
ProtocolBinding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-
POST" ID="id-
E4BOT7lwbYK56lO57dBaqGUFq01WJSjAHiSR60Q4"
Version="2.0" IssueInstant="2014-04-01T21:39:14Z"
Destination="https://acme.com/saml20/sso">
   <saml:Issuer
Format="urn:oasis:names:tc:SAML:2.0:nameidformat:entity">https://sp.com /oam/fed</saml:Issuer>
   <samlp:NameIDPolicy AllowCreate="true"/>
   <samlp:RequestedAuthnContext
Comparison="minimum">
      <saml:AuthnContextClassRef xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion">
         urn:oasis:names:tc:SAML:2.0:ac:classes:X509
      </saml:AuthnContextClassRef>
   </samlp:RequestedAuthnContext> </samlp:AuthnRequest>

Formato NameID

El protocolo SAML 2.0 permite al SP solicitar desde IdP un formato NameID específico que se utilizará cuando IdP emita la afirmación.

Nota: SAML 1.1 y OpenID 2.0 no proporcionan dicho mecanismo

Configuración de OAM

El administrador puede configurar OAM/SP para que solicite un formato NameID en SAML 2.0 AuthnRequest mediante:

La Consola de Administración de OAM

Para configurar el formato solicitado NameID mediante la consola de administración de OAM, realice los siguientes pasos:

  1. Vaya a la consola de administración de OAM: http(s)://oam-admin-host:oam-adminport/oamconsole
  2. Vaya a Identity Federation, Administración de proveedores de servicios.
  3. Abra el partner IdP que desea modificar
  4. En el cuadro desplegable Formato de solicitud de autenticación NameID con uno de los valores:
    • None: el formato NameID está definido por defecto
    • Email Address: el formato NameID se definirá en urn:oasis:names:tc:SAML:1.1:nameidformat:emailAddress
    • X.509 Subject: el formato NameID se definirá en urn:oasis:names:tc:SAML:1.1:nameidformat:X509SubjectName
    • Windows Name Qualifier: el formato NameID se definirá en urn:oasis:names:tc:SAML:1.1:nameidformat:WindowsDomainQualifiedName
    • Kerberos: el formato NameID se definirá en urn:oasis:names:tc:SAML:2.0:nameidformat:kerberos
    • Transient: el formato NameID se definirá en urn:oasis:names:tc:SAML:2.0:nameidformat:transient
    • Unspecified: el formato NameID se definirá en urn:oasis:names:tc:SAML:1.1:nameidformat:unspecified
    • Custom: en este caso, aparece un campo que permite al administrador indicar el formato personalizado NameID que se va a utilizar. El formato NameID se definirá en el formato especificado
    • Persistent: The NameID format will be set urn:oasis:names:tc:SAML:2.0:nameidformat:persistent we selected Email Address` en este ejemplo
  5. Haga clic en Guardar

Descripción de la ilustración OAM_Administration_Console.jpg

Descripción de la ilustración OAM Administration Console.jpg

Comando WLST

Para configurar el formato NameID solicitado mediante el comando WLST setIdPPartnerNameIDFormat() de OAM, realice los siguientes pasos:

  1. Introduzca el entorno WLST ejecutando: $IAM_ORACLE_HOME/common/bin/wlst.sh
  2. Conéctese al servidor de administración de WLS: connect()
  3. Navegue a la rama Domain Runtime: domainRuntime()
  4. Ejecute el comando setIdPPartnerNameIDFormat(): setIdPPartnerNameIDFormat("PARTNER", "FORMAT", customFormat="CUSTOM")
    • Sustituya PARTNER por el nombre de partner IdP
    • Sustituya FORMAT por una de las siguientes opciones:
    • orafed-none: el formato NameID se definirá por defecto
    • orafed-emailaddress: el formato NameID se definirá en urn:oasis:names:tc:SAML:1.1:nameidformat:emailAddress
    • orafed-x509: el formato NameID se definirá en urn:oasis:names:tc:SAML:1.1:nameidformat:X509SubjectName
    • orafed-windowsnamequalifier: el formato NameID se definirá en urn:oasis:names:tc:SAML:1.1:nameidformat:WindowsDomainQualifiedName
    • orafed-kerberos: el formato NameID se definirá en urn:oasis:names:tc:SAML:2.0:nameidformat:Kerberos
    • orafed-transient: el formato NameID se definirá en urn:oasis:names:tc:SAML:2.0:nameidformat:transient
    • orafed-unspecified: el formato NameID se definirá en urn:oasis:names:tc:SAML:1.1:nameidformat:unspecified
    • orafed-custom: en este caso, aparece un campo que permite al administrador indicar el formato personalizado NameID que se va a utilizar. El formato NameID se definirá en el formato especificado
      • orafed-persistent: el formato NameID se definirá en urn:oasis:names:tc:SAML:2.0:nameidformat:persistent
      • customFormat se tendrá que definir si FORMAT se define en orafed-custom Un ejemplo es: setIdPPartnerNameIDFormat("AcmeIdP", "orafed-emailaddress")
  5. Salga del entorno WLST: exit()

Probar

En esta prueba, OAM/SP está integrado con un partner SAML 2.0 IdP remoto, con la configuración de OOTB. Según esta configuración, cuando OAM/SP inicia un flujo de SSO de federación, se genera el siguiente SAML 2.0 AuthnRequest:

<samlp:AuthnRequest
ProtocolBinding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-
POST" ID="id-
E4BOT7lwbYK56lO57dBaqGUFq01WJSjAHiSR60Q4"
Version="2.0" IssueInstant="2014-04-01T21:39:14Z"
Destination="https://acme.com/saml20/sso">
   <saml:Issuer
Format="urn:oasis:names:tc:SAML:2.0:nameidformat:entity">https://sp.com
/oam/fed</saml:Issuer>
<samlp:NameIDPolicy AllowCreate="true"/>
</samlp:AuthnRequest>

Después de los cambios realizados mediante la consola de administración de OAM o mediante el comando WLST setIdPPartnerNameIDFormat() de OAM donde se solicita la dirección de correo electrónico como formato NameID, se genera el siguiente SAML 2.0 AuthnRequest:

<samlp:AuthnRequest ForceAuthn="false"
IsPassive="false"
ProtocolBinding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-
POST" ID="id-
E4BOT7lwbYK56lO57dBaqGUFq01WJSjAHiSR60Q4"
Version="2.0" IssueInstant="2014-04-01T21:39:14Z"
Destination="https://acme.com/saml20/sso">
   <saml:Issuer
Format="urn:oasis:names:tc:SAML:2.0:nameidformat:entity">https://sp.com
/oam/fed</saml:Issuer>
<samlp:NameIDPolicy
Format="urn:oasis:names:tc:SAML:1.1:nameidformat:emailAddress" AllowCreate="true"/> </samlp:AuthnRequest>

Enlace de protocolos

Las especificaciones de SAML 2.0 definen una forma para que el SP solicite qué enlace debe utilizar IdP para redirigir al usuario al SP con la afirmación de SAML 2.0: el atributo ProtocolBinding indica el enlace que debe utilizar IdP. Se define en:

Las especificaciones de SAML 2.0 también definen diferentes formas de redirigir al usuario del SP a IdP con el mensaje AuthnRequest de SAML 2.0, ya que el SP puede enviar el mensaje:

Configuración de OAM

OAM se puede configurar:

Nota: el enlace para enviar el mensaje AuthnRequest de SAML 2.0 también se utilizará para enviar los mensajes LogoutRequest y LogoutResponse de SAML 2.0.

La Consola de Administración de OAM

Para configurar SSO Response/Assertion Binding mediante la consola de administración de OAM, realice los siguientes pasos:

  1. Vaya a la consola de administración de OAM: http(s)://oam-admin-host:oam-adminport/oamconsole.
  2. Vaya a Identity Federation, Service Provider Administration.
  3. Abra el partner IdP que desea modificar.
  4. Active la casilla "Enlace de respuesta HTTP POST SSO" para solicitar a IdP que devuelva la respuesta SSO a través de HTTP POST; de lo contrario, desactívela para solicitar el artefacto.
  5. Haga clic en Guardar.

Descripción de la ilustración SSO_Response_Assertion_Configuration.jpg

Comando WLST

Para configurar el enlace de respuesta/aserción SSO, así como el enlace AuthnRequest mediante el comando WLST configureSAMLBinding() de OAM, realice los siguientes pasos:

  1. Introduzca el entorno WLST ejecutando: $IAM_ORACLE_HOME/common/bin/wlst.sh
  2. Conéctese al servidor de administración de WLS: connect()
  3. Navegue a la rama Domain Runtime: domainRuntime()
  4. Ejecute el comando configureSAMLBinding(): configureSAMLBinding("PARTNER", "PARTNER_TYPE", binding, ssoResponseBinding="httppost")
  5. Sustituya PARTNER por el nombre de socio.
  6. Sustituya PARTNER_TYPE por el tipo de partner (idp o sp)
  7. Sustituya el enlace por el enlace que se va a utilizar para enviar los mensajes AuthnRequest y LogoutRequest/LogoutResponse (debe ser httpredirect en la mayoría de los casos; valor por defecto)
  8. Especifique opcionalmente ssoResponseBinding para indicar cómo se debe devolver la afirmación SSO
  9. Salga del entorno WLST: exit()

Probar

En esta prueba, OAM/SP está integrado con un partner SAML 2.0 IdP remoto, con la configuración de OOTB que solicita HTTP-POST de IdP para enviar la afirmación de SSO. Según esta configuración, cuando OAM/SP inicia un flujo de SSO de federación, se genera el siguiente SAML 2.0 AuthnRequest:

<samlp:AuthnRequest
ProtocolBinding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-
POST" ID="id-
E4BOT7lwbYK56lO57dBaqGUFq01WJSjAHiSR60Q4"
Version="2.0" IssueInstant="2014-04-01T21:39:14Z"
Destination="https://acme.com/saml20/sso">
   <saml:Issuer
Format="urn:oasis:names:tc:SAML:2.0:nameidformat:entity">https://sp.com
/oam/fed</saml:Issuer>
   <samlp:NameIDPolicy AllowCreate="true"/> </samlp:AuthnRequest>

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.