Procesamiento de Atributos Entrantes con OAM y SP

Cuando OAM actúa como proveedor de servicios:

Estos atributos almacenados en la sesión de OAM se pueden utilizar posteriormente:

En este artículo se describe cómo se puede configurar OAM que actúa como proveedor de servicios para:

Visión general

Asignación de nombre de atributo

El principal motivo para procesar atributos entrantes es asignar los nombres de los atributos de la respuesta SSO a los nombres locales, reconocidos por otros componentes locales. Esta función es útil en despliegues de federación, porque los distintos partners remotos a veces utilizan nombres diferentes para hacer referencia al mismo atributo.

Supongamos, por ejemplo, el siguiente caso de uso:

Al procesar los atributos entrantes, OAM/SP puede asignar:

Esto permite al consumidor de los datos enviados en los mensajes SAML/OpenID hacer referencia al nombre del usuario solo por el identificador first_name:

Atributos de solicitud

El protocolo OpenID 2.0 define una forma para que los partners SP/RP soliciten atributos del IdP/OP en tiempo de ejecución.

OAM/SP proporciona una forma de solicitar atributos del OP OpenID

Perfiles de Atributo

Anteriormente explicamos qué perfiles de atributos de SP estaban en IdP y cómo usarlos:

En OAM/SP, existe un concepto similar para solicitar atributos y asignar nombres de atributos. El perfil de atributo IdP es una recopilación de reglas que indica a OAM/SP:

Ejemplos

En el resto del artículo se describe cómo configurar OAM/SP para:

Utilice la aplicación de SP de prueba incluida con OAM/SP para ver cómo se procesan los atributos de la respuesta SSO de SAML/OpenID.

Asignación de Atributos Entrantes

En esta sección se muestra cómo configurar OAM/SP para procesar atributos de SAML 2.0 entrantes a través de la consola de administración. El ejemplo se basa en una federación con un partner SAML 2.0 IdP remoto identificado como AcmeIdP en OAM/SP:

Para ello, cree un nuevo perfil de atributo IdP y asígnelo a AcmeIdP.

Nota: Si los nuevos partners IdP se incorporan posteriormente y envían los atributos con los mismos nombres, será posible asignar el perfil de atributo IdP existente a esos nuevos socios.

Creación del socio sin reglas de asignación

Antes de configurar OAM/SP para asignar atributos entrantes a nombres locales, realice una prueba de SSO de federación para ver cómo se ven los atributos si OAM/SP no cambia.

En este caso, el partner IdP está enlazado a un perfil de atributo IdP vacío y OAM/SP no modificará los nombres de los atributos entrantes incluidos en la respuesta SSO.

El partner IdP se configura de forma similar a (siendo idp-attribute-profile el perfil de atributo IdP por defecto, que en nuestra prueba está vacío):

Descripción de la ilustración Create_ID_Partner.jpg

Al utilizar la aplicación Probar SP para realizar una operación SSO de federación con AcmeIdP, el resultado de la operación muestra que, para el usuario alice, se ha enviado lo siguiente en la afirmación:

La respuesta XML SAML con la afirmación devuelta por IdP es:

<samlp:Response ..>
    <saml:Issuer ...>http://acme.com/idp</saml:Issuer>
    <samlp:Status>
        <samlp:StatusCode Value="urn:oasis:names:tc:SAML:2.0:status:Success"/>
    </samlp:Status>
    <saml:Assertion ...>
        <saml:Issuer ...>http://adc00peq.us.oracle.com:7499/fed/idp</saml:Issuer>
        <dsig:Signature ...>
        ...
        </dsig:Signature>
        <saml:Subject>
            <saml:NameID ...>alice</saml:NameID>
            ...
        </saml:Subject>         <saml:Conditions ...>
         ...
        </saml:Conditions>         <saml:AuthnStatement ...>
        ...
        </saml:AuthnStatement>
        <saml:AttributeStatement ...>
            <saml:Attribute Name="email" ...>
                <saml:AttributeValue ...>alice@oracle.com</saml:AttributeValue>
            </saml:Attribute>
            <saml:Attribute Name="surname" ...>
                <saml:AttributeValue ...>Appleton</saml:AttributeValue>
            </saml:Attribute>
            <saml:Attribute Name="fname" ...>
                <saml:AttributeValue ...>Alice</saml:AttributeValue>
            </saml:Attribute>
        </saml:AttributeStatement>
    </saml:Assertion>
</samlp:Response>

La página Probar SP muestra cómo OAM/SP ha procesado los atributos. Como no hay reglas de asignación, los nombres de los atributos no se han modificado.

Descripción de la ilustración Federation_SSO.jpg

Creación de reglas de asignación

Para crear un nuevo perfil de atributo IdP, ejecute los siguientes pasos:

  1. Vaya a la consola de administración de OAM: http(s)://oam-admin-host:oam-admin-port/oamconsole

  2. Vaya a Identity Federation, Administración de proveedores de servicios.

  3. Haga clic en el separador Perfiles de atributo de proveedor de identidad.

  4. Haga clic en el botón Crear perfil de atributo IdP.

Descripción de la ilustración Create_Mapping_Rules.jpg

Configure la información básica sobre el nuevo perfil de atributo IdP:

Nota sobre Ignorar atributos no asignados: si está activada, OAM/SP descarta los atributos de la respuesta SAML/OpenID no definida en este perfil de atributo.

Nota sobre el perfil de atributo de partner IdP por defecto: si se activa, será el perfil de atributo IdP asignado previamente cuando se cree un nuevo partner IdP a través de la interfaz de usuario

Descripción de la ilustración Create_Attr_Profile.jpg

Agregue las asignaciones necesarias. Realice las siguientes operaciones para agregar la asignación firstname:

Realice las siguientes operaciones para agregar la asignación de apellidos:

El perfil de atributo IdP se ha configurado para asignar los atributos fname y surname a los nombres locales para los partners IdP enlazados a este perfil.

Nota: No es necesario crear una asignación para el correo electrónico, ya que

Descripción de la ilustración IdP_Attr_Profile.jpg

El socio IdP se debe actualizar para utilizar el nuevo perfil de atributo IdP:

  1. Vaya a la consola de administración de OAM: http(s)://oam-admin-host:oam-admin-port/oamconsole

  2. Vaya a Identity Federation, Administración de proveedores de servicios.

  3. Haga clic en Buscar partners de proveedor de identidad.

  4. Abra el partner IdP que desee.

  5. En la sección Asignación de Atributos, seleccione el perfil de atributo IdP recién creado como perfil de atributo

  6. Haga clic en Guardar

Descripción de la ilustración Update_IdP_Attr_Profile.jpg

Probar

Estamos utilizando la aplicación Probar SP de nuevo para realizar una operación SSO de federación con OAM mediante el nuevo perfil de atributo IdP.

La respuesta XML SAML con la afirmación devuelta por IdP sigue siendo la misma:

<samlp:Response ..>
    <saml:Issuer ...>http://acme.com/idp</saml:Issuer>
    <samlp:Status>
        <samlp:StatusCode Value="urn:oasis:names:tc:SAML:2.0:status:Success"/>
    </samlp:Status>
    <saml:Assertion ...>
        <saml:Issuer ...>http://adc00peq.us.oracle.com:7499/fed/idp</saml:Issuer>
        <dsig:Signature ...>
        ...
        </dsig:Signature>
        <saml:Subject>
            <saml:NameID ...>alice</saml:NameID>
            ...
        </saml:Subject>         <saml:Conditions ...>
         ...
        </saml:Conditions>         <saml:AuthnStatement ...>
        ...
        </saml:AuthnStatement>
        <saml:AttributeStatement ...>
            <saml:Attribute Name="email" ...>
                <saml:AttributeValue ...alice@oracle.com</saml:AttributeValue>
            </saml:Attribute>
            <saml:Attribute Name="surname" ...>
                <saml:AttributeValue ...>Appleton</saml:AttributeValue>
            </saml:Attribute>
            <saml:Attribute Name="fname" ...>
                <saml:AttributeValue ...>Alice</saml:AttributeValue>
            </saml:Attribute>
        </saml:AttributeStatement>
    </saml:Assertion>
</samlp:Response>

La página Probar SP muestra diferentes resultados, ya que OAM/SP ha procesado los atributos según las reglas en las que:

Descripción de la ilustración Test_Federation_SSO.jpg

Atributos de solicitud

En esta sección se muestra cómo configurar OAM/SP para solicitar atributos de IdP en tiempo de ejecución mediante los comandos WLST de OAM. El ejemplo se basa en una federación con un partner de IdP/OP remoto OpenID 2.0 y OAM/SP está configurado para:

Solicite los siguientes atributos:

Para ello, cree un nuevo perfil de atributo IdP y asígnelo a acmeOP. Más adelante, si se incorporan nuevos partners de OP, se podrá asignar el perfil de atributo IdP existente para que OAM/SP solicite los mismos atributos de esos nuevos IdPs.

Supongamos que ya está en el entorno WLST y conectado mediante:

  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()

Pasos

Para configurar el nuevo perfil de atributo IdP, ejecute los siguientes pasos:

  1. Crear un nuevo perfil de atributo de proveedor de servicios createIdPPartnerAttributeProfile("openIDAttrProfile")

  2. Especifique el nombre del nuevo perfil de atributo IdP

  3. Crear la asignación para el atributo de correo electrónico y solicitarlo en tiempo de ejecución setIdPPartnerAttributeProfileEntry("openIDAttrProfile", "http://axschema.org/contact/email", "email", requestFromIdP="true")

  4. Especifique el nombre del perfil de atributo IdP que desea modificar

  5. Especifique el nombre del atributo OpenID en http://axschema.org/contact/email

  6. Especifique el nombre local del atributo: email

  7. Indique que OAM/SP debe solicitarlo en tiempo de ejecución: requestFromIdP="true"

  8. Crear la asignación para el atributo de correo electrónico y solicitarlo en tiempo de ejecución setIdPPartnerAttributeProfileEntry("openIDAttrProfile", "http://schemas.openid.net/ax/api/user_id", "userid", requestFromIdP="true")

  9. Especifique el nombre del perfil de atributo IdP que desea modificar

  10. Especifique el nombre del atributo OpenID en http://schemas.openid.net/ax/api/user_id

  11. Especifique el nombre local del atributo: userid

  12. Indique que OAM/SP debe solicitarlo en tiempo de ejecución: requestFromIdP="true"

Para actualizar el partner IdP para utilizar ese perfil de atributo IdP, ejecute:

OpenID Respuesta

La respuesta OpenID generada por el IdP remoto para alice/alice@oracle.com será:

https://acme.com/oam/server/fed/sp/sso?reEd=id-TEMxjNN7SEdYWowvioAuTAx7UPuKAUsj-NPWLSUf&openid.ns=http%3A%2F%2Fspecs.openid.net%2Fauth%2F2.0&openid.mode=id_res&openid.op_endpoint=http%3A%2F%2Fadc00peq.us.oracle.com%3A7499%2Ffed%2Fidp%2Fopenidv20&openid.claimed_id=http%3A%2F%2Fadc00peq.us.oracle.com%3A7499%2Ffed%2Fidp%2Fopenidv20%3Fid%3Did-YxEgHp7b49OrDy9dJP4BWrwbNUQ-&openid.identity=http%3A%2F%2Fadc00peq.us.oracle.com%3A7499%2Ffed%2Fidp%2Fopenidv20%3Fid%3Did-YxEgHp7b49OrDy9dJP4BWrwbNUQ-&openid.return_to=http%3A%2F%2Fadc00pcc.us.oracle.com%3A23002%2Foam%2Fserver%2Ffed%2Fsp%2Fsso%3FreEd%3DidTEMxjNN7SEdYWowvioAuTAx7UPuKAUsj-NPWLSUf&openid.response_nonce=2014-03-07T22%3A22%3A24Zid-8PQjU4IXHX6inl35bHEFws1Yv-8-&openid.assoc_handle=id-Iek3nx7-n2LldOPeooa4auWKC4-&openid.ns.ax=http%3A%2F%2Fopenid.net%2Fsrv%2Fax%2F1.0&openid.ax.mode=fetch_response&openid.ax.type.attr0=http%3A%2F%2Fschemas.openid.net%2Fax%2Fapi%2Fuser_id&openid.ax.value.attr0=alice&openid.ax.type.attr1=http%3A%2F%2Faxschema.org%2Fcontact%2Femail&openid.ax.value.attr1=alice%40oracle.com&openid.signed=op_endpoint%2Cclaimed_id%2Cidentity%2Creturn_to%2Cresponse_nonce%2Cassoc_handle%2Cns.ax%2Cax.mode%2Cax.type.attr0%2Caopenid.sig=JBPLV5nDISw4qeWv8Yv4iPGJ6Y8%3D

Los parámetros de consulta de URL descodificados relacionados con los atributos son:

La página Probar SP muestra diferentes resultados, ya que OAM/SP ha procesado los atributos según las reglas en las que:

Descripción de la ilustración OpenID_Response.jpg

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.