LDAP-Skripting
Erstellen Sie anwenderdefinierte Transformationszuordnungen, Skripts und Business-Regeln, um Anforderungen beim Importieren von Daten anzugeben.
Anwenderdefinierte Transformationszuordnungen sollten enthalten Beim Start Und OnAfter Transformationsskripts.
Beim Start Das Skript muss aufrufen LDAPUtils Skripteinbindung und Protokollierung starten. Zum Beispiel die LDAP-Anwenderimport Transformationszuordnung hat einen Beim Start Skript, das diesen Code verwendet:gs.include ( "LDAPUtils" ) ; var ldapUtils = new LDAPUtils ( ) ;
ldapUtils. setLog (log ) ;OnAfter Das Skript muss aufrufen AddMembers Funktion. Zum Beispiel:ldapUtils.addMembers (source , target ) ;Legen Sie deaktivierte Active Directory-Anwender auf inaktiv fest
Verwenden Sie das folgende Skript, um Anwender automatisch zu deaktivieren, wenn der zugehörige AD-Anwender deaktiviert ist.
Vorbereitungen
Warum und wann dieser Vorgang ausgeführt wird
Sie können deaktivierte Active Directory-Anwender identifizieren, indem Sie den Wert von überprüfen UserAccountControl Attribut. Diese Regel wird immer ausgeführt, wenn UserAccountControl Der Wert ändert und deaktiviert Anwenderaccounts, wenn dies der Fall ist Anwender-Account-Steuerung Kennzeichnet einen deaktivierten AD-Account.
Verwenden Sie das folgende Skript, um Anwender automatisch zu deaktivieren, wenn der zugehörige AD-Anwender deaktiviert ist.
Prozedur
Weisen Sie LDAP-Feldwerte zu
Sie können ein Skript verwenden, um jedem Feld, für das eine Feldzuordnung vorhanden ist, einen Wert zuzuweisen.
Um beispielsweise dem Feld sys_user.company einen Wert zuzuweisen, erstellen Sie eine Feldzuordnung für das Feld „Unternehmen“, und fügen Sie ein Transformationsskript hinzu:
company = "Don's Sporting Goods";Schließen Sie bestimmte LDAP-Anwender aus
Wenn Sie die LDAP-Anwenderliste nicht vollständig mithilfe von LDAP-Filtereigenschaften filtern können, können Sie Anwender mit einem Zuordnungsskript ausschließen.
Nachdem Sie die Logik ausgeführt haben, um einen Anwender zu identifizieren, der nicht importiert werden soll, legen Sie das Feld user_Name auf eine leere Zeichenfolge fest, und dieser Anwender wird nicht importiert.
user_name='';Eine Möglichkeit, Anwender zu identifizieren, die herausgefiltert werden sollen, besteht darin, nach einer Zeichenfolge in zu suchen DistinguishedName Attribut. Dieses Skript schließt beispielsweise Accounts aus, die sich nicht in einer Anwender-OU befinden. Sie können dieses Skript verwenden, wenn Sie zu viele Anwender-OE haben, die in die LDAP-Option der Ziel-OU aufgenommen werden können.
//vdn is a variable mapped to distinguishedName
gs.include("LDAPUtils");
var vdn = source.getElement(this.distinguishedName);
if (vdn.indexOf('OU=Users')<0) {
user_name='';
gs.log('LDAP Import Skipping User: ' + vdn);
}Eine komplexere Methode zum Filtern besteht in der Verwendung regulärer Ausdrücke.
//vcn is a variable mapped to cn
//vdn is a variable mapped to distinguishedName
//c is the regular expression string
gs.include("LDAPUtils");
var vdn = source.getElement(this.distinguishedName);
var vcn = source.getElement(this.cn);
var c = /^[a-z][a-z][a-z][0-9][0-9][0-9]$/;
var nvcn = vcn.toLowerCase();
//test to see if the cn is in the form of 3 letters followed by 3 numbers, only import these
if (c.test(nvcn)) {
user_name = nvcn;
} else {
gs.log("LDAP import rejected username: " + vcn + " for DN: " + vdn);
user_name = "";
}