Provisionamiento de Usuarios de JIT en OAM y SP

En este artículo se describe cómo agregar el aprovisionamiento de usuarios a OAM/SP, lo que permite al servidor crear un registro de usuario sobre la marcha durante SSO de federación, si el usuario aún no tiene una cuenta.

Durante una operación de SSO de federación, OAM/SP valida la respuesta de SSO entrante (SAML o OpenID) e intenta asignarla a un registro de usuario de LDAP local según la información contenida en la respuesta de SSO (normalmente atributos de usuario):

OAM/SP valida la respuesta de SSO, procesa los atributos mediante reglas definidas en el perfil de atributo IdP para el partner IdP y, si es necesario, llama al módulo de aprovisionamiento de usuarios configurado en OAM/SP:

Después de la llamada del módulo de provisionamiento de usuarios (por defecto o personalizado), el servidor crea una sesión para el usuario. Las operaciones de SSO de federación posteriores para el mismo usuario dan como resultado la asignación de OAM/SP de la respuesta de SSO a ese registro LDAP recién creado.

Módulo de aprovisionamiento de usuario incorporado

El módulo de aprovisionamiento de usuarios incorporado permite crear un registro de usuario en el directorio LDAP cuando falla la asignación:

Nota importante: el algoritmo anterior es un poco complejo, pero permite a un administrador

Activación del aprovisionamiento de usuarios en OAM/SP

Realice los siguientes pasos para activar/desactivar el aprovisionamiento de usuarios en OAM/SP:

  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. Actualice la propiedad userprovisioningenabled a:

  5. Salga del entorno WLST: exit()

Prueba de configuración

Utilice la misma configuración de federación de SAML 2.0 configurada anteriormente, donde:

Durante un SSO de federación de SAML 2.0 con el partner remoto IdP, la respuesta de SAML XML con la afirmación devuelta por IdP sería:

<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://acme.com</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="title" ...>
                <saml:AttributeValue
...>manager</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>

El resultado del procesamiento de la afirmación SAML 2.0 por OAM/SP muestra los atributos transformados y NameID

Descripción de la ilustración Operation_Result.jpg

Casos de Prueba

Los casos de prueba muestran diferentes configuraciones para el módulo de aprovisionamiento de usuarios, con el usuario no existente en OAM/SP antes de cada prueba:

Caso de uso n.o 1:

Caso de uso n.o 2:

Caso de uso n.o 3:

Caso de uso n.o 4:

Caso de uso n.o 5:

Después de cada operación de SSO de federación, imprima el registro de usuario LDAP del usuario creado y, a continuación, suprima ese registro antes de la siguiente prueba.

Nota importante: el perfil de atributo IdP debe asignar los nombres de atributo de SAML entrante a los nombres de atributo que se utilizan en el directorio LDAP. Por este motivo, en nuestro perfil de atributo IdP de prueba, fname se asigna a givenname. El plugin de aprovisionamiento de usuarios incorporado toma los nombres de atributo de la lista de atributos procesados y los agrega tal cual al registro de usuario LDAP (si se ha configurado para ello): no hay ninguna asignación de nombre de atributo adicional.

Caso de uso no 1

En este caso de uso, la configuración es tal que:

Después de SSO de federación, se ha creado el registro de usuario para alice:

dn: uid=alice,ou=users,dc=us,dc=oracle,dc=com
objectClass: person
objectClass: organizationalPerson
objectClass: inetOrgPerson
objectClass: top
uid: alice
cn: alice
sn: alice

El registro de usuario de LDAP tiene las siguientes características:

Caso de uso no 2

En este caso de uso, la configuración es tal que:

Después de SSO de federación, se ha creado el registro de usuario para alice:

dn: uid=alice,ou=users,dc=us,dc=oracle,dc=com
mail: alice@oracle.com
objectClass: person
objectClass: inetOrgPerson
objectClass: organizationalPerson
objectClass: top
uid: alice
cn: alice
sn: alice

El registro de usuario de LDAP tiene las siguientes características:

Caso de uso n.o 3

En este caso de uso, la configuración es tal que:

Para ello, 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 Access Manager, Plugins.

  3. Seleccione FedUserProvisioningPlugin.

  4. En el campo KEY_USER_RECORD_ATTRIBUTE_LIST, introduzca givenname, sn y el correo como una lista separada por comas sin espacios: givenname,sn,mail

  5. Haga clic en Guardar

Descripción de la ilustración Plug_ins_Screen.jpg

Después de SSO de federación, se crea el registro de usuario para alice:

dn: uid=alice,ou=users,dc=us,dc=oracle,dc=com
mail: alice@oracle.com
givenName: Alice
objectClass: person
objectClass: inetOrgPerson
objectClass: organizationalPerson
objectClass: top
uid: alice
cn: alice
sn: alice
sn: Appleton

El registro de usuario de LDAP tiene las siguientes características:

Caso de uso no 4

En este caso de uso, la configuración es tal que:

Para ello, 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 Access Manager, Plugins.

  3. Seleccione FedUserProvisioningPlugin.

  4. Defina el campo KEY_USER_RECORD_ATTRIBUTE_LIST en un valor en blanco

  5. Defina el campo KEY_USERID_ATTRIBUTE_NAME en givenname

  6. Haga clic en Guardar

Descripción de la ilustración Access_mngt.jpg

Después de SSO de federación, se crea el registro de usuario para alice:

dn: uid=Alice,ou=users,dc=us,dc=oracle,dc=com
mail: alice@oracle.com
objectClass: person
objectClass: inetOrgPerson
objectClass: organizationalPerson
objectClass: top
uid: Alice
cn: Alice
sn: Alice

El registro de usuario de LDAP tiene las siguientes características:

Caso de uso n.o 5

En este caso de uso, la configuración es tal que:

Para ello, 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 Access Manager, Plugins.

  3. Seleccione FedUserProvisioningPlugin.

  4. Defina el campo KEY_USER_RECORD_ATTRIBUTE_LIST en (lista separada por comas sin espacios): givenname,sn

  5. Defina el campo KEY_USERID_ATTRIBUTE_NAME en fed.nameidvalue, que es el nombre del atributo para el valor NameID.

  6. Haga clic en Guardar

Descripción de la ilustración Access_mngt_nameID_Value.jpg

Después de SSO de federación, se crea el registro de usuario para alice:

dn: uid=alice,ou=users,dc=us,dc=oracle,dc=com
mail: alice@oracle.com
givenName: Alice
objectClass: person
objectClass: inetOrgPerson
objectClass: organizationalPerson
objectClass: top
uid: alice
cn: alice
sn: alice
sn: Appleton

El registro de usuario de LDAP tiene las siguientes características:

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.