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 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.) 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 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.
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 Projekthostname
: (Zweite Form) Hostname eines LDAP-Servers, mit dem verbunden werden soll; kann einen Port enthalten, wiedirectory.example.com:10389
user
: (Zweite Form) Benutzername, um sich mit dem LDAP-Host zu verbindenpassword
: (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: 3891
: Sichere Verbindung; Standardport: 3892
: 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-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 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 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 einem Datenelement mit derSet
-Funktion zugewiesen und später mitGet
und 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 auf die Elemente mit derGet
-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");