Zum Inhalt springen

LDAP Funktionen im Jitterbit Integration Studio

Einführung

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 Daten enthalten. Diese Funktionen ermöglichen Scripts und Transformations die Verbindung zu einem Verzeichnis über LDAP. Diese Funktionen werden unabhängig vom LDAP Connector verwendet, das über eine ähnliche Funktionalität verfügt, die in den Connector integriert ist.

Das Nutzungsmuster folgt diesen Schritten:

  • LDAPConnect: Stellt eine Verbindung zum Server her
  • LDAPAdd, LDAPReplace, LDAPRemove,..: Warteschlangen für auszuführende Aktionen
  • 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

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("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

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 Attributtyp
  • ldapValue: 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.

Siehe auch die LDAPConnect Und LDAPExecute Funktionen.

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 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 eine Verbindung hergestellt werden soll; kann einen Port enthalten, wie zum Beispiel directory.example.com:10389
  • user: Benutzername für die Verbindung mit dem LDAP Host
  • password: Für die Verbindung mit dem LDAP Host zu verwendendes Kennwort

Optionale Parameter

  • mode: Verbindungsmodus; einer von:

    • 0: Unsichere Verbindung; Port: 389
    • 1: Sichere Verbindung; Port: 389
    • 2: Sichere Verbindung mit LDAP über SSL; Port: 636
  • port: Für die Verbindung mit dem LDAP Host zu verwendender Port (-1 gibt an, dass die Standard LDAP Ports verwendet werden sollen)

Beschreibung

Stellt über LDAP eine Verbindung zu einem Verzeichnis her.

Siehe auch die LDAPExecute Funktion.

Tipp

Verwenden Sie bei Verwendung dieses Befehls eine Jitterbit-Projektvariable, um das Kennwort auf sichere Weise zu speichern, sodass es beim Anzeigen des Script nicht sichtbar ist.

Beispiele

// 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 eindeutiger LDAP 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

  • ldapTyp: Der LDAP Attributtyp
  • ldapValue: 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 leer
  • deleteOldRDN: Wenn true, wird der alte relative Distinguished Name gelöscht; der Standardwert ist false

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 Attributtyp
  • ldapValue: 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 um den Wert eines vorhandenen Attributs durch einen neuen Wert in einem Active Directory zu ersetzen, kann der Text in ein anderes Ergebnis als der 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 wird
  • filter: 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 entspricht
    • 1: Übergeben Sie die Rückgabe einer XML-Darstellung der Suchergebnisse. Dies kann mit dem Set Funktion und kann später über Get und eine XPath-Abfrage mit dem SelectSingleNode 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 Sie Get 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");