LDAP-Skripterstellung
Erstellen Sie benutzerdefinierte Transformationszuordnungen, Skripts und Geschäftsregeln, um die Anforderungen beim Importieren von Daten anzugeben.
Benutzerdefinierte Transformationszuordnungen müssen die Transformationsskripts onStart und onAfter enthalten.
onStart sollte die Skripteinbindung LDAPUtils aufrufen und mit der Protokollierung beginnen. Zum Beispiel verfügt die Transformationszuordnung für LDAP-Benutzerimport über ein onStart -Skript, das den folgenden Code verwendet:gs.include ( "LDAPUtils" ) ; var ldapUtils = new LDAPUtils ( ) ;
ldapUtils. setLog (log ) ;onAfter- Skript sollte die addMembers- Funktion aufrufen. Beispiel:ldapUtils.addMembers (source , target ) ;Legen Sie deaktivierte Active Directory-Benutzer auf inaktiv fest
Verwenden Sie das folgende Skript, um Benutzer automatisch zu deaktivieren, wenn der zugeordnete AD-Benutzer deaktiviert wird.
Vorbereitungen
Warum und wann dieser Vorgang ausgeführt wird
Sie können deaktivierte Active Directory-Benutzer identifizieren, indem Sie den Wert des Attributs userAccountControl überprüfen. Diese Regel wird immer dann ausgeführt, wenn sich der Wert userAccountControl ändert, und deaktiviert Benutzerkonten, wenn die Benutzerkontensteuerung einen deaktivierten AD-Account anzeigt.
Verwenden Sie das folgende Skript, um Benutzer automatisch zu deaktivieren, wenn der zugeordnete AD-Benutzer deaktiviert wird.
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 das folgende Transformationsskript hinzu:
company = "Don's Sporting Goods";Schließen Sie bestimmte LDAP-Benutzer aus
Wenn Sie die LDAP-Benutzerliste mithilfe der LDAP-Filtereigenschaften nicht vollständig filtern können, können Sie Benutzer mit einem Zuordnungsskript ausschließen.
Nachdem Sie die Logik ausgeführt haben, um einen Benutzer zu identifizieren, der nicht importiert werden soll, legen Sie das Feld user_name auf eine leere Zeichenfolge fest. Dieser Benutzer wird nicht importiert.
user_name='';Eine Möglichkeit, Benutzer zu identifizieren, die herausgefiltert werden sollen, besteht darin, im Attribut „ distinguishedName “ nach einer Zeichenfolge zu suchen. Dieses Skript schließt beispielsweise Accounts aus, die sich nicht in einer Benutzer-OE befinden. Sie können dieses Skript verwenden, wenn Sie zu viele Anwender-OE haben, um sie in die LDAP-Option der Ziel-OE aufzunehmen.
//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 Filtermethode ist die 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 = "";
}