LDAP Funktionen in Jitterbit Design Studio
LDAP (Lightweight Directory Access Protocol) ist ein Protokoll, mit dem Sie ein Verzeichnis durchsuchen und aktualisieren können. 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 aber auch beliebige andere Daten enthalten.
Diese Funktionen ermöglichen Scripts und Transformations die Verbindung zu einem Verzeichnis über LDAP.
Das Nutzungsmuster folgt diesen Schritten:
LDAPConnect
: Stellt eine Verbindung zum Server herLDAPAdd, LDAPReplace, LDAPRemove,...
: Warteschlangen für auszuführende AktionenLDAPExecute
: 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
Ab Harmony Version 9.9 können LDAP Passwörter mithilfe dieser LDAP -Funktionen festgelegt werden. Das Passwort muss zunächst in eine Binärzahl umgewandelt werden, bevor es festgelegt werden kann. (Das Passwort muss möglicherweise vor der Umwandlung in eine Binärzahl in Anführungszeichen gesetzt werden, da Active Directory Werte in Anführungszeichen setzt.) Dieses Script 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
Erklärung
string ArrayToMultipleValues(array arr)
Syntax
ArrayToMultipleValues(<arr>)
Erforderliche Parameter
arr
: Ein Array mit Werten, die zum Auffüllen eines mehrwertigen LDAP Attributs verwendet werden sollen
Beschreibung
Signalisiert, dass beim Zuordnen zu einem LDAP Ziel ein Array zum Auffüllen eines mehrwertigen LDAP Attributs verwendet werden soll. Das Array wird in XML konvertiert 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
Erklärung
bool LDAPAdd(string ldapType, string ldapValue)
Syntax
LDAPAdd(<ldapType>, <ldapValue>)
Erforderliche Parameter
ldapType
: Der LDAP Datensatz oder AttributtypldapValue
: Der für den Typ hinzuzufügende Wert
Beschreibung
Um diese Funktion zu nutzen, LDAPConnect
Mit dieser Funktion muss zunächst eine Verbindung zum LDAP -Verzeichnis hergestellt werden.
Nachdem eine Verbindung hergestellt wurde, LDAPAdd()
Mit dieser Funktion können Einträge und Attribute zum verbundenen LDAP -Verzeichnis hinzugefügt werden. Der Wert wird dem im Feld LDAPExecute
Funktion, 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
Erklärung
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 ein LDAP-Ziel im aktuellen Projekthostname
: (Zweite Form) Hostname eines LDAP Servers, mit dem eine Verbindung hergestellt werden soll; kann einen Port enthalten, wie z. B.directory.example.com:10389
user
: (Zweite Form) Benutzername für die Verbindung zum LDAP Hostpassword
: (Zweite Form) Passwort für die Verbindung zum LDAP Host
Optionale Parameter
mode
: (Zweite Form) Verbindungsmodus; einer von:0
: Unsichere Verbindung; Port: 3891
: Sichere Verbindung; Port: 3892
: Sichere Verbindung mit LDAP über SSL; Port: 636
port
: (Zweite Form) Port, der für die Verbindung mit dem LDAP Host verwendet werden soll (-1
gibt an, dass die Standard LDAP Ports verwendet werden sollen)
Beschreibung
Stellt eine Verbindung zu einem Verzeichnis über LDAP her. Der LDAP Endpoint 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 LDAPExecute
Funktion.
Tipp
Wenn Sie die zweite Form dieses Befehls verwenden, speichern Sie das Kennwort mithilfe einer Jitterbit-Projektvariable auf sichere Weise, sodass es beim Anzeigen des Script nicht sichtbar ist.
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
Erklärung
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 nutzen, LDAPConnect
Mit dieser Funktion muss zunächst eine Verbindung zum LDAP -Verzeichnis hergestellt werden.
Nachdem eine Verbindung hergestellt wurde, LDAPDeleteEntry
Die Funktion wird verwendet, um einen durch einen eindeutigen Namen angegebenen Eintrag zu entfernen.
Siehe auch die LDAPConnect
Und LDAPExecute
Funktionen.
Beispiele
LDAPDeleteEntry("CN=wright,CN=Users,DC=company,DC=example,DC=com");
LDAPExecute
Erklärung
bool LDAPExecute(string distinguishedName)
Syntax
LDAPExecute(<distinguishedName>)
Erforderliche Parameter
distinguishedName
: Ein LDAP Distinguished Name auf dem aktuell verbundenen Server
Beschreibung
Um diese Funktion zu nutzen, LDAPConnect
Mit dieser Funktion muss zunächst eine Verbindung zum LDAP -Verzeichnis hergestellt werden.
Nachdem eine Verbindung hergestellt wurde, LDAPExecute()
Mit dieser Funktion können Sie eine oder mehrere Änderungen (Hinzufügen, Entfernen, Ersetzen) ausführen, die zuvor mit dem LDAPAdd
, LDAPRemove
, oder LDAPReplace
Funktionen.
Siehe auch die LDAPConnect
Und LDAPExecute
Funktionen.
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
Erklärung
bool LDAPRemove(string ldapType, string ldapValue)
Syntax
LDAPRemove(<ldapType>, <ldapValue>)
Erforderliche Parameter
ldapType
: Der LDAP AttributtypldapValue
: Der zu entfernende Wert für den angegebenen Attributtyp
Beschreibung
Um diese Funktion zu nutzen, LDAPConnect
Mit dieser Funktion muss zunächst eine Verbindung zum LDAP -Verzeichnis hergestellt werden.
Sobald eine Verbindung hergestellt ist, LDAPRemove
Funktion wird 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 ausgegeben. Siehe auch die LDAPConnect
Und LDAPExecute
Funktionen.
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
Erklärung
bool LDAPRename(string distinguishedName, string newRDN[, string newParent, bool deleteOldRDN])
Syntax
LDAPRename(<distinguishedName>, <newRDN>[, <newParent>, <deleteOldRDN>])
Erforderliche Parameter
distinguishedName
: Der Pfad des umzubenennenden Verzeichniseintrags (Distinguished Name)newRDN
: Der neue relative Distinguished Name
Optionale Parameter
newParent
: Der Distinguished Name des neuen übergeordneten Elements dieses Eintrags; der Standardwert ist leerdeleteOldRDN
: Wenntrue
, wird der alte relative Distinguished Name gelöscht; der Standardwert istfalse
Beschreibung
Um diese Funktion zu nutzen, LDAPConnect
Mit dieser Funktion muss zunächst eine Verbindung zum LDAP -Verzeichnis hergestellt werden.
Sobald eine Verbindung hergestellt ist, LDAPRename
Funktion wird verwendet, um den Distinguished Name eines Eintrags im verbundenen Verzeichnis zu ändern.
Siehe auch die LDAPConnect
Und LDAPExecute
Funktionen.
Beispiele
LDAPRename("telephoneNumber", "telephoneNumberHome");
LDAPExecute("CN=wright,CN=Users,DC=company,DC=example,DC=com");
LDAPReplace
Erklärung
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 nutzen, LDAPConnect
Mit dieser Funktion muss zunächst eine Verbindung zum LDAP -Verzeichnis hergestellt werden.
Sobald eine Verbindung hergestellt ist, LDAPReplace
Funktion wird verwendet, um den Wert eines vorhandenen Attributs durch einen neuen Wert zu ersetzen.
Siehe auch die LDAPConnect
Und LDAPExecute
Funktionen.
Hinweis
Wenn Sie LDAPReplace()
Funktion zum Ersetzen des Wertes eines vorhandenen Attributs durch einen neuen Wert in einem Active Directory, kann der Text in ein anderes Ergebnis als den Eintrag konvertiert werden. Beispielsweise würde François FrançOis zurückgeben. Weitere Informationen zum Hinzufügen von UTF-8-Unterstützung finden Sie im LDAP Eintrag in Konfigurationsdatei (jitterbit.conf) bearbeiten.
Beispiele
// Replacing an LDAP entry and executing it
LDAPReplace("telephoneNumber", "(510) 555-1000");
LDAPExecute("CN=wright,CN=Users,DC=company,DC=example,DC=com");
LDAPSearch
Erklärung
string LDAPSearch(string path, string filter, int detail, string attribute1[, ... string attributeN])
Syntax
LDAPSearch(<path>, <filter>, <detail>, <attribute1>[, ... <attributeN>])
Erforderliche Parameter
path
: Der eindeutige Name, der als Grundlage der Suche verwendet wirdfilter
: Ein Suchfilter für Abfrage, wie in RFC 4515 definiert**detail
: Zurückzugebende Details:0
: Übergeben Sie die Rückgabe einer einfachen Zeichenfolge, die das erste gefundene Attribut ist, das dem Filter entspricht1
: Übergeben Sie die Rückgabe einer XML-Darstellung der Suchergebnisse. Dies kann mit demSet
Funktion und kann später überGet
und eine XPath-Abfrage mit demSelectSingleNode
Funktion.2
: Geben Sie ein 2-dimensionales Array zurück, in dem jede Zeile einen LDAP Eintrag darstellt und die Zeilenelemente die Werte der Attribute sind. Greifen Sie auf die Elemente zu, indem SieGet
Funktion.
attribute,... attributeN
: Ein Attribut, das in das Suchergebnis aufgenommen werden soll (also das Attribut, nach dem Sie suchen). Zusätzliche Attribute können angegeben werden; trennen Sie diese durch Kommas.
Beschreibung
Um diese Funktion zu nutzen, LDAPConnect
Mit dieser Funktion muss zunächst eine Verbindung zum LDAP -Verzeichnis hergestellt werden.
Sobald eine Verbindung hergestellt ist, LDAPSearch
Die Funktion wird verwendet, um innerhalb des verbundenen Verzeichnisses zu suchen.
Siehe auch die LDAPConnect
Und LDAPExecute
Funktionen.
Steuern von Jitterbit-Variablen
Diese Jitterbit-Variablen beeinflussen die Suche:
Variable | Wert(e) | Beschreibung |
---|---|---|
jitterbit.scripting.ldap.scope | 0 | Beschränken Sie den Umfang der Abfrage auf den Basiseintrag |
1 | Suche alle Einträge in der ersten Ebene unterhalb des Basiseintrags, ausgenommen den Basiseintrag (Standard) | |
2 | Durchsuche den Basiseintrag und alle Einträge im Baum unterhalb der Basis | |
jitterbit.scripting.ldap.include_dn_in_results | true | Den Distinguished Name in das Suchergebnis einschließen (Standard: false ) |
jitterbit.scripting.ldap.use_paged_search | true | Verwenden Sie eine seitenweise Suche; nützlich zum Abrufen großer Ergebnismengen (Standard: false ) |
jitterbit.scripting.ldap.max_search_results | n | Beschränken Sie die Anzahl der Suchergebnisse auf _n _ Ergebnisse; ein Standard wird normalerweise vom LDAP Server festgelegt (Standard unbegrenzt: -1 ) |
jitterbit.scripting.ldap.return_null_if_no_results | true | LDAPSearch() so einstellen, dass es null zurückgibt, 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");