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):
-
Se il mapping restituisce un singolo record utente, l'operazione riesce e viene creata una sessione OAM per tale record utente
-
Se il mapping restituisce più record LDAP, l'operazione è un errore non recuperabile:
- La configurazione del mapping non è corretta
- Oppure esistono record utente LDAP non validi nella directory
-
Se il mapping non restituisce alcun record, significa che
-
La configurazione del mapping non è corretta
-
Oppure la configurazione è corretta, ma l'utente non dispone di un record nella directory locale. In questo caso, OAM/SP può essere impostato per creare automaticamente un record utente LDAP in base ai dati contenuti nella risposta SSO e assicurarsi che le successive operazioni di mapping SSO Federation per tale utente vengano mappate allo stesso nuovo record utente LDAP.
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:
-
Modulo di provisioning utente incluso
-
Oppure un'implementazione personalizzata di un modulo Provisioning utenti
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:
-
Viene utilizzata l'area di memorizzazione delle identità specificata nella voce del partner IdP oppure l'area di memorizzazione delle identità OAM predefinita, se non ne è stata specificata alcuna.
-
Utilizzare il DN base utente specificato nella voce del partner IdP oppure il DN base utente per l'area di memorizzazione delle identità utilizzata, se non ne è stato specificato uno
-
Creazione di un record utente con
userID
in base a un attributo contenuto nella risposta SSO SAML/OpenID: -
La configurazione del modulo Provisioning utenti indica l'attributo da utilizzare come
userID
, ad esempio foo. -
Il modulo tenta di individuare tale attributo nella lista di attributi della risposta SSO dopo che tali attributi sono stati elaborati dal profilo attributo IdP. Ad esempio, il modulo cerca l'attributo foo nella lista di attributi elaborati dalla risposta SSO.
-
Se l'attributo non è incluso nell'elenco di attributi della risposta SSO, il modulo valuta la regola di mapping specificata nella voce Partner IdP: se la regola di mapping utilizza l'attributo
userID
, utilizza i dati mappati comeuserID
(ad esempio, se l'asserzione SAML è stata mappata tramite NameID a un record utente LDAP utilizzando l'attributo LDAP foo, il modulo utilizza il valore NameID comeuserID
); -
In alternativa, la configurazione del modulo Provisioning utenti non indica l'attributo da utilizzare come
userID
o se non è stato possibile determinare l'attributouserID
in base al flusso precedente, il modulo esamina la configurazione dell'area di memorizzazione delle identità per determinare l'attributo userID (ad esempio uid) e segue il processo elencato sopra -
Il modulo tenta di individuare tale attributo nella lista degli attributi della risposta SSO dopo che tali attributi sono stati elaborati dal profilo attributo IdP. Ad esempio, il modulo cerca l'attributo uid nella lista degli attributi elaborati dalla risposta SSO.
-
Se l'attributo non è presente nella lista di attributi della risposta SSO, il modulo valuta la regola di mapping specificata nella voce Partner IdP. Se la regola di mapping utilizza l'attributo
userID
, utilizza i dati mappati comeuserID
, ad esempio se l'asserzione SAML è stata mappata tramite NameID a un record utente LDAP utilizzando l'attributo LDAP uid, il modulo utilizza il valore NameID comeuserID
. -
Se l'attributo
userID
non è ancora stato determinato (perché uid non è incluso nella lista degli attributi inviati ad esempio da IdP), il modulo tenta di utilizzare il valore NameID come valoreuserID
-
Se presente lo utilizza
-
In caso contrario, viene restituito un errore poiché il modulo Provisioning utenti non può selezionare un valore
userID
.
Nota importante: l'algoritmo precedente è piuttosto complesso, ma consente a un amministratore.
-
Eseguire il test del provisioning degli utenti in un POC senza dover eseguire più passi di configurazione e configurare il modulo di provisioning degli utenti in base alle esigenze dell'amministratore.
-
Una volta creato il record utente, il modulo Provisioning utenti imposta gli attributi nel record utente in base a:
-
Elenco di attributi da impostare: indicato dal set di configurazione del modulo impostato dall'amministratore, che indica la lista di attributi dalla risposta SSO da impostare.
-
Gli attributi elencati nella regola di mapping: gli attributi elencati nella regola di mapping della voce Partner IdP vengono impostati automaticamente nel record utente LDAP per assicurarsi che il mapping funzioni la volta successiva che l'utente con una risposta SSO identica esegue SSO Federation con OAM/SP.
Abilitazione del provisioning utente in OAM/SP
Per abilitare/disabilitare il provisioning utente in OAM/SP, eseguire le operazioni riportate di seguito.
-
Immettere l'ambiente WLST eseguendo:
$IAM_ORACLE_HOME/common/bin/wlst.sh
-
Connetti al server di amministrazione WLS:
connect()
-
Passare alla diramazione Runtime dominio:
domainRuntime()
-
Aggiornare la proprietà
userprovisioningenabled
a: -
Abilita provisioning utente in OAM/SP:
putBooleanProperty("/fedserverconNg /userprovisioningenabled", "true")
-
Disabilita provisioning utenti in OAM/SP:
putBooleanProperty("/fedserverconNg /userprovisioningenabled", "false")
- Uscire dall'ambiente WLST: exit()
Test impostazione
Utilizzare la stessa impostazione della federazione SAML 2.0 configurata in precedenza, dove:
-
OAM funge da fornitore di servizi
-
IdP (
AcmeIdP
) invia un'asserzione SAML con-
NameID impostato su
userID
-
Attributi inviati:
-
email
impostato sull'indirizzo e-mail dell'utente -
fname
impostato sufirst name
dell'utente -
surname
impostato sulast name
dell'utente -
title
impostato sulast job title
dell'utente
-
-
-
OAM/SP configurato con un profilo attributo IdP in
-
Mappare
fname
agivenname
-
Mappare
surname
asn
-
Mappare
email
amail
-
L'alice utente viene utilizzato in IdP, mentre non esiste un account utente per l'alice in OAM/SP:
userID
: aliceemail
: alice@oracle.comfirst name
: Alicelast name
: Appletontitle
: manager
-
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:
-
Nessuna configurazione del modulo di provisioning utente
-
La regola di mapping viene eseguita mediante NameID all'attributo
uid
LDAP
Caso d'uso n. 2:
-
Nessuna configurazione del modulo di provisioning utente
-
La regola di mapping viene eseguita tramite posta dell'attributo SAML all'attributo di posta LDAP
Caso d'uso n. 3:
-
La regola di mapping viene eseguita mediante NameID all'attributo
uid
LDAP -
Modulo Provisioning utente configurato per impostare gli attributi
givenname
,sn
e di posta
Caso d'uso n. 4:
-
La regola di mapping viene eseguita tramite posta dell'attributo SAML all'attributo di posta LDAP
-
Modulo di provisioning utente configurato per utilizzare
givenname
comeuserID
Caso d'uso n. 5:
-
La regola di mapping viene eseguita tramite posta dell'attributo SAML all'attributo di posta LDAP
-
Modulo di provisioning utente configurato per l'utilizzo di NameID come
userID
-
Impostare gli attributi
givenname
esn
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 agivenname
. 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:
-
Nessuna configurazione del modulo di provisioning utente
-
La regola di mapping viene eseguita mediante NameID all'attributo
uid
LDAP
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.
-
UserID
:-
Nessuna configurazione del modulo di provisioning utente
-
Il modulo Provisioning utenti ha verificato se l'area di memorizzazione identità utente
UserID
(uid
nel test) era un attributo inviato da IdP. Questo non è il caso. -
Il modulo Provisioning utenti utilizzava NameID come
userID
(che è memorizzato nell'attributo LDAPuid
):uid
è stato impostato su alice
-
-
Altri attributi:
-
Il modulo Provisioning utenti imposta l'attributo o gli attributi utilizzati nella regola di mapping: NameID sono stati mappati a
uid
. Questo attributo è già stato impostato (comeuserID
). -
cn
esn
sono attributi obbligatori secondo lo schema LDAP utilizzato in questo test. Se non vengono specificati in modo esplicito, per popolare tali attributi viene utilizzatouserID
.
-
Caso d'uso n. 2
In questo caso d'uso, l'impostazione è tale che:
-
Nessuna configurazione del modulo di provisioning utente
-
La regola di mapping viene eseguita tramite posta dell'attributo SAML all'attributo di posta LDAP
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.
-
UserID
:-
Nessuna configurazione del modulo di provisioning utente
-
Il modulo Provisioning utenti ha verificato se l'area di memorizzazione identità utente
UserID
(uid
nel test) era un attributo inviato da IdP. Questo non è il caso. -
Il modulo Provisioning utenti utilizzava NameID come
userID
(che è memorizzato nell'attributo LDAPuid
):uid
è stato impostato su alice
-
-
Altri attributi:
-
Il modulo Provisioning utente imposta gli attributi utilizzati nella regola di mapping: l'attributo di posta elettronica nell'asserzione SAML è stato mappato alla posta. L'attributo di posta è stato impostato su
alice@oracle.com
-
cn
esn
sono attributi obbligatori secondo lo schema LDAP utilizzato in questo test. Se non vengono specificati in modo esplicito, per popolare tali attributi viene utilizzatouserID
.
-
Caso d'uso n. 3
In questo caso d'uso, l'impostazione è tale che:
-
La regola di mapping viene eseguita mediante NameID all'attributo
uid
LDAP -
Modulo di provisioning utente configurato per impostare gli attributi
givenname
,sn
email
.
A tale scopo, effettuare le operazioni riportate di seguito.
-
Andare alla console di amministrazione OAM:
http(s)://oam-admin-host:oam-adminport/oamconsole
-
Passare a Access Manager, Plugin
-
Selezionare FedUserProvisioningPlugin
-
Nel campo KEY_USER_RECORD_ATTRIBUTE_LIST immettere
givenname
,sn
e posta come lista separata da virgole senza spazi:givenname
,sn
,mail
-
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.
-
UserID
:-
Nessuna configurazione del modulo Provisioning utenti per
userID
-
Il modulo Provisioning utenti ha verificato se l'area di memorizzazione identità utente
UserID
(uid
nel test) era un attributo inviato da IdP. Questo non è il caso. -
Il modulo Provisioning utenti utilizzava NameID come
userID
(che è memorizzato nell'attributo LDAPuid
):uid
è stato impostato su alice
-
-
Altri attributi:
-
Il modulo Provisioning utenti imposta l'attributo o gli attributi utilizzati nella regola di mapping: NameID sono stati mappati a
uid
. Questo attributo è già stato impostato (comeuserID
). -
Il modulo Provisioning utenti ha recuperato gli attributi
givenname
,sn
e di posta dall'elenco degli attributi elaborati e li ha impostati nel record utente LDAP. -
cn
è un attributo obbligatorio in base allo schema LDAP utilizzato in questo test. Se non viene specificato in modo esplicito, per popolare tale attributo viene utilizzatouserID
.
-
Caso d'uso n. 4
In questo caso d'uso, l'impostazione è tale che:
-
La regola di mapping viene eseguita tramite posta dell'attributo SAML all'attributo di posta LDAP
-
Modulo di provisioning utente configurato per utilizzare
givenname
comeuserID
A tale scopo, effettuare le operazioni riportate di seguito.
-
Andare alla console di amministrazione OAM:
http(s)://oam-admin-host:oam-adminport/oamconsole
-
Passare a Access Manager, Plugin
-
Selezionare FedUserProvisioningPlugin
-
Impostare il campo
KEY_USER_RECORD_ATTRIBUTE_LIST
su un valore vuoto -
Impostare il campo
KEY_USERID_ATTRIBUTE_NAME
sugivenname
-
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.
-
UserID
:- Il modulo Provisioning utenti è stato configurato per utilizzare
givenname
comeuserID
- Il modulo Provisioning utenti è stato configurato per utilizzare
-
Altri attributi:
-
Il modulo Provisioning utente imposta gli attributi utilizzati nella regola di mapping: l'attributo di posta elettronica nell'asserzione SAML è stato mappato alla posta. L'attributo di posta è stato impostato su
alice@oracle.com
. -
cn
esn
sono attributi obbligatori secondo lo schema LDAP utilizzato in questo test. Se non vengono specificati in modo esplicito, per popolare tali attributi viene utilizzatouserID
.
-
Caso d'uso n. 5
In questo caso d'uso, l'impostazione è tale che:
-
La regola di mapping viene eseguita tramite posta dell'attributo SAML all'attributo di posta LDAP
-
Modulo provisioning utente configurato su
-
Utilizzare NameID come
userID
-
Impostare gli attributi
givenname
esn
-
A tale scopo, effettuare le operazioni riportate di seguito.
-
Andare alla console di amministrazione OAM:
http(s)://oam-admin-host:oam-adminport/oamconsole
-
Passare a Access Manager, Plugin
-
Selezionare FedUserProvisioningPlugin
-
Impostare il campo
KEY_USER_RECORD_ATTRIBUTE_LIST
su (lista separata da virgole senza spazi):givenname
,sn
-
Impostare il campo
KEY_USERID_ATTRIBUTE_NAME
sufed.nameidvalue
, ovvero il nome dell'attributo per il valore NameID -
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.
-
UserID:
- Il modulo Provisioning utenti è stato configurato per utilizzare il valore NameID (
fed.nameidvalue
) comeuserID
- Il modulo Provisioning utenti è stato configurato per utilizzare il valore NameID (
-
Altri attributi:
-
Il modulo Provisioning utente imposta gli attributi utilizzati nella regola di mapping: l'attributo di posta elettronica nell'asserzione SAML è stato mappato alla posta. L'attributo di posta è stato impostato su alice@oracle.com.
-
Il modulo Provisioning utenti ha recuperato gli attributi
givenname
esn
dall'elenco degli attributi elaborati e li ha impostati nel record utente LDAP. -
cn
è un attributo obbligatorio in base allo schema LDAP utilizzato in questo test. Se non viene specificato in modo esplicito, per popolare tale attributo viene utilizzatouserID
.
-
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.
JIT User Provisioning in OAM and SP
F61369-01
September 2022
Copyright © 2022, Oracle and/or its affiliates.