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

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:

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:

Wichtiger Hinweis: Der obige Algorithmus ist etwas komplex, lässt jedoch einen Administrator zu

Benutzer-Provisioning in OAM/SP aktivieren

Führen Sie die folgenden Schritte aus, um das Benutzer-Provisioning in OAM/SP zu aktivieren/deaktivieren:

  1. Geben Sie die WLST-Umgebung ein, indem Sie Folgendes ausführen: $IAM_ORACLE_HOME/common/bin/WLST.sh

  2. Stellen Sie eine Verbindung zum WLS-Admin-Server her: connect()

  3. Navigieren Sie zur Domainlaufzeitverzweigung: domainRuntime()

  4. Ändern Sie die Eigenschaft userprovisioningenabled in:

  5. Beenden Sie die WLST-Umgebung: exit()

Testsetup

Verwenden Sie dasselbe SAML 2.0 Federation-Setup, das zuvor konfiguriert wurde. Dabei gilt:

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:

Anwendungsfall 2:

Anwendungsfall 3:

Anwendungsfall 4:

Anwendungsfall 5:

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 fname im Attributprofil IdP des Tests givenname zugeordnet. 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:

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:

Anwendungsfall Nr. 2

In diesem Anwendungsfall ist das Setup so eingerichtet, dass:

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:

Anwendungsfall 3

In diesem Anwendungsfall ist das Setup so eingerichtet, dass:

Dazu führen Sie folgende Schritte aus:

  1. Gehen Sie zur OAM-Administrationskonsole: http(s)://OAM-admin-host:OAM-adminport/oamconsole

  2. Navigieren Sie zu Access Manager, Plug-ins.

  3. Wählen Sie FedUserProvisioningPlugin.

  4. Geben Sie im Feld KEY_USER_RECORD_ATTRIBUTE_LIST givenname, sn und "mail" als durch Komma getrennte Liste ohne Leerzeichen ein: givenname,sn,mail

  5. 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:

Anwendungsfall Nr. 4

In diesem Anwendungsfall ist das Setup so eingerichtet, dass:

Dazu führen Sie folgende Schritte aus:

  1. Gehen Sie zur OAM-Administrationskonsole: http(s)://OAM-admin-host:OAM-adminport/oamconsole

  2. Navigieren Sie zu Access Manager, Plug-ins.

  3. Wählen Sie FedUserProvisioningPlugin.

  4. Setzen Sie das Feld KEY_USER_RECORD_ATTRIBUTE_LIST auf einen leeren Wert

  5. Setzen Sie das Feld KEY_USERID_ATTRIBUTE_NAME auf givenname.

  6. 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:

Anwendungsfall Nr. 5

In diesem Anwendungsfall ist das Setup so eingerichtet, dass:

Dazu führen Sie folgende Schritte aus:

  1. Gehen Sie zur OAM-Administrationskonsole: http(s)://OAM-admin-host:OAM-adminport/oamconsole

  2. Navigieren Sie zu Access Manager, Plug-ins.

  3. Wählen Sie FedUserProvisioningPlugin.

  4. Setzen Sie das Feld KEY_USER_RECORD_ATTRIBUTE_LIST auf (durch Komma getrennte Liste ohne Leerzeichen): givenname,sn

  5. Setzen Sie das Feld KEY_USERID_ATTRIBUTE_NAME auf fed.nameidvalue. Dies ist der Name des Attributs für den Wert NameID

  6. 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:

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.