LDAP-Skriptbeispiele

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

    Skript für userAccountControl-Attributwerte

    Dieses Beispiel testet die Quelle für die userAccountControl-Attributwerte, die einem deaktivierten Anwender (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 ist ein Beispiel mit einer bitweisen Prüfung:

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

    UserAccountControl-Attributskript

    Dieses Beispiel untersucht das Attribut „userAccountControl“, testet jedoch nicht auf bestimmte Werte. 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 „Tabellentransformationszuordnung“ 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;
    }