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 herLDAPAdd
,LDAPReplace
,LDAPRemove
,..: Wartet Aktionen, die ausgefü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
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 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, zu dem eine Verbindung hergestellt werden soll; kann einen Port enthalten, wiedirectory.example.com:10389
user
: Benutzername, um sich mit dem LDAP-Host zu verbindenpassword
: Passwort, das zur Verbindung mit dem LDAP-Host verwendet werden soll
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 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-AttributtypldapValue
: 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 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 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 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");