Zum Inhalt springen

LDAP-Funktionen im Jitterbit Integration Studio

Einführung

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. Diese Funktionen werden unabhängig vom LDAP-Connector verwendet, der ähnliche Funktionalitäten in den Connector integriert hat.

Das Nutzungsmuster folgt diesen Schritten:

  • LDAPConnect: Stellt eine Verbindung zum Server her
  • LDAPAdd, LDAPReplace, LDAPRemove,..: Wartet Aktionen, die ausgefü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.) Dieses Skriptfragment zeigt, wie dies erreicht werden kann:

LDAPConnect("directory.company.example.com:10389", "admin", $adminpassword, 0);
$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

Signale, dass ein Array verwendet werden sollte, 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.

Siehe auch die Funktionen LDAPConnect und LDAPExecute.

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 hostname, string user, string password[, int mode, long port])

Syntax

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

Erforderliche Parameter

  • hostname: Hostname eines LDAP-Servers, zu dem eine Verbindung hergestellt werden soll; kann einen Port enthalten, wie directory.example.com:10389
  • user: Benutzername, um sich mit dem LDAP-Host zu verbinden
  • password: Passwort, das zur Verbindung mit dem LDAP-Host verwendet werden soll

Optionale Parameter

  • mode: Verbindungsmodus; einer von:

    • 0: Unsichere Verbindung; Standardport: 389
    • 1: Sichere Verbindung; Standardport: 389
    • 2: Sichere Verbindung über LDAP über SSL; Standardport: 636
  • port: Port, der verwendet wird, um sich mit dem LDAP-Host zu verbinden (-1 bedeutet, die Standard-LDAP-Ports zu verwenden)

Beschreibung

Stellt eine Verbindung zu einem Verzeichnis über LDAP her.

Siehe auch die Funktion LDAPExecute.

Tipp

Verwenden Sie beim Einsatz dieses Befehls 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 der Endpunktnutzungsberichterstattung enthalten und zählen zu Ihrer Lizenz.

Beispiele

// Stellt eine Verbindung zu einem LDAP-Server unter Verwendung von hostname:port, Benutzername, Passwort, Modus her
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 derzeit verbundenen Server entfernt 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 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 aufgerufen 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

  • ldapTyp: 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 aufgerufen 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 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 der Eintrag umgewandelt werden. Zum Beispiel würde François FrançOis zurückgeben. Für weitere Informationen zur Unterstützung von UTF-8 siehe den 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 Funktion LDAPConnect verwendet werden, um eine Verbindung mit dem LDAP-Verzeichnis herzustellen.

Sobald eine Verbindung hergestellt ist, wird die Funktion LDAPSearch 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 Wert(e) 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 des Basiseintrags 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");