Beispiele für LDAP-Skripts
In den folgenden Skriptbeispielen wird davon ausgegangen, dass Sie Active Directory (AD) für Ihren LDAP-Server verwenden.
userAccountControl Attributwerte Skript
In diesem Beispiel wird die Quelle für die Attributwerte userAccountControl getestet, die einem deaktivierten Benutzer (514 oder 546) zugeordnet sind.//Deactivate LDAP-disabled users during transform based on 'userAccountControl' attribute
if(source.u_useraccountcontrol == '514' || source.u_useraccountcontrol == '546'){
target.active=false;
target.locked_out=true;
}Hier ein Beispiel mit einer Bit-weisen Prüfung:
if(source.u_useraccountcontrol & 2){
active = false;
}
userAccountControl-Attributskript
In diesem Beispiel wird das Attribut userAccountControl untersucht, es wird jedoch nicht auf bestimmte Werte getestet. Sie enthält auch die Option zum erneuten Aktivieren von LDAP-Benutzerkonten./*
* Deactivate LDAP-disabled users during transform based on 'userAccountControl' attribute
* Convert the userAccountControl attribute back to a hex value
*/
var ctrl = parseInt(source.u_useraccountcontrol, 10);
ctrl = ctrl.toString(16);
/*
* The only digit we care about is the final one
* A final hex digit value of '2' in 'ctrl' means disabled
*/
if(ctrl.substr(-1) == "2"){
//Deactivate and lock the user account
target.active = false;
target.locked_out = true;
//Ignore any insert of a disabled record
if(action == 'insert'){
ignore = true;
}
}
/* Optional: Uncomment else block to reactivate and unlock the user account
else {
target.active = true;
target.locked_out = ctrl.substr(-2, 1) == "1";
}
*/onBefore-Transform Map-Skript
Hier ist ein Beispiel für ein onBefore-Transformationszuordnungsskript. Das Skript identifiziert deaktivierte Datensätze und Datensätze, die eingefügt werden. Wenn eine Einfügung eines deaktivierten Benutzers erfolgt, ignoriert die Vorgangstransformation den Datensatz.//Ignore any insert of a disabled record as defined by the 'userAccountControl' attribute
var uc = source.u_useraccountcontrol;
if((uc == '514' || uc == '546') && action == 'insert'){
ignore = true;
}DN-Mitgliedsskript
Dieses Skriptbeispiel bietet Flexibilität, indem nicht auf die Werte 546 und 514 userAccountControl zurückgegriffen wird, sondern stattdessen überprüft wird, ob der Benutzer Mitglied eines bestimmten Distinguished Name (DN) ist. Sie können dieses Skript entweder im Feld „ Skript “ des Datensatzes „Tabellentransformationszuordnung“ oder in einem onBefore-Transformationszuordnungsskript verwenden.//Deactivate LDAP-disabled users during transform based on OU membership in 'dn'
if(source.u_dn.indexOf('OU=Disabled Accounts') > -1){
target.active = false;
target.locked_out = true;
}