Provisioning utente JIT in OAM e SP

In questo articolo viene illustrato come aggiungere il provisioning utente a OAM/SP, che consente al server di creare in tempo reale un record utente durante Federation SSO, se l'utente non dispone ancora di un account.

Durante un'operazione SSO Federation, OAM/SP convalida la risposta SSO in entrata (SAML o OpenID) e tenta di mapparla a un record utente LDAP locale in base alle informazioni contenute nella risposta SSO (in genere attributi utente):

OAM/SP convalida la risposta SSO, elabora gli attributi utilizzando le regole definite nel profilo attributo IdP per il partner IdP e, se necessario, richiama il modulo Provisioning utenti configurato in OAM/SP:

Dopo il richiamo del modulo Provisioning utenti (predefinito o personalizzato), il server crea una sessione per l'utente. Le successive operazioni SSO Federation per lo stesso utente comportano il mapping OAM/SP della risposta SSO al record LDAP appena creato.

Modulo provisioning utente integrato

Il modulo built-in Provisioning utenti consente di creare un record utente nella directory LDAP quando il mapping non riesce in base a:

Nota importante: l'algoritmo precedente è piuttosto complesso, ma consente a un amministratore.

Abilitazione del provisioning utente in OAM/SP

Per abilitare/disabilitare il provisioning utente in OAM/SP, eseguire le operazioni riportate di seguito.

  1. Immettere l'ambiente WLST eseguendo: $IAM_ORACLE_HOME/common/bin/wlst.sh

  2. Connetti al server di amministrazione WLS: connect()

  3. Passare alla diramazione Runtime dominio: domainRuntime()

  4. Aggiornare la proprietà userprovisioningenabled a:

  5. Uscire dall'ambiente WLST: exit()

Test impostazione

Utilizzare la stessa impostazione della federazione SAML 2.0 configurata in precedenza, dove:

Durante un SSO di federazione SAML 2.0 con il partner IdP remoto, la risposta SAML XML con l'asserzione inviata da IdP sarà:

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

Il risultato dell'elaborazione dell'asserzione SAML 2.0 per OAM/SP mostra gli attributi trasformati e NameID

Descrizione dell'immagine Operation_Result.jpg

Test di esempio

I casi di test mostrano configurazioni diverse per il modulo Provisioning utenti, con l'alice utente non esistente in OAM/SP prima di ogni test:

Caso d'uso n. 1:

Caso d'uso n. 2:

Caso d'uso n. 3:

Caso d'uso n. 4:

Caso d'uso n. 5:

Dopo ogni operazione SSO Federation, stampare il record utente LDAP dell'utente creato e, successivamente, eliminarlo prima del test successivo.

Nota importante: il profilo attributo IdP deve mappare i nomi degli attributi SAML in entrata ai nomi degli attributi utilizzati nella directory LDAP. Ecco perché nel test IdP Attribute Profile, fname è mappato a givenname. Il plugin built-in Provisioning utente recupera i nomi degli attributi dall'elenco degli attributi elaborati e li aggiunge così com'è al record utente LDAP (se configurato per farlo): non esiste un mapping dei nomi degli attributi aggiuntivo.

Caso d'uso n. 1

In questo caso d'uso, l'impostazione è tale che:

Dopo SSO Federation, è stato creato il record utente per l'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

Il record utente LDAP presenta le caratteristiche indicate di seguito.

Caso d'uso n. 2

In questo caso d'uso, l'impostazione è tale che:

Dopo SSO Federation, è stato creato il record utente per l'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

Il record utente LDAP presenta le caratteristiche indicate di seguito.

Caso d'uso n. 3

In questo caso d'uso, l'impostazione è tale che:

A tale scopo, effettuare le operazioni riportate di seguito.

  1. Andare alla console di amministrazione OAM: http(s)://oam-admin-host:oam-adminport/oamconsole

  2. Passare a Access Manager, Plugin

  3. Selezionare FedUserProvisioningPlugin

  4. Nel campo KEY_USER_RECORD_ATTRIBUTE_LIST immettere givenname, sn e posta come lista separata da virgole senza spazi: givenname,sn,mail

  5. Fare clic su Salva

Descrizione dell'immagine Plug_ins_Screen.jpg

Dopo SSO Federation, viene creato il record utente per l'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

Il record utente LDAP presenta le caratteristiche indicate di seguito.

Caso d'uso n. 4

In questo caso d'uso, l'impostazione è tale che:

A tale scopo, effettuare le operazioni riportate di seguito.

  1. Andare alla console di amministrazione OAM: http(s)://oam-admin-host:oam-adminport/oamconsole

  2. Passare a Access Manager, Plugin

  3. Selezionare FedUserProvisioningPlugin

  4. Impostare il campo KEY_USER_RECORD_ATTRIBUTE_LIST su un valore vuoto

  5. Impostare il campo KEY_USERID_ATTRIBUTE_NAME su givenname

  6. Fare clic su Salva

Descrizione dell'immagine Access_mngt.jpg

Dopo SSO Federation, viene creato il record utente per l'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

Il record utente LDAP presenta le caratteristiche indicate di seguito.

Caso d'uso n. 5

In questo caso d'uso, l'impostazione è tale che:

A tale scopo, effettuare le operazioni riportate di seguito.

  1. Andare alla console di amministrazione OAM: http(s)://oam-admin-host:oam-adminport/oamconsole

  2. Passare a Access Manager, Plugin

  3. Selezionare FedUserProvisioningPlugin

  4. Impostare il campo KEY_USER_RECORD_ATTRIBUTE_LIST su (lista separata da virgole senza spazi): givenname,sn

  5. Impostare il campo KEY_USERID_ATTRIBUTE_NAME su fed.nameidvalue, ovvero il nome dell'attributo per il valore NameID

  6. Fare clic su Salva

Descrizione dell'immagine Access_mngt_nameID_Value.jpg

Dopo SSO Federation, viene creato il record utente per l'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

Il record utente LDAP presenta le caratteristiche indicate di seguito.

Altre risorse di apprendimento

Esplora altri laboratori su docs.oracle.com/learn o visita altri contenuti di formazione gratuiti sul canale Oracle Learning YouTube. Inoltre, visitare education.oracle.com/learning-explorer per diventare un Oracle Learning Explorer.

Per la documentazione sul prodotto, visitare Oracle Help Center.