Ejemplo: envío de atributos con OAM y IdP
A continuación, se muestran ejemplos de cómo configurar IdP para enviar atributos:
-
Mediante la consola de administración de OAM para enviar atributos a un partner de SP de SAML 2.0
-
Mediante los comandos WLST de OAM para enviar atributos a un partner de RP OpenID 2.0
Los atributos enviados se basan en:
-
Registro de usuario de LDAP (atributos, DN...)
-
Sesión de usuario de OAM (atributos, recuento de sesiones...)
-
Solicitud HTTP del explorador (cookie, agente de usuario...)
La Consola de Administración de OAM
Esta sección trata sobre cómo configurar IdP para enviar atributos a través de la consola de administración. El ejemplo se basa en una federación con un partner de SP de SAML 2.0 remoto y IdP está configurado para:
-
Utilice el formato Unspeci9ed NameID
-
Utilice el atributo de usuario de LDAP uid para definir el valor NameID
-
Envíe los siguientes atributos:
-
Dirección de correo electrónico con el nombre de atributo de SAML definido en Correo electrónico
-
Atributo que contiene una cadena que empieza por "Mi nombre es " y, a continuación, el nombre y el apellido, separados por un espacio. El nombre del atributo de SAML está definido en Nombre
-
UserIDcon el nombre de atributo definido enUserID -
Recuento de sesiones de OAM con el nombre de atributo de SAML definido en
SessionCount -
Dirección IP del cliente con el nombre de atributo SAML definido en
IPAddress
-
Cree un nuevo perfil de atributo de SP y asígnelo a acmeSP. Más adelante, si se incorporan nuevos socios de SP, es posible asignar el perfil de atributo de SP existente para que IdP envíe los mismos atributos a esos nuevos SP.
Creación de un Perfil de Atributo de Proveedor de Servicios
Para crear un nuevo perfil de atributo de SP, realice los siguientes pasos:
-
Vaya a la consola de administración de OAM:
http(s)://oam-admin-host:oam-admin- port/oamconsole. -
Vaya a Identity Federation, Administración de proveedores de identidad.
-
Haga clic en el separador Perfiles de atributos de proveedor de servicios.
-
Haga clic en el botón Crear perfil de atributo de proveedor de servicios.

Descripción de la ilustración Create_SP_Attribute_Profile.jpg
-
Configure la información básica sobre el nuevo perfil de atributo de SP:
-
Introduzca un nombre
-
Introduzca una descripción si es necesario
Nota: Si se marca "Perfil de atributo de socio de SP por defecto", se asigna previamente al perfil de atributo de SP cuando se crea un nuevo socio de SP mediante la interfaz de usuario y será el perfil de atributo de SP utilizado para los socios de SP que no tienen asignado un perfil de atributo de SP (por ejemplo, los creados mediante comandos WLST).

Descripción de la ilustración Default_SP_Partner_Attribute_Profile.jpg
-
Agregue los atributos necesarios enumerados anteriormente. Realice las siguientes operaciones para agregar el atributo Correo electrónico:
-
Haga clic en el botón Agregar entrada de la tabla Asignación de atributos.
-
Configure el atributo de correo electrónico:
-
Nombre de atributo de mensaje: Correo electrónico
-
Valor: seleccione el usuario, a continuación,
attry, a continuación, introduzca el atributo LDAP que contiene la dirección de correo electrónico y el correo en este caso -
Enviar siempre: marcado
-

Descripción de la ilustración Add_Email_Attribute.jpg
Realice las siguientes operaciones para agregar el atributo Name:
-
Haga clic en el botón Agregar entrada de la tabla Asignación de atributos.
-
Configure el atributo Name:
-
Nombre de atributo de mensaje: nombre
-
Valor: seleccione la expresión y, a continuación, introduzca la siguiente cadena (en este ejemplo, el atributo LDAP
givennamecontiene el nombre y el apellido): mi nombre es $user.attr.givenname $user.attr.sn -
Enviar siempre: marcado

-
Realice las siguientes operaciones para agregar el atributo UserID:
-
Haga clic en el botón Agregar entrada de la tabla Asignación de atributos.
-
Configure el atributo
UserID:-
Nombre de atributo de mensaje:
UserID -
Valor: seleccione el usuario y, a continuación,
userid -
Enviar siempre: marcado

-
Realice las siguientes operaciones para agregar el atributo SessionCount:
-
Haga clic en el botón Agregar entrada de la tabla Asignación de atributos.
-
Configure el atributo
SessionCount:-
Nombre de atributo de mensaje:
SessionCount -
Valor: seleccione la sesión y, a continuación, el recuento.
-
Enviar siempre: marcado

Descripción de la ilustración Add_SessionCount_Attribute.jpg
-
Realice las siguientes operaciones para agregar el atributo IPAddress:
-
Haga clic en el botón Agregar entrada de la tabla Asignación de atributos.
-
Configure el atributo IPAddress:
-
Nombre de atributo de mensaje: IPAddress
-
Valor: seleccione la solicitud y, a continuación,
client_ip -
Enviar siempre: marcado

-
El perfil de atributo de SP ahora está configurado para enviar los atributos necesarios a los socios de SP enlazados a este perfil

Descripción de la ilustración SP_Attribute_Profile.jpg
Actualice el socio de SP para utilizar el nuevo perfil de atributo de SP y configure los valores de NameID:
-
Vaya a la consola de administración de OAM:
http(s)://oam-admin-host:oam-admin- port/oamconsole. -
Vaya a Identity Federation, Administración de proveedores de identidad.
-
Haga clic en Buscar partners de proveedor de servicios.
-
Abra el socio de SP deseado.
-
Seleccione Unspeci9ed como formato NameID.
-
Para NameID, seleccione User ID Store Attribute y, a continuación, introduzca uid como atributo de LDAP que contiene userID.
Nota: Seleccione Expresión en la lista desplegable e introduzca una expresión similar a la utilizada anteriormente.
-
En la sección Asignación de Atributos, seleccione el perfil de atributo de proveedor de servicios recién creado como perfil de atributo.
-
Haga clic en Guardar.

Descripción de la ilustración SP_Partner_Update.jpg
Nota sobre Enviar siempre
El perfil de atributo de SP se utiliza para varios protocolos, entre los que se incluyen:
-
SSO de SAML, donde el SP no puede solicitar atributos en tiempo de ejecución
-
Intercambio de atributos de SOAP de SAML, donde el SP puede solicitar atributos en tiempo de ejecución
-
OpenID 2.0, donde el SP puede solicitar atributos en tiempo de ejecución
-
La opción Enviar siempre que se muestra en la sección Perfil de atributo de SP permite a un administrador indicar a IdP que envíe siempre el atributo en una afirmación aunque el partner de SP no lo haya solicitado.
Afirmación de SAML
Según un usuario con las siguientes características, IdP genera una afirmación de SAML similar a la que se muestra a continuación:
-
UserID: alice
-
Nombre: Alice.
-
Apellido: Appleton
-
Correo electrónico: alice@idp.com
Afirmación de SAML generada por IdP para alice:
<samlp:Response ...>
<saml:Issuer ...>https://idp.com</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</saml:Issuer>
<dsig:Signature>
...
</dsig:Signature>
<saml:Subject>
<saml:NameID Format="urn:oasis:names:tc:SAML:1.1:nameid- format:unspeci9ed">alice</saml:NameID>
...
</saml:Subject>
<saml:Conditions NotBefore="2014-02-26T20:35:00Z" NotOnOrAfter="2014-02-26T22:35:00Z">
<saml:AudienceRestriction>
<saml:Audience>https://acme.com/sp</saml:Audience>
</saml:AudienceRestriction>
</saml:Conditions>
<saml:AuthnStatement AuthnInstant="2014-02-26T20:35:00Z" ...>
<saml:AuthnContext>
<saml:AuthnContextClassRef>urn:...:Password</saml:AuthnContextClassRef>
</saml:AuthnContext>
</saml:AuthnStatement>
<saml:AAributeStatement>
<saml:Attribute Name="Name" ...>
<saml:AAributeValue ...>My name is Alice Appleton</saml:AAributeValue>
</saml:AAribute>
<saml:Attribute Name="SessionCount" ...>
<saml:AAributeValue ...>1</saml:AAributeValue>
</saml:AAribute>
<saml:Attribute Name="Email" ...>
<saml:AAributeValue ...>alice@idp.com</saml:AAributeValue>
</saml:AAribute>
<saml:Attribute Name="IPAddress" ...>
<saml:AAributeValue ...>10.145.120.253</saml:AAributeValue>
</saml:AAribute>
<saml:Attribute Name="UserID" ...>
<saml:AAributeValue ...>alice</saml:AAributeValue>
</saml:AAribute>
</saml:AAributeStatement>
</saml:Assertion>
</samlp:Response>
Comandos WLST
Esta sección trata sobre cómo configurar IdP para enviar atributos mediante los comandos WLST de OAM. El siguiente ejemplo se basa en una federación con un partner de SP remoto OpenID 2.0 y IdP está configurado para:
Envíe los siguientes atributos:
-
Dirección de correo electrónico con el nombre de atributo OpenID definido en
http://axschema.org/contact/email -
Atributo que contiene una cadena que empieza por "Mi nombre es " y, a continuación, el nombre 9 y el apellido, separados por un espacio. El nombre del atributo OpenID se define en
http://openid.net/schema/namePerson/friendly -
UserID con el nombre de atributo OpenID definido en
http://schemas.openid.net/ax/api/user_id -
Recuento de sesiones de OAM con el nombre de atributo OpenID definido en
<http://session/count> -
Dirección IP del cliente con el nombre de atributo definido en
http://session/ipaddress
Para ello, cree un nuevo perfil de atributo de SP y asígnelo a acmeRP. Si se incorporan nuevos socios de RP, es posible asignar el perfil de atributo de SP existente para que IdP envíe los mismos atributos a esos nuevos SP.
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().
Configurar Nuevo Perfil de Atributo de Proveedor de Servicios
Para configurar el nuevo perfil de atributo de SP, ejecute los siguientes pasos:
-
Cree un nuevo perfil de atributo de SP
createSPPartnerAAributeProfile("openIDAArProfile"). -
Especifique el nombre del nuevo perfil de atributo de SP.
-
Cree el atributo de correo electrónico
setSPPartnerAAributeProfileEntry("openIDAArProfile", "http://axschema.org/contact/email", "$user.attr.mail"). -
Especifique el nombre del perfil de atributo de SP que desea modificar.
-
Especifique el nombre del atributo OpenID en
http://axschema.org/contact/email. -
Defina el valor en el atributo LDAP que contiene la dirección de correo electrónico, correo en este caso:
$user.attr.mail. -
Cree el atributo de nombre
setSPPartnerAAributeProfileEntry("openIDAArProfile", "http://openid.net/schema/namePerson/friendly", "My name is $user.attr.givenname $user.attr.sn"). -
Especifique el nombre del perfil de atributo de SP que desea modificar.
-
Especifique el nombre del atributo OpenID en
http://openid.net/schema/namePerson/friendly. -
Defina el valor en (en este ejemplo, el atributo LDAP proporcionado contiene el nombre 9rst y sn el apellido): mi nombre es
$user.attr.givenname $user.attr.sn. -
Cree el atributo UserID:
setSPPartnerAAributeProfileEntry("openIDAArProfile", "http://schemas.openid.net/ax/api/user_id", "$user.userid"). -
Especifique el nombre del perfil de atributo de SP que desea modificar.
-
Especifique el nombre del atributo OpenID en
<http://schemas.openid.net/ax/api/user_id>. -
Defina el valor en el atributo LDAP que contiene la dirección de correo electrónico, correo en este caso:
$user.attr.uid. -
Cree el atributo de recuento de sesiones de OAM
setSPPartnerAAributeProfileEntry("openIDAArProfile", "http://session/count", "$session.count"). -
Especifique el nombre del perfil de atributo de SP que desea modificar.
-
Especifique el nombre del atributo OpenID en
<http://session/count>. -
Defina el valor en:
$session.count. -
Cree el atributo de dirección IP del cliente
setSPPartnerAAributeProfileEntry("openIDAArProfile", "http://session/ipaddress", "$request.client_ip"). -
Especifique el nombre del perfil de atributo de SP que desea modificar.
-
Especifique el nombre del atributo OpenID en
<http://session/ipaddress>. -
Defina el valor en:
$request.client_ip.
Para actualizar el socio de SP para utilizar ese perfil de atributo de SP, ejecute:
-
El comando
setSPPartnerAAributeProfile:setSPPartnerAAributeProfile("acmeRP", "openIDAArProfile") -
Especifique el nombre del partner del SP
-
Especifique el nombre del perfil de atributo de SP que se va a utilizar
OpenID Respuesta
Según un usuario con las siguientes características, IdP genera una respuesta OpenID similar a la que se muestra a continuación:
-
UserID: alicia -
Nombre de
First: Alice -
Last name: Appleton -
Email: alice@idp.com
OpenID Respuesta generada por IdP para alice:
https://acme.com/sp/openidv20?re9d=id-UnaYvk-mDQy6ZQB-4R39L4An4B0-& openid.ns=http%3A%2F%2Fspecs.openid.net%2Fauth%2F2.0&openid.mode=id_res& openid.op_endpoint=http%3A%2F%2Fadc00pcc.us.oracle.com%3A23002%2Foamfed%2Fidp%2Fopenidv20& openid.claimed_id=http%3A%2F%2Fadc00pcc.us.oracle.com%3A23002%2Foamfed%2Fidp%2Fopenidv20%3Fid%3Did- p4rWL%2FjzZAKwxAYLA%2FjOtP7s6fqjdyQ2BiSWZduaR5c%3D&openid.identity=http%3A%2F%2Fadc00pcc.us.oracle.com%3A23002%2Foamfed%2Fidp%2Fopenidv20%3Fid%3Did- p4rWL%2FjzZAKwxAYLA%2FjOtP7s6fqjdyQ2BiSWZduaR5c%3D& openid.return_to=http%3A%2F%2Fadc00peq.us.oracle.com%3A7499%2Ffed%2Fsp%2Fopenidv20%3Fre9d%3Did-UnaYvk-mDQy6ZQB-4R39L4An4B0-&openid.response_nonce=2014-02-26T21%3A35%3A08Zid- uTAXy9lDK7TVvgezZVY3XZ06iSDcZb97zxiOl0qw&openid.assoc_handle=id-n-nN- qW2VAZa75-XJshWpmVHK53Yz0-lTZtrtsJm&openid.ns.ax=http%3A%2F%2Fopenid.net%2Fsrv%2Fax%2F1.0&openid.ax.mode=fetch_response& openid.ax.type.attr0=http%3A%2F%2Fsession%2Fcount&openid.ax.value.attr0=2& openid.ax.type.attr1=http%3A%2F%2Fopenid.net%2Fschema%2FnamePerson%2Ffriendly& openid.ax.value.attr1=My+name+is+Alice+Appleton&openid.ax.type.attr2=http%3A%2F%2Fschemas.openid.net%2Fax%2Fapi%2Fuser_id& openid.ax.value.attr2=alice&openid.ax.type.attr3=http%3A%2F%2Faxschema.org%2Fcontact%2Femail&openid.ax.value.attr3=alice%40idp.com& openid.ax.type.attr4=http%3A%2F%2Fsession%2Fipaddress& openid.ax.value.attr4=10.145.120.253&openid.signed=op_endpoint%2Cclaimed_id%2Cidentity%2Creturn_to%2Cresponse_nonce%2Cassoc_handle%2Cns.ax%2Cax.mode%2Cax.type.attr0%2Cax.value.attr0%2Cax.type.attr1%2Cax.value.attr1%2Cax. openid.sig=TeDo%2FouX%2BXRI%2F1G8kJVsw5JOVY8%3D
Los parámetros de consulta de URL descodificados relacionados con los atributos son:
-
Nombre del atributo #0:
openid.ax.type.attr0=http://session/count -
Valor para el atributo #0:
openid.ax.value.attr0=2 -
Nombre del atributo no 1:
openid.ax.type.attr1= http://openid.net/schema/namePerson/friendly -
Valor para el atributo no 1:
openid.ax.value.attr1=My name is Alice Appleton -
Nombre del atributo no 2:
openid.ax.type.attr2= http://schemas.openid.net/ax/api/user_id -
Valor para el atributo no 2:
openid.ax.value.attr2=alice -
Nombre del atributo no 3:
openid.ax.type.attr3=http://axschema.org/contact/email -
Valor para el atributo no 3:
openid.ax.value.attr3=alice@idp.com -
Nombre del atributo no 4:
openid.ax.type.attr4=http://session/ipaddress -
Valor para el atributo no 4:
openid.ax.value.attr4=10.145.120.253
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.
Example- Sending Attributes with OAM and IdP
F61882-01
September 2022
Copyright © 2022, Oracle and/or its affiliates.