LDAP-Skriptbeispiele

  • Freigeben Version: Zurich
  • Aktualisiert 31. Juli 2025
  • 1 Minute Lesedauer
  • Die folgenden Skriptbeispiele gehen davon aus, dass Sie ein Active Directory (AD) für Ihren LDAP-Server verwenden.

    Skript „userAccountControl-Attributwerte“

    Dieses Beispiel testet die Quelle für die userAccountControl-Attributwerte, die einem deaktivierten Anwender zugeordnet sind (514 oder 546).
    //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 ist ein Beispiel mit einer bitweisen Prüfung:

    
    if(source.u_useraccountcontrol & 2){
       active = false;
    }
    

    UserAccountControl-Attributskript

    In diesem Beispiel wird das Attribut userAccountControl untersucht, aber nicht auf bestimmte Werte getestet. Es enthält auch die Option zum erneuten Aktivieren von LDAP-Anwenderaccounts.
    /*
    * 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-Transformationszuordnungsskript

    Hier ist ein Beispiel für ein onBefore-Transformationszuordnungsskript. Das Skript identifiziert deaktivierte Datensätze und Datensätze, die eingefügt werden. Wenn ein deaktivierter Anwender eingefügt wird, 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 führt Flexibilität ein, indem es sich nicht auf die Werte 546 und 514 userAccountControl stützt, sondern stattdessen überprüft, ob der Anwender Mitglied eines bestimmten Distinguished Name (DN) ist. Sie können dieses Skript entweder in verwenden Skript Feld des Datensatzes „Tabelle-Transformationszuordnung“ oder in einem onBefore-Transformationszuordnungsskript.
    //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;
    }