JIT-Benutzer-Provisioning in OAM und SP
In diesem Artikel wird beschrieben, wie das Benutzer-Provisioning zu OAM/SP hinzugefügt wird. Dadurch kann der Server während des Federation-SSO einen Benutzerdatensatz dynamisch erstellen, wenn der Benutzer noch keinen Account hat.
Während eines Federation-SSO-Vorgangs validiert OAM/SP die eingehende SSO-Antwort (SAML oder OpenID) und versucht, sie einem lokalen LDAP-Benutzerdatensatz basierend auf Informationen zuzuordnen, die in der SSO-Antwort enthalten sind (in der Regel Benutzerattribute):
-
Wenn die Zuordnung einen einzelnen Benutzerdatensatz zurückgibt, ist der Vorgang erfolgreich, und für diesen Benutzerdatensatz wird eine OAM-Session erstellt
-
Wenn die Zuordnung mehrere LDAP-Datensätze zurückgibt, ist der Vorgang ein nicht behebbarer Fehler:
- Entweder ist die Mappingkonfiguration falsch
- Oder ungültige LDAP-Benutzerdatensätze im Verzeichnis vorhanden
-
Wenn das Mapping keine Datensätze zurückgibt, bedeutet dies, dass
-
Entweder ist die Mappingkonfiguration falsch
-
Oder die Konfiguration ist korrekt, der Benutzer hat jedoch keinen Datensatz im lokalen Verzeichnis. In diesem Fall kann OAM/SP so eingerichtet werden, dass automatisch ein LDAP-Benutzerdatensatz basierend auf den Daten erstellt wird, die in der SSO-Antwort enthalten sind, und dass nachfolgende Federation-SSO-Zuordnungsvorgänge für diesen Benutzer demselben neuen LDAP-Benutzerdatensatz zugeordnet werden.
OAM/SP validiert die SSO-Antwort, verarbeitet die Attribute mit Regeln, die im IdP-Attributprofil für den IdP-Partner definiert sind, und ruft bei Bedarf das in OAM/SP konfigurierte Benutzer-Provisioning-Modul auf:
-
Entweder das enthaltene Benutzer-Provisioning-Modul
-
Oder eine benutzerdefinierte Implementierung eines Benutzer-Provisioning-Moduls
Nach dem Aufruf des User Provisioning-Moduls (Standard oder benutzerdefiniert) erstellt der Server eine Session für den Benutzer. Nachfolgende Federation-SSO-Vorgänge für denselben Benutzer führen dazu, dass OAM/SP die SSO-Antwort dem neu erstellten LDAP-Datensatz zuordnet.
Integriertes Benutzer-Provisioning-Modul
Mit dem integrierten Benutzer-Provisioning-Modul kann ein Benutzerdatensatz im LDAP-Verzeichnis erstellt werden, wenn die Zuordnung nicht erfolgreich verläuft:
-
Verwenden Sie den Identitätsspeicher, der im Partnereintrag IdP angegeben ist, oder den OAM-Standardidentitätsspeicher, wenn keiner angegeben ist
-
Verwenden Sie den Benutzerbasis-DN, der im Partnereintrag IdP angegeben ist, oder den Benutzerbasis-DN für den verwendeten Identitätsspeicher, wenn keiner angegeben ist
-
Erstellen eines Benutzerdatensatzes mit einem
userIDbasierend auf einem Attribut, das in der SAML/OpenID-SSO-Antwort enthalten ist: -
Entweder gibt die Konfiguration des Benutzer-Provisioning-Moduls an, welches Attribut als
userIDverwendet werden soll (Beispiel: foo) -
Das Modul versucht, dieses Attribut in der Liste der Attribute aus der SSO-Antwort zu finden, nachdem diese Attribute vom Attributprofil IdP verarbeitet wurden (Beispiel: Das Modul sucht in der Liste der verarbeiteten Attribute aus der SSO-Antwort nach dem Attribut foo).
-
Wenn das Attribut nicht in der Liste der Attribute aus der SSO-Antwort enthalten ist, wertet das Modul die im Partnereintrag IdP angegebene Zuordnungsregel aus: Wenn die Zuordnungsregel das Attribut
userIDverwendet, verwendet es die zugeordneten Daten alsuserID(Beispiel: Wenn die SAML-Assertion über NameID einem LDAP-Benutzerdatensatz mit dem LDAP-Attribut foo zugeordnet wurde, verwendet das Modul den Wert NameID alsuserID) -
Oder die Konfiguration des Benutzer-Provisioning-Moduls gibt nicht an, welches Attribut als
userIDverwendet werden soll, oder wenn das AttributuserIDnach dem obigen Ablauf nicht bestimmt werden konnte, prüft das Modul die Identitätsspeicherkonfiguration, um das Attribut userID (z.B. uid) zu bestimmen, und folgt dem oben aufgeführten Prozess -
Das Modul versucht, dieses Attribut in der Liste der Attribute aus der SSO-Antwort zu finden, nachdem diese Attribute vom Attributprofil IdP verarbeitet wurden (Beispiel: Das Modul sucht in der Liste der verarbeiteten Attribute aus der SSO-Antwort nach dem Attribut uid).
-
Wenn das Attribut nicht in der Liste der Attribute aus der SSO-Antwort enthalten ist, wertet das Modul die im Partnereintrag IdP angegebene Zuordnungsregel aus. Wenn die Zuordnungsregel das Attribut
userIDverwendet, verwendet sie die zugeordneten Daten alsuserID. (Beispiel: Wenn die SAML-Assertion über NameID einem LDAP-Benutzerdatensatz mit dem LDAP-Attribut uid zugeordnet wurde, verwendet das Modul den Wert NameID alsuserID.) -
Wenn das Attribut
userIDimmer noch nicht bestimmt werden konnte (weil uid nicht in der Liste der von IdP gesendeten Attribute enthalten ist), versucht das Modul, den Wert NameID alsuserIDzu verwenden. -
Wenn vorhanden, wird es verwendet
-
Andernfalls wird ein Fehler ausgelöst, da das Benutzer-Provisioning-Modul keinen
userID-Wert auswählen kann.
Wichtiger Hinweis: Der obige Algorithmus ist etwas komplex, lässt jedoch einen Administrator zu
-
So testen Sie das Benutzer-Provisioning in einem POC, ohne mehrere Konfigurationsschritte ausführen zu müssen, und konfigurieren das Benutzer-Provisioning-Modul entsprechend den Anforderungen des Administrators.
-
Nachdem der Benutzerdatensatz erstellt wurde, legt das Benutzer-Provisioning-Modul Attribute für den Benutzerdatensatz basierend auf:
-
Liste der Attribute, die festgelegt werden sollen: Dies wird durch die vom Administrator festgelegte Modulkonfiguration angegeben, die eine Liste der Attribute aus der SSO-Antwort festlegt
-
Die in der Zuordnungsregel aufgeführten Attribute: Die in der Zuordnungsregel des IdP Partnereintrags aufgeführten Attribute werden automatisch im LDAP-Benutzerdatensatz festgelegt, um sicherzustellen, dass die Zuordnung beim nächsten Mal funktioniert, wenn der Benutzer mit einer identischen SSO-Antwort Federation SSO mit OAM/SP ausführt.
Benutzer-Provisioning in OAM/SP aktivieren
Führen Sie die folgenden Schritte aus, um das Benutzer-Provisioning in OAM/SP zu aktivieren/deaktivieren:
-
Geben Sie die WLST-Umgebung ein, indem Sie Folgendes ausführen:
$IAM_ORACLE_HOME/common/bin/WLST.sh -
Stellen Sie eine Verbindung zum WLS-Admin-Server her:
connect() -
Navigieren Sie zur Domainlaufzeitverzweigung:
domainRuntime() -
Ändern Sie die Eigenschaft
userprovisioningenabledin: -
Benutzer-Provisioning in OAM/SP aktivieren:
putBooleanProperty("/fedserverconNg /userprovisioningenabled", "true") -
Benutzer-Provisioning in OAM/SP deaktivieren:
putBooleanProperty("/fedserverconNg /userprovisioningenabled", "false") - Beenden Sie die WLST-Umgebung: exit()
Testsetup
Verwenden Sie dasselbe SAML 2.0 Federation-Setup, das zuvor konfiguriert wurde. Dabei gilt:
-
OAM fungiert als Serviceanbieter
-
Die IdP (
AcmeIdP) sendet eine SAML-Assertion mit-
NameID auf
userIDgesetzt. -
Gesendete Attribute:
-
emailauf die E-Mail-Adresse des Benutzers gesetzt -
fnameauffirst namedes Benutzers gesetzt -
surnameauflast namedes Benutzers gesetzt -
titleauflast job titledes Benutzers gesetzt
-
-
-
Mit einem IdP-Attributprofil konfigurierter OAM/SP:
-
Ordnen Sie
fnamegivennamezu. -
Ordnen Sie
surnamesnzu. -
Ordnen Sie
emailmailzu. -
Benutzeralice wird auf der IdP verwendet, während kein Benutzerkonto für Alice auf OAM/SP vorhanden ist:
userID: Aliceemail: alice@oracle.comfirst name: Alicelast name: Appletontitle: Manager
-
Während eines SAML 2.0-Föderations-SSO mit dem Remote-IdP-Partner lautet die XML-SAML-Antwort mit der von IdP zurückgesendeten Assertion wie folgt:
<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>
Das Ergebnis der Verarbeitung der SAML 2.0-Assertion durch OAM/SP zeigt die transformierten Attribute sowie die NameID

Beschreibung der Abbildung Operation_Result.jpg
Testfälle
Die Testfälle zeigen verschiedene Konfigurationen für das Benutzer-Provisioning-Modul an, wobei der Benutzeralgorithmus nicht in OAM/SP vor jedem Test vorhanden ist:
Anwendungsfall 1:
-
Keine Konfiguration des Benutzer-Provisioning-Moduls
-
Zuordnungsregel erfolgt über NameID zum LDAP-Attribut
uid
Anwendungsfall 2:
-
Keine Konfiguration des Benutzer-Provisioning-Moduls
-
Zuordnungsregel erfolgt über Mail-Attribut "SAML-Attribut" zu LDAP-Mail-Attribut
Anwendungsfall 3:
-
Zuordnungsregel erfolgt über NameID zum LDAP-Attribut
uid -
Benutzer-Provisioning-Modul konfiguriert, um
givenname,snund Mail-Attribute festzulegen
Anwendungsfall 4:
-
Zuordnungsregel erfolgt über Mail-Attribut "SAML-Attribut" zu LDAP-Mail-Attribut
-
Benutzer-Provisioning-Modul konfiguriert, um
givennamealsuserIDzu verwenden
Anwendungsfall 5:
-
Zuordnungsregel erfolgt über Mail-Attribut "SAML-Attribut" zu LDAP-Mail-Attribut
-
Benutzer-Provisioning-Modul konfiguriert, um NameID als
userIDzu verwenden -
Legen Sie die Attribute
givennameundsnfest.
Drucken Sie nach jedem Federation-SSO-Vorgang den LDAP-Benutzerdatensatz des erstellten Benutzers aus, und löschen Sie diesen Datensatz anschließend vor dem nächsten Test.
Wichtiger Hinweis: Das Attributprofil IdP muss die eingehenden SAML-Attributnamen den Attributnamen zuordnen, die im LDAP-Verzeichnis verwendet werden. Daher ist
fnameim Attributprofil IdP des Testsgivennamezugeordnet. Das integrierte Benutzer-Provisioning-Plug-in übernimmt die Attributnamen aus der Liste der verarbeiteten Attribute und fügt sie unverändert dem LDAP-Benutzerdatensatz hinzu (sofern konfiguriert): Es gibt keine zusätzliche Attributzuordnung.
Anwendungsfall 1
In diesem Anwendungsfall ist das Setup so eingerichtet, dass:
-
Keine Konfiguration des Benutzer-Provisioning-Moduls
-
Zuordnungsregel erfolgt über NameID zum LDAP-Attribut
uid
Nach dem Federation-SSO wurde der Benutzerdatensatz für Alice erstellt:
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
Der LDAP-Benutzerdatensatz weist die folgenden Eigenschaften auf:
-
Benutzer-ID:-
Es war keine Konfiguration des Benutzer-Provisioning-Moduls vorhanden
-
Das Benutzer-Provisioning-Modul hat geprüft, ob der Benutzeridentitätsspeicher
UserID(uidim Test) ein von IdP gesendetes Attribut war: Dies war nicht der Fall -
Das Benutzer-Provisioning-Modul verwendete NameID als
userID(die im LDAP-Attributuidgespeichert ist):uidwurde auf "alice" gesetzt
-
-
Zusätzliche Attribute:
-
Das Benutzer-Provisioning-Modul hat die Attribute festgelegt, die in der Zuordnungsregel verwendet wurden: NameID wurde
uidzugeordnet. Dieses Attribut wurde bereits festgelegt (alsuserID). -
cnundsnsind obligatorische Attribute gemäß dem LDAP-Schema, das in diesem Test verwendet wird. Wenn nicht explizit angegeben, wirduserIDzum Auffüllen dieser Attribute verwendet
-
Anwendungsfall Nr. 2
In diesem Anwendungsfall ist das Setup so eingerichtet, dass:
-
Keine Konfiguration des Benutzer-Provisioning-Moduls
-
Zuordnungsregel erfolgt über Mail-Attribut "SAML-Attribut" zu LDAP-Mail-Attribut
Nach dem Federation-SSO wurde der Benutzerdatensatz für Alice erstellt:
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
Der LDAP-Benutzerdatensatz weist die folgenden Eigenschaften auf:
-
Benutzer-ID:-
Es war keine Konfiguration des Benutzer-Provisioning-Moduls vorhanden
-
Das Benutzer-Provisioning-Modul hat geprüft, ob der Benutzeridentitätsspeicher
UserID(uidim Test) ein von IdP gesendetes Attribut war: Dies war nicht der Fall -
Das Benutzer-Provisioning-Modul verwendete NameID als
userID(die im LDAP-Attributuidgespeichert ist):uidwurde auf "alice" gesetzt
-
-
Zusätzliche Attribute:
-
Das Benutzer-Provisioning-Modul hat die Attribute festgelegt, die in der Zuordnungsregel verwendet wurden: Das E-Mail-Attribut in der SAML-Assertion wurde Mail zugeordnet. Das Mail-Attribut wurde auf
alice@oracle.comgesetzt -
cnundsnsind obligatorische Attribute gemäß dem LDAP-Schema, das in diesem Test verwendet wird. Wenn nicht explizit angegeben, wirduserIDzum Auffüllen dieser Attribute verwendet
-
Anwendungsfall 3
In diesem Anwendungsfall ist das Setup so eingerichtet, dass:
-
Zuordnungsregel erfolgt über NameID zum LDAP-Attribut
uid -
Benutzer-Provisioning-Modul konfiguriert, um die Attribute
givenname,snundmailfestzulegen.
Dazu führen Sie folgende Schritte aus:
-
Gehen Sie zur OAM-Administrationskonsole:
http(s)://OAM-admin-host:OAM-adminport/oamconsole -
Navigieren Sie zu Access Manager, Plug-ins.
-
Wählen Sie FedUserProvisioningPlugin.
-
Geben Sie im Feld KEY_USER_RECORD_ATTRIBUTE_LIST
givenname,snund "mail" als durch Komma getrennte Liste ohne Leerzeichen ein:givenname,sn,mail -
Klicken Sie auf Save.

Beschreibung der Abbildung Plug_ins_Screen.jpg
Nach dem Federation-SSO wird der Benutzerdatensatz für Alice erstellt:
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
Der LDAP-Benutzerdatensatz weist die folgenden Eigenschaften auf:
-
Benutzer-ID:-
Es gab keine Konfiguration des Benutzer-Provisioning-Moduls für
userID -
Das Benutzer-Provisioning-Modul hat geprüft, ob der Benutzeridentitätsspeicher
UserID(uidim Test) ein von IdP gesendetes Attribut war: Dies war nicht der Fall -
Das Benutzer-Provisioning-Modul verwendete NameID als
userID(die im LDAP-Attributuidgespeichert ist):uidwurde auf "alice" gesetzt
-
-
Zusätzliche Attribute:
-
Das Benutzer-Provisioning-Modul hat die Attribute festgelegt, die in der Zuordnungsregel verwendet wurden: NameID wurde
uidzugeordnet. Dieses Attribut wurde bereits festgelegt (alsuserID). -
Das Benutzer-Provisioning-Modul hat die Attribute
givenname,snund Mail aus der Liste der verarbeiteten Attribute abgerufen und diese im LDAP-Benutzerdatensatz festgelegt. -
cnist ein obligatorisches Attribut gemäß dem LDAP-Schema, das in diesem Test verwendet wird. Wenn nicht explizit angegeben, wirduserIDverwendet, um dieses Attribut aufzufüllen
-
Anwendungsfall Nr. 4
In diesem Anwendungsfall ist das Setup so eingerichtet, dass:
-
Zuordnungsregel erfolgt über Mail-Attribut "SAML-Attribut" zu LDAP-Mail-Attribut
-
Benutzer-Provisioning-Modul konfiguriert, um
givennamealsuserIDzu verwenden
Dazu führen Sie folgende Schritte aus:
-
Gehen Sie zur OAM-Administrationskonsole:
http(s)://OAM-admin-host:OAM-adminport/oamconsole -
Navigieren Sie zu Access Manager, Plug-ins.
-
Wählen Sie FedUserProvisioningPlugin.
-
Setzen Sie das Feld
KEY_USER_RECORD_ATTRIBUTE_LISTauf einen leeren Wert -
Setzen Sie das Feld
KEY_USERID_ATTRIBUTE_NAMEaufgivenname. -
Klicken Sie auf Save.

Beschreibung der Abbildung Access_mngt.jpg
Nach dem Federation-SSO wird der Benutzerdatensatz für Alice erstellt:
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
Der LDAP-Benutzerdatensatz weist die folgenden Eigenschaften auf:
-
Benutzer-ID:- Das Benutzer-Provisioning-Modul wurde für die Verwendung von
givennamealsuserIDkonfiguriert
- Das Benutzer-Provisioning-Modul wurde für die Verwendung von
-
Zusätzliche Attribute:
-
Das Benutzer-Provisioning-Modul hat die Attribute festgelegt, die in der Zuordnungsregel verwendet wurden: Das E-Mail-Attribut in der SAML-Assertion wurde Mail zugeordnet. Das Mail-Attribut wurde auf
alice@oracle.comgesetzt. -
cnundsnsind obligatorische Attribute gemäß dem LDAP-Schema, das in diesem Test verwendet wird. Wenn nicht explizit angegeben, wirduserIDzum Auffüllen dieser Attribute verwendet
-
Anwendungsfall Nr. 5
In diesem Anwendungsfall ist das Setup so eingerichtet, dass:
-
Zuordnungsregel erfolgt über Mail-Attribut "SAML-Attribut" zu LDAP-Mail-Attribut
-
Benutzer-Provisioning-Modul konfiguriert für
-
Verwenden Sie NameID als
userID. -
Legen Sie die Attribute
givennameundsnfest.
-
Dazu führen Sie folgende Schritte aus:
-
Gehen Sie zur OAM-Administrationskonsole:
http(s)://OAM-admin-host:OAM-adminport/oamconsole -
Navigieren Sie zu Access Manager, Plug-ins.
-
Wählen Sie FedUserProvisioningPlugin.
-
Setzen Sie das Feld
KEY_USER_RECORD_ATTRIBUTE_LISTauf (durch Komma getrennte Liste ohne Leerzeichen):givenname,sn -
Setzen Sie das Feld
KEY_USERID_ATTRIBUTE_NAMEauffed.nameidvalue. Dies ist der Name des Attributs für den Wert NameID -
Klicken Sie auf Save.

Beschreibung der Abbildung Access_mngt_nameID_Value.jpg
Nach dem Federation-SSO wird der Benutzerdatensatz für Alice erstellt:
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
Der LDAP-Benutzerdatensatz weist die folgenden Eigenschaften auf:
-
Benutzer-ID:
- Das Benutzer-Provisioning-Modul wurde so konfiguriert, dass der NameID-Wert (
fed.nameidvalue) alsuserIDverwendet wird
- Das Benutzer-Provisioning-Modul wurde so konfiguriert, dass der NameID-Wert (
-
Zusätzliche Attribute:
-
Das Benutzer-Provisioning-Modul hat die Attribute festgelegt, die in der Zuordnungsregel verwendet wurden: Das E-Mail-Attribut in der SAML-Assertion wurde Mail zugeordnet. Das Mail-Attribut wurde auf alice@oracle.com gesetzt.
-
Das Benutzer-Provisioning-Modul hat die Attribute
givennameundsnaus der Liste der verarbeiteten Attribute abgerufen und diese im LDAP-Benutzerdatensatz festgelegt. -
cnist ein obligatorisches Attribut gemäß dem LDAP-Schema, das in diesem Test verwendet wird. Wenn nicht explizit angegeben, wirduserIDverwendet, um dieses Attribut aufzufüllen
-
Weitere Lernressourcen
Sehen Sie sich weitere Übungen unter docs.oracle.com/learn an, oder greifen Sie auf weitere kostenlose Lerninhalte im Oracle Learning-Kanal YouTube zu. Besuchen Sie außerdem education.oracle.com/learning-explorer, um Oracle Learning Explorer zu werden.
Die Produktdokumentation finden Sie im Oracle Help Center.
JIT User Provisioning in OAM and SP
F61369-01
September 2022
Copyright © 2022, Oracle and/or its affiliates.