LDAP Connector
Dieser Adapter stellt eine Verbindung zu einem LDAP-Server (Lightweight Directory Access Protocol) her, um Kontaktdaten abzufragen – bei Bedarf über LDAP Secure. Über adapterspezifische XML-Dokumente als Input-Daten können verschiedene Operationen ausgeführt werden.
Die Konfiguration für LDAP Secure mit selbstsignierten Zertifikaten lässt sich in der Konfigurationsdatei X4config.xml
vornehmen, siehe LDAPS-Konfiguration.
Eigenschaften (Properties)
| Bestimmt, welche Operation der Adapter durchführtMögliche Werte: |
Parameter
| Hauptklasse des Adapters (nicht verändern!)Mögliche Werte: |
| Name der Klasse, die den LDAP-Dienst bereitstelltMögliche Werte: Beliebiger Klassenname, z.B. |
| URL des LDAP(S)-ServersMögliche Werte: Beliebige URL |
| AuthentifizierungsmethodeMögliche Werte: Beliebige gültige Zeichenkette (z.B. |
| Name des Benutzers bzw. der Authentifizierungs-Anwendung (abhängig von der Authentifizierungsmethode)Mögliche Werte: Beliebige gültige Zeichenkette (z.B. |
| Zugehöriges Passwort des Benutzers bzw. der Authentifizierungs-Anwendung (abhängig von der Authentifizierungsart)Mögliche Werte: Beliebige Zeichenkette (z.B. |
| Definiert, wie mit Weiterleitungen umgegangen werden soll.Mögliche Werte:
|
| Attribute eines Objektes ausgebenMögliche Werte:
|
| Deaktiviert die Sicherheitseinstellungen durch Akzeptieren eines beliebigen ZertifikatsMögliche Werte:
|
| Deaktiviert die Sicherheitseinstellungen durch Akzeptieren eines beliebigen im Zertifikat enthaltenen Hostnamen.Mögliche Werte:
|
Statuswerte
| Die Operation wurde erfolgreich ausgeführt. |
| Operation |
| Operation |
| Die Operation ist aufgrund eines technischen Fehlers fehlgeschlagen. |
ReferralException auslösen
Wenn Weiterleitungen manuell verarbeitet werden sollen, dann müssen folgende Schritte befolgt werden:
Exception auffangen.
Weiterleitungsinformationen auslesen, indem
ReferralException.getReferralInfo()
verwendet wird und z. B. den Benutzer fragen, ob der Weiterleitung gefolgt werden soll.Wenn der Weiterleitung gefolgt werden soll, den Weiterleitungskontext mit
ReferralException.getReferralContext()
auslesen und die ursprüngliche Kontextmethode mit den gleichen Argumenten erneut aufrufen, die auch für den ursprünglichen Aufruf verwendet werden sollte.Wenn der Weiterleitung nicht gefolgt werden soll,
ReferralException.skipReferral()
aufrufen.Wenn diese Methode
true
zurückgibt, dann bedeutet das, dass mehreren Weiterleitungen gefolgt werden soll.Wenn das der Fall ist,
ReferralException.getReferralContext()
aufrufen, um fortzufahren. Wenn eine Kontextmethode das Ergebnis aufruft, dann wird für die nächste Weiterleitung wieder eine Exception ausgelöst. Diese Exception ab Schritt 1 behandeln.Wenn die Methode
false
zurückgibt, dann gibt es keine Verweise mehr und dieses Verfahren kann beendet werden.
Weitere Informationen unter https://docs.oracle.com/javase/jndi/tutorial/ldap/referral/throw.html.
Input
Dieser Funktions-Adapter erwartet spezifische Input-XML-Strukturen, die LDAP-Befehle enthalten. Diese Input-XML-Strukturen können über XSL-Mappings in Abhängigkeit von den verarbeiteten Daten dynamisch generiert werden.
search-Befehl
Mit dem LDAP-Befehl search
können Sie Einträge im LDAP-Verzeichnis suchen.
Input
Der LDAP Adapter erwartet zum Ausführen des search
-Befehls folgende Input-XML-Struktur:
<?xml version="1.0" encoding="UTF-8"?> <ldap> <search> <!-- Distinguish Name - base node in LDAP tree where to start search --> <name>OU=Accounts,DC=softproject,DC=local</name> <!-- Search filter - required --> <!-- filter that is applied on search result --> <filter>objectclass=user</filter> <!-- Search control settings --> <controls> <!-- Search scope. --> <!-- Keywords: object, subtree, onelevel --> <!-- object - Results from search will contain one or zero element. --> <!-- One element if the named object satisfies the search --> <!-- filter specified in search. --> <!-- subtree - Search the entire subtree rooted at the named object. --> <!-- onelevel - Search one level of the named context. --> <scope>subtree</scope> <!-- Time limit (ms) - for request duration --> <timeLimit>5000</timeLimit> <!-- List of attributes that should be returned, separated by colon. --> <attributes>uSNCreated,givenname,displayName,cn</attributes> <!-- Count limitation for result --> <countLimit>100</countLimit> </controls> </search> </ldap>
Output
Der erfolgreich ausgeführte Adapter gibt folgendes XML-Dokument aus:
<ldap name="dc=sp-linux" filter="(objectclass=*)" scope="subtree" attributes="cn,sn" countLimit="4"> <entry dn="dc=sp-linux" /> <entry dn="cn=Manager,dc=sp-linux"> <cn>Manager</cn> </entry> <entry dn="o=softproject,dc=sp-linux" /> <entry dn="sn=Tester,o=SoftProject,dc=sp-linux"> <sn>Tester</sn> <cn>John</cn> </entry> </ldap>
add-Befehl
Mit dem LDAP-Befehl add
können Sie Einträge dem LDAP-Verzeichnis hinzufügen.
Input
Der LDAP Adapter erwartet zum Ausführen des add
-Befehls folgende Input-XML-Struktur:
<ldap> <add> <name>sn=Tester, o=SoftProject, dc=sp-linux</name> <!--dn--> <attributes> <objectClass>person</objectClass> <sn>Tester</sn> <cn>John</cn> </attributes> <!--list of attributes that will be added--> </add> </ldap>
Output
Der erfolgreich ausgeführte Funktions-Adapter gibt nach der Ausführung des add
-Befehls kein XML-Dokument aus, sondern lediglich den Status 1 (successful)
oder im Fehlerfall den Status -1 (Error)
.
modify-Befehl
Mit dem LDAP-Befehl modify
können Sie Einträge im LDAP-Verzeichnis verändern. Dabei werden wie in einer Transaktion entweder alle Einträge geändert oder im Fehlerfall keine Änderungen an den Einträgen vorgenommen.
Input
Der LDAP Adapter erwartet zum Ausführen des modify
-Befehls folgende Input-XML-Struktur:
<ldap>
<modify>
<name>dc=sp-linux</name>
<!--dn-->
<add>
<o>Tester</o>
</add>
<replace>
<o>SoftProject</o>
</replace>
<remove>
<o>SoftProject</o>
</remove>
</modify>
</ldap>
Beispiel für ein Passwort replace
:
<ldap>
<modify>
<name>dc=sp-linux</name>
<add>
<o>Tester</o>
</add>
<replace>
<unicodePW base64="true">dGVzdCE=</unicodePW>
</replace>
</modify>
</ldap>
Output
Der erfolgreich ausgeführte Funktions-Adapter gibt nach der Ausführung des modify
-Befehls kein XML-Dokument aus, sondern lediglich den Status 1 (successful)
oder im Fehlerfall den Status -1 (Error)
.
modifyDN-(RDN)-Befehl
Mit dem LDAP-Befehl modifyDN (RDN)
können Sie Einträge im LDAP-Verzeichnis bearbeiten.
Input
Der LDAP Adapter erwartet zum Ausführen des modifyDN-RDN
-Befehls folgende Input-XML-Struktur:
<ldap>
<modifyDN-RDN>
<oldName>sn=Tester, o=SoftProject, dc=sp-linux</oldName>
<!--dn-->
<newName>sn=TestUser, o=SoftProject, dc=sp-linux</newName>
<!--dn-->
</modifyDN-RDN>
</ldap>
Output
Der erfolgreich ausgeführte Funktions-Adapter gibt nach der Ausführung des modifyDN-RDN
-Befehls kein XML-Dokument aus, sondern lediglich den Status 1 (successful)
oder im Fehlerfall den Status -1 (Error)
.
delete-Befehl
Mit dem LDAP-Befehl delete
können Sie Einträge im LDAP-Verzeichnis löschen.
Input
Der LDAP Adapter erwartet zum Ausführen des delete
-Befehls folgende Input-XML-Struktur:
<ldap>
<delete>
<name>sn=Tester, o=SoftProject, dc=sp-linux</name>
<!--dn-->
</delete>
</ldap>
Output
Der erfolgreich ausgeführte Funktions-Adapter gibt nach der Ausführung des delete
-Befehls kein XML-Dokument aus, sondern lediglich den Status 1 (successful)
oder im Fehlerfall den Status -1 (Error)
.
compare-Befehl
Mit dem LDAP-Befehl compare
können Sie Einträge im LDAP-Verzeichnis vergleichen.
Input
Der LDAP Adapter erwartet zum Ausführen des compare
-Befehls folgende Input-XML-Struktur:
<ldap>
<compare>
<name>sn=Tester, o=SoftProject, dc=sp-linux</name>
<!--dn-->
<attributes>
<objectClass>person</objectClass>
<sn>Tester</sn>
<cn>John</cn>
</attributes>
<!--list of attributes that will be compared by values-->
<controls>
<scope>subtree</scope>
<!--keywords: object,subtree,onelevel-->
<timeLimit />
<!--timeLimit (ms)-->
</controls>
</compare>
</ldap>
Output
Der erfolgreich ausgeführte Funktions-Adapter gibt nach der Ausführung des compare
-Befehls kein XML-Dokument aus, sondern lediglich den Status CompareTRUE
, wenn der LDAP-Eintrag mit den Angaben im Input-XML-Dokument übereinstimmt, oder im andernfalls den Status CompareFALSE
.