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:
- Cómo se debe desafiar al usuario en IdP
- Si el usuario debe o no ser consultado en IdP, incluso si ya existe una sesión en IdP para este usuario
- ¿Qué formato
NameIDse debe solicitar en la afirmación de SAML? - Qué enlace (Artifact o HTTP-POST) se debe solicitar desde IdP para enviar la afirmación
- Qué perfil debe utilizar OAM/SP para enviar el mensaje AuthnRequest
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 permite una amplia personalización mediante el mensaje AuthnRequest
- SAML 1.1 no permite ninguna personalización, ya que las especificaciones no definen un mensaje de solicitud de autenticación
- OpenID 2.0 permite cierta personalización, principalmente a través de las extensiones OpenID 2.0 como PAPE o UI
SAML 2.0
OAM/SP permite la personalización del mensaje AuthnRequest de SAML 2.0 para los siguientes elementos:
ForceAuthn:
- Booleano que indica si IdP debe forzar o no al usuario para que vuelva a realizar la autenticación, incluso si el usuario aún tiene una sesión válida
- Por defecto se define en false
IsPassive (Fin de creación)
- Valor booleano que indica si IdP puede interactuar con el usuario como parte de la operación SSO de federación.
- Si es falso, la operación SSO de federación puede provocar un fallo con el código de error NoPassive, porque IdP no puede identificar al usuario
- Por defecto se define en false
RequestedAuthnContext (Fin de creación)
- Elemento que indica cómo se debe comprobar el usuario en IdP
- Si el SP solicita un método de autenticación de federación desconocido para IdP o para el que IdP no está configurado, el flujo de SSO de federación da como resultado un fallo con el código de error
NoAuthnContext - Falta por defecto
NameIDPolicy (Fin de creación)
- Elemento que indica el formato
NameIDque IdP debe incluir en la afirmación de SAML - Si el SP solicita un formato
NameIDdesconocido para IdP o para el que IdP no está configurado, el flujo de SSO de federación da como resultado un fallo con el código de errorInvalidNameIDPolicy - Si falta, IdP generalmente utiliza el formato NameID por defecto configurado para este partner de SP en IdP
- Falta por defecto
ProtocolBinding (Fin de creación)
- Elemento que indica qué enlace de SAML debe utilizar IdP para redirigir al usuario al SP con la afirmación de SAML
- Definir en artefacto o HTTP-POST
- Por defecto, se define en HTTP-POST
OAM/SP también permite al administrador configurar el servidor para:
- Defina qué enlace debe utilizar OAM/SP para redirigir al usuario a IdP con el mensaje AuthnRequest de SAML 2.0:
- Redireccionamiento o HTTP-POST
- Por defecto, se define en Redirigir
- Defina qué enlace debe utilizar OAM/SP para redirigir al usuario a IdP durante la desconexión con mensajes de desconexión de SAML 2.0:
- Redireccionamiento o HTTP-POST
- Por defecto, se define en Redirigir
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:
mode: cadena que indica si el IdP/OP puede interactuar visualmente con el usuariocheckid_immediateno permite que el IdP/OP interactúe con el usuariocheckid_setuppermite la interacción del usuario- Por defecto, se define en
checkid_setup
Extensión de PAPE:
max_auth_age: entero que indica en segundos la cantidad máxima de tiempo desde que el usuario se autenticó en IdP. SiMaxAuthnAgees mayor que el tiempo transcurrido desde la última vez que el usuario se autenticó en IdP, se debe volver a contactar con el usuario.- OAM/SP define este atributo en 0 si el administrador ha configurado
ForceAuthnen true; de lo contrario, este atributo no se definirá - Falta valor por defecto
preferred_auth_policies (Fin de creación)
- Contiene un Método de Autenticación de Federación
- Elemento que indica cómo se debe comprobar el usuario en IdP
- Falta por defecto
- Solo se especifica en la solicitud OpenID si el IdP/OP admite PAPE en XRDS, si se utiliza la detección OpenID.
Extensión de IU
- Modo emergente
- Valor booleano que indica que el modo emergente está activado para el SSO de federación
- Falta por defecto
Preferencia de Idioma
- Cadena que contiene el idioma preferido, definido según las preferencias de idioma del explorador.
- Falta por defecto
Icono:
- Booleano que indica si la función de ícono está activada. En ese caso, el IdP/OP examina el XRDS del SP/RP para determinar cómo recuperar el ícono.
- Falta por defecto
- Solo se especifica en la solicitud OpenID si el IdP/OP admite la extensión de interfaz de usuario en XRDS, si se utiliza la detección OpenID.
ForceAuthn y IsPassive
Comando WLST
OAM/SP proporciona el comando WLST configureIdPAuthnRequest() para definir:
ForceAuthn como booleano:
- En un AuthnRequest de SAML 2.0, el campo
ForceAuthnestá definido en true o false - En una solicitud OpenID 2.0, si
ForceAuthnen la configuración se ha definido en true, el campomax_auth_agede la solicitud PAPE se define en 0; de lo contrario,max_auth_ageno se definirá
IsPassive como booleano:
- En un AuthnRequest de SAML 2.0, el campo
IsPassiveestá definido en true o false - En una solicitud OpenID 2.0, si
IsPassiveen la configuración se ha definido en true, el campo de modo de la solicitud OpenID se define encheckid_immediate; de lo contrario, se define encheckid_setup
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:
- 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 configureIdPAuthnRequest():
configureIdPAuthnRequest(partner="AcmeIdP", forceAuthn="true") - 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:
- 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
configureIdPAuthnRequest()para mostrar la configuración de ForceAuthn/IsPassive en el partnerconfigureIdPAuthnRequest(partner="AcmeIdP", displayOnly="true") - Para suprimir la configuración de ForceAuthn/IsPassive del partner
configureIdPAuthnRequest(partner="AcmeIdP", delete="true") - 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:
-
setIdPPartnerProfileRequestAuthnMethod(), que configura el método de autenticación de federación solicitado en un perfil de partner IdP específico, y acepta los siguientes parámetros:partnerProfile: nombre del perfil de partner IdPauthnMethod: método de autenticación de federación que se va a solicitardisplayOnly: parámetro opcional que indica si el método debe mostrar el método de autenticación de federación solicitado actual en lugar de definirlodelete: parámetro opcional que indica si el método debe suprimir el método de autenticación de federación solicitado actual en lugar de definirlo
-
setIdPPartnerRequestAuthnMethod(), que configura la entrada de partner IdP especificada con el método de autenticación de federación solicitado, y acepta los siguientes parámetros: -
partner: nombre del partner IdP -
authnMethod: método de autenticación de federación que se va a solicitar -
displayOnly: parámetro opcional que indica si el método debe mostrar el método de autenticación de federación solicitado actual en lugar de definirlo -
delete: parámetro opcional que indica si el método debe suprimir el método de autenticación de federación solicitado actual en lugar de definirlo
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:
- 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
setIdPPartnerRequestAuthnMethod():setIdPPartnerRequestAuthnMethod("AcmeIdP", "urn:oasis:names:tc:SAML:2.0:ac:classes:X509") - 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, en la entrada de partner IdP
- Comando WLST
setIdPPartnerNameIDFormat()de OAM que modifica la configuración del partner IdP
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:
- Vaya a la consola de administración de OAM:
http(s)://oam-admin-host:oam-adminport/oamconsole - Vaya a Identity Federation, Administración de proveedores de servicios.
- Abra el partner IdP que desea modificar
- En el cuadro desplegable Formato de solicitud de autenticación
NameIDcon uno de los valores:None: el formatoNameIDestá definido por defectoEmail Address: el formatoNameIDse definirá enurn:oasis:names:tc:SAML:1.1:nameidformat:emailAddressX.509 Subject: el formatoNameIDse definirá enurn:oasis:names:tc:SAML:1.1:nameidformat:X509SubjectNameWindows Name Qualifier: el formatoNameIDse definirá enurn:oasis:names:tc:SAML:1.1:nameidformat:WindowsDomainQualifiedNameKerberos: el formatoNameIDse definirá enurn:oasis:names:tc:SAML:2.0:nameidformat:kerberosTransient: el formatoNameIDse definirá enurn:oasis:names:tc:SAML:2.0:nameidformat:transientUnspecified: el formatoNameIDse definirá enurn:oasis:names:tc:SAML:1.1:nameidformat:unspecifiedCustom: en este caso, aparece un campo que permite al administrador indicar el formato personalizadoNameIDque se va a utilizar. El formatoNameIDse definirá en el formato especificado- Persistent
: TheNameIDformat will be seturn:oasis:names:tc:SAML:2.0:nameidformat:persistentwe selectedEmail Address` en este ejemplo
- 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:
- 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 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 defectoorafed-emailaddress: el formato NameID se definirá enurn:oasis:names:tc:SAML:1.1:nameidformat:emailAddressorafed-x509: el formato NameID se definirá enurn:oasis:names:tc:SAML:1.1:nameidformat:X509SubjectNameorafed-windowsnamequalifier: el formato NameID se definirá enurn:oasis:names:tc:SAML:1.1:nameidformat:WindowsDomainQualifiedNameorafed-kerberos: el formato NameID se definirá enurn:oasis:names:tc:SAML:2.0:nameidformat:Kerberosorafed-transient: el formato NameID se definirá enurn:oasis:names:tc:SAML:2.0:nameidformat:transientorafed-unspecified: el formato NameID se definirá enurn:oasis:names:tc:SAML:1.1:nameidformat:unspecifiedorafed-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 especificadoorafed-persistent: el formato NameID se definirá enurn:oasis:names:tc:SAML:2.0:nameidformat:persistentcustomFormatse tendrá que definir si FORMAT se define enorafed-customUn ejemplo es:setIdPPartnerNameIDFormat("AcmeIdP", "orafed-emailaddress")
- 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:
urn:oasis:names:tc:SAML:2.0:bindings:HTTPPOSTpara HTTP-POST- O bien
urn:oasis:names:tc:SAML:2.0:bindings:Artifactpara artefacto
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:
- Mediante redirección HTTP
- O HTTP POST
- (Teóricamente se pueden utilizar otros enlaces, como el artefacto, pero no se utilizan en la práctica).
Configuración de OAM
OAM se puede configurar:
- Mediante la consola de administración de OAM o el comando WLST
configureSAMLBinding()de OAM para definir el enlace de respuesta de afirmación que se va a utilizar - Mediante el comando WLST
configureSAMLBinding()de OAM para indicar cómo se debe enviar el mensaje AuthnRequest de SAML
Nota: el enlace para enviar el mensaje AuthnRequest de SAML 2.0 también se utilizará para enviar los mensajes
LogoutRequestyLogoutResponsede 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:
- Vaya a la consola de administración de OAM:
http(s)://oam-admin-host:oam-adminport/oamconsole. - Vaya a Identity Federation, Service Provider Administration.
- Abra el partner IdP que desea modificar.
- 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.
- 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:
- 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
configureSAMLBinding():configureSAMLBinding("PARTNER", "PARTNER_TYPE", binding, ssoResponseBinding="httppost") - Sustituya PARTNER por el nombre de socio.
- Sustituya PARTNER_TYPE por el tipo de partner (idp o sp)
- 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) httppostpara el enlace HTTP-POSThttpredirectpara el enlace HTTP-Redirect- Especifique opcionalmente
ssoResponseBindingpara indicar cómo se debe devolver la afirmación SSO httppostpara el enlace HTTP-POSTartifactforpara el enlace de artefacto Un ejemplo es:configureSAMLBinding("AcmeIdP", "idp", "httpredirect", ssoResponseBinding="httppost")- 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.
AuthnRequest Settings in OAM and SP
F59885-01
September 2022
Copyright © 2022, Oracle and/or its affiliates.