Zum Inhalt springen

LDAP-Funktionen im Jitterbit Design Studio

LDAP (Lightweight Directory Access Protocol) ist ein Protokoll, das es ermöglicht, ein Verzeichnis zu durchsuchen und zu aktualisieren. Es wird von zahlreichen Verzeichnisservern wie Microsoft Active Directory und Netscape Directory Server unterstützt. Ein Verzeichnis enthält normalerweise Informationen über Benutzer und Netzwerkressourcen, kann jedoch jede Art von Daten enthalten.

Diese Funktionen ermöglichen es Skripten und Transformationen, sich über LDAP mit einem Verzeichnis zu verbinden.

Das Nutzungsmuster folgt diesen Schritten:

  • LDAPConnect: Stellt eine Verbindung zum Server her
  • LDAPAdd, LDAPReplace, LDAPRemove,...: Wartet Aktionen, die durchgeführt werden sollen
  • LDAPExecute: Führt die Warteschlange auf dem Server aus

Für die Suche können Sie diesem Muster folgen:

  • LDAPConnect: Stellt eine Verbindung zum Server her
  • LDAPSearch: Führt die Suche auf dem Server aus und gibt das Ergebnis zurück

LDAP-Passwörter programmgesteuert festlegen

Seit der Harmony-Version 9.9 können LDAP-Passwörter mit diesen LDAP-Funktionen festgelegt werden. Das Passwort muss zuerst in binär umgewandelt werden, bevor es festgelegt werden kann. (Das Passwort muss möglicherweise vor der Umwandlung in binär in doppelte Anführungszeichen gesetzt werden, da Active Directory Werte in doppelte Anführungszeichen setzen muss.) Dieser Skriptausschnitt zeigt, wie dies erreicht werden kann:

LDAPConnect("<TAG>Project Name/Targets/LDAPTarget</TAG>");
$plain = '"J1tterb1t!@#"';
$pwd = StringToHex($plain);
$i=0;
$newPwd = "";
While($i < Length($pwd)/2,
    $newPwd = $newPwd + Mid($pwd, $i * 2, 2) + "00";
    $i = $i+1;
);
$newPwd = HexToBinary($newPwd);

LDAPReplace("unicodePwd", $newPwd);
LDAPExecute("CN=wright,CN=Users,DC=company,DC=example,DC=com");

ArrayToMultipleValues

Deklaration

string ArrayToMultipleValues(array arr)

Syntax

ArrayToMultipleValues(<arr>)

Erforderliche Parameter

  • arr: Ein Array mit Werten, die verwendet werden, um ein mehrwertiges LDAP-Attribut zu befüllen

Beschreibung

Signalisiert, dass ein Array verwendet werden soll, um ein mehrwertiges LDAP-Attribut beim Mapping zu einem LDAP-Ziel zu befüllen. Das Array wird in XML umgewandelt und interpretiert, wenn auf den LDAP-Server geschrieben wird.

Beispiele

// Create two LDAP attributes using an array
arr = Array();

// Length(arr) will always return the index of
// the next-after-last element of an array
arr[Length(arr)] = "First instance";
arr[Length(arr)] = "Second instance";

// The array will be converted to the string
// "<JB_Array><it>First instance</it><it>Second instance</it></JB_Array>"
result = ArrayToMultipleValues(arr);

LDAPAdd

Deklaration

bool LDAPAdd(string ldapType, string ldapValue)

Syntax

LDAPAdd(<ldapType>, <ldapValue>)

Erforderliche Parameter

  • ldapType: Der LDAP-Datensatz oder Attributtyp
  • ldapValue: Der Wert, der für den Typ hinzugefügt werden soll

Beschreibung

Um diese Funktion zu verwenden, muss zuerst die Funktion LDAPConnect verwendet werden, um eine Verbindung mit dem LDAP-Verzeichnis herzustellen.

Nachdem eine Verbindung hergestellt wurde, wird die Funktion LDAPAdd() verwendet, um Einträge und Attribute zum verbundenen LDAP-Verzeichnis hinzuzufügen. Der Wert wird dem Knoten hinzugefügt, der in der Funktion LDAPExecute angegeben ist, die unmittelbar danach aufgerufen werden sollte, damit die Änderungen wirksam werden.

Beispiele

// Adding a user entry to a directory:
LDAPAdd("objectClass", "user");
LDAPAdd("cn", "wright");
LDAPExecute("CN=wright,CN=Users,DC=company,DC=example,DC=com");

// Adding attributes to a user:
LDAPAdd("description", "Thinks a lot.");
LDAPExecute("CN=wright,CN=Users,DC=company,DC=example,DC=com");

LDAPConnect

Deklaration

bool LDAPConnect(string ldapEndpointId)
bool LDAPConnect(string hostname, string user, string password[, int mode, long port])

Syntax

LDAPConnect(<ldapEndpointId>)
LDAPConnect(<hostname>, <user>, <password>[, <mode>, <port>])

Erforderliche Parameter

  • ldapEndpointId: (Erste Form) Eine LDAP-Quelle oder -Ziel im aktuellen Projekt
  • hostname: (Zweite Form) Hostname eines LDAP-Servers, mit dem verbunden werden soll; kann einen Port enthalten, wie directory.example.com:10389
  • user: (Zweite Form) Benutzername, um sich mit dem LDAP-Host zu verbinden
  • password: (Zweite Form) Passwort, das zur Verbindung mit dem LDAP-Host verwendet werden soll

Optionale Parameter

  • mode: (Zweite Form) Verbindungsmodus; einer von:
    • 0: Unsichere Verbindung; Standardport: 389
    • 1: Sichere Verbindung; Standardport: 389
    • 2: Sichere Verbindung über LDAP über SSL; Standardport: 636
  • port: (Zweite Form) Port, der zur Verbindung mit dem LDAP-Host verwendet werden soll (-1 bedeutet, die Standard-LDAP-Ports zu verwenden)

Beschreibung

Stellt eine Verbindung zu einem Verzeichnis über LDAP her. Der LDAP-Endpunkt muss entweder im aktuellen Projekt definiert oder mit der zweiten Form des Befehls angegeben werden. Siehe die Anweisungen zum Einfügen von Projektelementen.

Siehe auch die Funktion LDAPExecute.

Tipp

Wenn Sie die zweite Form dieses Befehls verwenden, verwenden Sie eine Jitterbit-Projektvariable, um das Passwort auf sichere Weise zu speichern, sodass es beim Anzeigen des Skripts nicht sichtbar ist.

Hinweis

Endpunkte, die mit dieser Funktion erstellt wurden, sind in Endpunktnutzungsberichten enthalten und zählen zu Ihrer Lizenz.

Beispiele

// Connects to an LDAP Target
connected = LDAPConnect("<TAG>Project Name/Targets/LDAPTarget</TAG>");

// Connects to an LDAP server using hostname:port, username, password, mode
connected = LDAPConnect("directory.company.example.com:10389", "admin", $adminpassword, 0);

LDAPDeleteEntry

Deklaration

bool LDAPDeleteEntry(string distinguishedName)

Syntax

LDAPDeleteEntry(<distinguishedName>)

Erforderliche Parameter

  • distinguishedName: Ein LDAP-distinguished Name, der vom aktuell verbundenen Server entfernt werden soll

Beschreibung

Um diese Funktion zu verwenden, muss zuerst die Funktion LDAPConnect verwendet werden, um eine Verbindung zum LDAP-Verzeichnis herzustellen.

Nachdem eine Verbindung hergestellt wurde, wird die Funktion LDAPDeleteEntry verwendet, um einen Eintrag zu entfernen, der durch einen distinguished Name angegeben ist.

Siehe auch die Funktionen LDAPConnect und LDAPExecute.

Beispiele

LDAPDeleteEntry("CN=wright,CN=Users,DC=company,DC=example,DC=com");

LDAPExecute

Deklaration

bool LDAPExecute(string distinguishedName)

Syntax

LDAPExecute(<distinguishedName>)

Erforderliche Parameter

  • distinguishedName: Ein LDAP-Distinguished Name auf dem aktuell verbundenen Server

Beschreibung

Um diese Funktion zu verwenden, muss zuerst die Funktion LDAPConnect verwendet werden, um eine Verbindung mit dem LDAP-Verzeichnis herzustellen.

Nachdem eine Verbindung hergestellt wurde, wird die Funktion LDAPExecute() verwendet, um eine oder mehrere Änderungen (hinzufügen, entfernen, ersetzen) auszuführen, die zuvor mit den Funktionen LDAPAdd, LDAPRemove oder LDAPReplace festgelegt wurden.

Siehe auch die Funktionen LDAPConnect und LDAPExecute.

Beispiele

// Adding LDAP entries and executing them
LDAPAdd("description", "Thinks a lot.");
LDAPReplace("telephoneNumber", "(510) 555 1000");
LDAPExecute("CN=wright,CN=Users,DC=company,DC=example,DC=com");

LDAPRemove

Deklaration

bool LDAPRemove(string ldapType, string ldapValue)

Syntax

LDAPRemove(<ldapType>, <ldapValue>)

Erforderliche Parameter

  • ldapType: Der LDAP-Attributtyp
  • ldapValue: Der Wert, der für den angegebenen Attributtyp entfernt werden soll

Beschreibung

Um diese Funktion zu verwenden, muss zuerst die Funktion LDAPConnect verwendet werden, um eine Verbindung mit dem LDAP-Verzeichnis herzustellen.

Sobald eine Verbindung hergestellt ist, wird die Funktion LDAPRemove verwendet, um ein Attribut eines bestimmten Typs und mit einem bestimmten Wert zu entfernen.

Wenn der Attributtyp dieses Wertes nicht gefunden wird, wird ein Fehler ausgelöst. Siehe auch die Funktionen LDAPConnect und LDAPExecute.

Beispiele

// Removing an LDAP entry and executing it
LDAPRemove("telephoneNumber", "(510) 555-1000");
LDAPAdd("telephoneNumber", "(510) 555-2000");
LDAPExecute("CN=wright,CN=Users,DC=company,DC=example,DC=com");

LDAPRename

Deklaration

bool LDAPRename(string distinguishedName, string newRDN[, string newParent, bool deleteOldRDN])

Syntax

LDAPRename(<distinguishedName>, <newRDN>[, <newParent>, <deleteOldRDN>])

Erforderliche Parameter

  • distinguishedName: Der Pfad des Verzeichniseintrags (distinguished name), der umbenannt werden soll
  • newRDN: Der neue relative distinguished name

Optionale Parameter

  • newParent: Der distinguished name des neuen Elternteils dieses Eintrags; der Standardwert ist leer
  • deleteOldRDN: Wenn true, wird der alte relative distinguished name gelöscht; der Standardwert ist false

Beschreibung

Um diese Funktion zu verwenden, muss zuerst die Funktion LDAPConnect verwendet werden, um eine Verbindung mit dem LDAP-Verzeichnis herzustellen.

Sobald eine Verbindung hergestellt ist, wird die Funktion LDAPRename verwendet, um den distinguished name eines Eintrags im verbundenen Verzeichnis zu ändern.

Siehe auch die Funktionen LDAPConnect und LDAPExecute.

Beispiele

LDAPRename("telephoneNumber", "telephoneNumberHome");
LDAPExecute("CN=wright,CN=Users,DC=company,DC=example,DC=com");

LDAPReplace

Deklaration

bool LDAPReplace(string ldapType, string ldapValue)

Syntax

LDAPReplace(<ldapType>, <ldapValue>)

Erforderliche Parameter

  • ldapType: Der LDAP-Datensatz oder Attributtyp
  • ldapValue: Der neue Wert, der für den Typ festgelegt werden soll

Beschreibung

Um diese Funktion zu verwenden, muss zuerst die Funktion LDAPConnect verwendet werden, um eine Verbindung mit dem LDAP-Verzeichnis herzustellen.

Sobald eine Verbindung hergestellt ist, wird die Funktion LDAPReplace verwendet, um den Wert eines vorhandenen Attributs durch einen neuen Wert zu ersetzen.

Siehe auch die Funktionen LDAPConnect und LDAPExecute.

Hinweis

Wenn Sie die Funktion LDAPReplace() verwenden, um den Wert eines vorhandenen Attributs in einem Active Directory durch einen neuen Wert zu ersetzen, kann der Text in ein anderes Ergebnis als den Eintrag umgewandelt werden. Zum Beispiel würde François FrançOis zurückgeben. Weitere Informationen zur Unterstützung von UTF-8 finden Sie im LDAP Eintrag in Die Konfigurationsdatei bearbeiten (jitterbit.conf).

Beispiele

// Ersetzen eines LDAP-Eintrags und Ausführen
LDAPReplace("telephoneNumber", "(510) 555-1000");
LDAPExecute("CN=wright,CN=Users,DC=company,DC=example,DC=com");

LDAPSearch

Deklaration

string LDAPSearch(string path, string filter, int detail, string attribute1[, ... string attributeN])

Syntax

LDAPSearch(<path>, <filter>, <detail>, <attribute1>[, ... <attributeN>])

Erforderliche Parameter

  • path: Der Distinguished Name, der als Basis für die Suche verwendet wird
  • filter: Ein Abfragezeichenfolgen-Suchfilter, wie in RFC 4515 definiert**
  • detail: Details, die zurückgegeben werden sollen:
    • 0: Übergeben, um eine einfache Zeichenfolge zurückzugeben, die das erste Attribut ist, das dem Filter entspricht
    • 1: Übergeben, um eine XML-Darstellung der Suchergebnisse zurückzugeben. Dies kann einem Datenelement mit der Set-Funktion zugewiesen und später mit Get und einer XPath-Abfrage unter Verwendung der SelectSingleNode-Funktion abgerufen werden.
    • 2: Übergeben, um ein 2-dimensionales Array zurückzugeben, wobei jede Zeile einen LDAP-Eintrag darstellt und die Zeilen-Elemente die Werte der Attribute sind. Greifen Sie auf die Elemente mit der Get-Funktion zu.
  • attribute,... attributeN: Ein Attribut, das in das Suchergebnis einbezogen werden soll (mit anderen Worten, das Attribut, nach dem Sie suchen). Zusätzliche Attribute können angegeben werden; trennen Sie sie durch Kommas.

Beschreibung

Um diese Funktion zu verwenden, muss zuerst die LDAPConnect-Funktion verwendet werden, um eine Verbindung mit dem LDAP-Verzeichnis herzustellen.

Sobald eine Verbindung hergestellt ist, wird die LDAPSearch-Funktion verwendet, um innerhalb des verbundenen Verzeichnisses zu suchen.

Siehe auch die Funktionen LDAPConnect und LDAPExecute.

Steuerung von Jitterbit-Variablen

Diese Jitterbit-Variablen beeinflussen die Suche:

Variable Value(s) Beschreibung
jitterbit.scripting.ldap.scope 0 Den Geltungsbereich der Abfrage auf den Basiseintrag beschränken
1 Alle Einträge auf der ersten Ebene unterhalb des Basiseintrags suchen, den Basiseintrag ausschließend (Standard)
2 Den Basiseintrag und alle Einträge im Baum unterhalb der Basis suchen
jitterbit.scripting.ldap.include_dn_in_results true Den distinguished name im Suchergebnis einbeziehen (Standard: false)
jitterbit.scripting.ldap.use_paged_search true Eine paginierte Suche verwenden; nützlich zum Abrufen großer Ergebnismengen (Standard: false)
jitterbit.scripting.ldap.max_search_results n Die Anzahl der Suchergebnisse auf n Ergebnisse beschränken; ein Standardwert wird normalerweise vom LDAP-Server festgelegt (Standard unbegrenzt: -1)
jitterbit.scripting.ldap.return_null_if_no_results true LDAPSearch() null zurückgeben, wenn die Suche keine Ergebnisse liefert (Standard: false)

Beispiele

// Connecting to an LDAP server using a password set
// in a global variable ("$ldapPassword") and then performing a search
LDAPConnect("directory.company.example.com", "ghvwright", $ldapPassword, 0);
directorySearchResults = LDAPSearch("CN=Users,DC=company,DC=example,DC=com",
  "(&(objectCategory=person)(objectClass=user))", 1, "name", "whenCreated",
  "description", "telephoneNumber");