Métodos de Autenticación de Fed en OAM y IdP

Este artículo trata sobre cómo se puede configurar IdP para asignar métodos de autenticación de federación a esquemas de autenticación de OAM:

Visión general

Los distintos protocolos de federación admiten mecanismos que permiten a los socios intercambiar información sobre:

Cuando un partner de SP remoto redirige al usuario a IdP para SSO de federación, el mensaje puede contener datos que soliciten cómo IdP debe desafiar al usuario: se trata como el método de autenticación de federación solicitado.

IdP debe asignar el método de autenticación de federación solicitado a un esquema de autenticación local y, a continuación, llamar a OAM para la autenticación/recomprobación de usuario con el esquema de autenticación asignado. OAM autentica al usuario si es necesario con el esquema especificado por IdP.

Del mismo modo, cuando un IdP emite una respuesta SSO, la mayor parte del tiempo debe incluir un identificador que represente cómo se ha comprobado al usuario: se trata como el método de autenticación de federación.

Cuando IdP emite una afirmación, evalúa el esquema de autenticación con el que OAM identificó al usuario:

Asignaciones

En IdP, la asignación entre métodos de autenticación de federación y esquemas de autenticación tiene las siguientes reglas:

Examinemos el siguiente ejemplo y los distintos casos de uso, según el protocolo SAML 2.0:

Asignaciones definidas como:

Casos de uso:

Configuración

La asignación de métodos de autenticación de federación a esquemas de autenticación de OAM depende del protocolo, ya que los métodos se definen en los distintos protocolos (SAML 2.0, SAML 1.1, OpenID 2.0).

Como tal, los comandos de WLST para definir esas asignaciones implican:

Nota: Es importante tener en cuenta que si un partner de SP está configurado para definir una o más asignaciones de método de autenticación de federación a esquema de autenticación de OAM, se ignoran todas las asignaciones de2ned del perfil de partner de SP.

Esquema de Autenticación

Durante SSO de federación, IdP reenvía internamente el usuario a OAM para autenticación/verificación y especifica el esquema de autenticación que se va a utilizar.

OAM determina si un usuario debe ser desafiado:

Por lo tanto, aunque un SP solicite que se utilice un método de autenticación de federación específico para desafiar al usuario, si ese método está asignado a un esquema de autenticación y en tiempo de ejecución OAM considera que el usuario no necesita ser desafiado con ese esquema (porque el usuario ya está autenticado, la sesión no ha sufrido un timeout y el nivel de autenticación de sesión es igual o superior al del esquema de autenticación especificado), el arco no da como resultado una operación de comprobación.

Protocolos

SAML 2.0

Las especificaciones de SAML 2.0 definen los siguientes métodos de autenticación de federación para flujos de SAML 2.0:

Inicialmente, IdP tiene las siguientes asignaciones para el protocolo SAML 2.0:

Un ejemplo de un mensaje AuthnRequest enviado por un SP a IdP con el SP que solicita un método de autenticación de federación específico que se utilizará para desafiar al usuario será:

<samlp:AuthnRequest xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol"
Destination="https://idp.com/oamfed/idp/samlv20" ID="id-8bWn
A9o4aoMl3Nhx1DuPOOjawc-" IssueInstant="2014-03-21T20:51:11Z" Version="2.0">
  <saml:Issuer ...>https://acme.com/sp</saml:Issuer>
  <samlp:NameIDPolicy AllowCreate="false"
Format="urn:oasis:names:tc:SAML:1.1:nameid-format:unspeciGed"/>   <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:PasswordProtectedTransport
</saml:AuthnContextClassRef>
  </samlp:RequestedAuthnContext>
</samlp:AuthnRequest>

Un ejemplo de afirmación emitida por IdP será:

<samlp:Response ...>
    <saml:Issuer ...>https://idp.com/oam/fed</saml:Issuer>
    <samlp:Status>
        <samlp:StatusCode Value="urn:oasis:names:tc:SAML:2.0:status:Success"/>
    </samlp:Status>
    <saml:Assertion ...>
        <saml:Issuer ...>https://idp.com/oam/fed</saml:Issuer>
        <dsig:Signature>
            ...
        </dsig:Signature>
        <saml:Subject>
            <saml:NameID ...>bob@oracle.com</saml:NameID>
            <saml:SubjectConGrmation Method="urn:oasis:names:tc:SAML:2.0:cm:bearer">
                <saml:SubjectConGrmationData .../>
            </saml:SubjectConGrmation>         </saml:Subject>
        <saml:Conditions ...>
            <saml:AudienceRestriction>
                <saml:Audience>https://acme.com/sp</saml:Audience>
            </saml:AudienceRestriction>
        </saml:Conditions>
        <saml:AuthnStatement AuthnInstant="2014-03-21T20:53:55Z" SessionIndex="id6i-Dm0yB-HekG6cejktwcKIFMzYE8Yrmqwfd0azz"
SessionNotOnOrAfter="2014-03-21T21:53:55Z">
            <saml:AuthnContext>
                <saml:AuthnContextClassRef>
                    urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport
                </saml:AuthnContextClassRef>             </saml:AuthnContext>
        </saml:AuthnStatement>
    </saml:Assertion>
</samlp:Response>

Un administrador debe poder especificar una asignación entre un método de autenticación de federación de SAML 2.0 y uno o más esquemas de autenticación de OAM

SAML 1.1

Las especificaciones de SAML 1.1 definen los siguientes métodos de autenticación de federación para flujos de SAML 1.1:

Inicialmente, IdP tiene las siguientes asignaciones para el protocolo SAML 1.1:

Esta asignación se define en el perfil de socio de SP saml11-sp-partner-profile, que es el perfil de socio de SP de OOTB por defecto para SAML 1.1

Un ejemplo de afirmación emitida por IdP será:

<samlp:Response ...>
    <samlp:Status>
        <samlp:StatusCode Value="samlp:Success"/>
    </samlp:Status>
    <saml:Assertion Issuer="https://idp.com/oam/fed" ...>
        <saml:Conditions ...>
            <saml:AudienceRestriction>
                <saml:Audience>https://acme.com/sp/ssov11</saml:Audience>
            </saml:AudienceRestriction>
        </saml:Conditions>
        <saml:AuthnStatement AuthenticationInstant="2014-03-21T20:53:55Z"
AuthenticationMethod="urn:oasis:names:tc:SAML:1.0:am:password">
            <saml:Subject>
                <saml:NameIdentiGer ...>bob@oracle.com</saml:NameIdentiGer>
                <saml:SubjectConGrmation>
                   <saml:ConGrmationMethod>
                       urn:oasis:names:tc:SAML:1.0:cm:bearer
                   </saml:ConGrmationMethod>
                </saml:SubjectConGrmation>
            </saml:Subject>
        </saml:AuthnStatement>
        <dsig:Signature>
            ...
        </dsig:Signature>     </saml:Assertion> </samlp:Response>

Nota: SAML 1.1 no define un mensaje AuthnRequest.

Un administrador puede especificar una asignación entre un método de autenticación de federación de SAML 1.1 y uno o más esquemas de autenticación de OAM.

OpenID 2.0

Las especificaciones PAPE OpenID 2.0 definen los siguientes métodos de autenticación de federación para los flujos OpenID 2.0:

Inicialmente, IdP no define ninguna asignación para los métodos de autenticación de federación OpenID 2.0.

Para OpenID 2.0, la configuración implica la asignación de una lista de políticas OpenID 2.0 a una lista de esquemas de autenticación.

Un ejemplo de un mensaje de solicitud OpenID 2.0 enviado por un SP/RP a un IdP/OP será:

https://idp.com/openid?openid.ns=http%3A%2F%2Fspecs.openid.net%2Fauth%2F2.0&openid.mode=checkid_setup&openid.claimed_id=http%3A%2F%2Fspecs.openid.net%2Fauth%2F2.0%2FidentiGer_select&openid.identity=http%3A%2F%2Fspecs.openid.net%2Fauth%2F2.0%2FidentiGer_select&openid.assoc_handle=id-6a5S6zhAKaRwQNUnjTKROREdAGSjWodG1el4xyz3&openid.return_to=https%3A%2F%2Facme.com%2Fopenid%3FreGd%3Did9PKVXZmRxAeDYcgLqPm36ClzOMA-&openid.realm=https%3A%2F%2Facme.com%2Fopenid&openid.ns.ax=http%3A%2F%2Fopenid.net%2Fsrv%2Fax%2F1.0&openid.ax.mode=fetch_request&openid.ax.type.aer0=http%3A%2F%2Faxschema.org%2Fcontact%2Femail&openid.ax.if_available=aer0&openid.ns.pape=http%3A%2F%2Fspecs.openid.net%2Fextensions%2Fpape%2F1.0&openid.pape.max_auth_age=0

Un ejemplo de una respuesta de inicio de sesión único de Open ID 2.0 emitida por un IdP/OP será:

https://acme.com/openid?reGd=id-9PKVXZmRxAeDYcgLqPm36ClzOMA-&openid.ns=http%3A%2F%2Fspecs.openid.net%2Fauth%2F2.0&openid.mode=id_res&openid.op_endpoint=https%3A%2F%2Fidp.com%2Fopenid&openid.claimed_id=https%3A%2F%2Fidp.com%2Fopenid%3Fid%3Did-38iCmmlAVEXPsFjnFVKArfn5RIiF75D5doorhEgqqPM%3D&openid.identity=https%3A%2F%2Fidp.com%2Fopenid%3Fid%3Did-38iCmmlAVEXPsFjnFVKArfn5RIiF75D5doorhEgqqPM%3D&openid.return_to=https%3A%2F%2Facme.com%2Fopenid%3FreGd%3Did9PKVXZmRxAeDYcgLqPm36ClzOMA-&openid.response_nonce=2014-03-24T19%3A20%3A06Zid-YPa2kTNNFftZkgBb460jxJGblk2g--iNwPpDI7M1&openid.assoc_handle=id6a5S6zhAKaRwQNUnjTKROREdAGSjWodG1el4xyz3&openid.ns.ax=http%3A%2F%2Fopenid.net%2Fsrv%2Fax%2F1.0&openid.ax.mode=fetch_response&openid.ax.type.aer0=http%3A%2F%2Fsession%2Fcount&openid.ax.value.aer0=1&openid.ax.type.aer1=http%3A%2F%2Fopenid.net%2Fschema%2FnamePerson%2Ffriendly&openid.ax.value.aer1=My+name+is+Bobby+Smith&openid.ax.type.aer2=http%3A%2F%2Fschemas.openid.net%2Fax%2Fapi%2Fuser_id&openid.ax.value.aer2=bob&openid.ax.type.aer3=http%3A%2F%2Faxschema.org%2Fcontact%2Femail&openid.ax.value.aer3=bob%40oracle.com&openid.ax.type.aer4=http%3A%2F%2Fsession%2Fipaddress&openid.ax.value.aer4=10.145.120.253&openid.ns.pape=http%3A%2F%2Fspecs.openid.net%2Fextensions%2Fpape%2F1.0&openid.pape.auth_time=2014-03-24T19%3A20%3A05Z&openid.pape.auth_policies=http%3A%2F%2Fschemas.openid.net%2Fpape%2Fpolicies%2F2007%2F06%2Fphishing-resistant&openid.signed=op_endpoint%2Cclaimed_id%2Cidentity%2Creturn_to%2Cresponse_nonce%2Cassoc_handle%2Cns.ax%2Cax.mode%2Cax.type.aer0%2Cax.value.aer0%2Cax.type.aer1%2Cax.value.aer1%2Cax.type.aer2%2Cax.value.aer2%openid.sig=mYMgbGYSs22l8e%2FDom9NRPw15u8%3D

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.