LDAP-Funktionen in Jitterbit 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 herLDAPAdd,LDAPReplace,LDAPRemove,..: Wartet Aktionen, die durchgeführt werden sollenLDAPExecute: Führt die Warteschlange auf dem Server aus
Für die Suche können Sie diesem Muster folgen:
LDAPConnect: Stellt eine Verbindung zum Server herLDAPSearch: 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
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 AttributtypldapValue: 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, mit dem verbunden werden soll; kann einen Port enthalten, wiedirectory.example.com:10389user: Benutzername zur Verbindung mit dem LDAP-Hostpassword: Passwort zur Verbindung mit dem LDAP-Host
Optionale Parameter
-
mode: Verbindungsmodus; einer von:0: Unsichere Verbindung; Standardport: 3891: Sichere Verbindung; Standardport: 3892: Sichere Verbindung über LDAP über SSL; Standardport: 636
-
port: Port, der verwendet wird, um eine Verbindung zum LDAP-Host herzustellen (-1bedeutet, 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 werden, sind in der Endpunktnutzungsberichterstattung enthalten und zählen zu Ihrer Lizenz.
Beispiele
// Stellt eine Verbindung zu einem LDAP-Server über 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 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 durch einen Distinguished Name angegebenen Eintrag zu entfernen.
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
ldapTyp: Der LDAP-AttributtypldapValue: 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 sollnewRDN: Der neue relative distinguished name
Optionale Parameter
newParent: Der distinguished name des neuen Elternteils dieses Eintrags; der Standardwert ist leerdeleteOldRDN: Wenntrue, wird der alte relative distinguished name gelöscht; der Standardwert istfalse
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 AttributtypldapValue: 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 wirdfilter: 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 entspricht1: Übergeben, um eine XML-Darstellung der Suchergebnisse zurückzugeben. Dies kann als Datenelement mit derSet-Funktion festgelegt und später mitGetund einer XPath-Abfrage unter Verwendung derSelectSingleNode-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 mit derGet-Funktion auf die Elemente 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 im verbundenen Verzeichnis 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");