Exemples de scripts LDAP

  • Rversion finale: Zurich
  • Mis à jour 31 juil. 2025
  • 1 minute de lecture
  • Les exemples de script suivants supposent que vous utilisez un Active Directory (AD) pour votre serveur LDAP.

    Script des valeurs d’attributs userAccountControl

    Cet exemple teste la source des valeurs d’attribut userAccountControl associées à un utilisateur désactivé (514 ou 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;
    }

    Voici un exemple utilisant une vérification au niveau du bit :

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

    Script d’attribut userAccountControl

    Cet exemple examine l’attribut userAccountControl mais ne teste pas de valeurs spécifiques. Il offre également la possibilité de réactiver les comptes d’utilisateurs LDAP.
    /*
    * 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";
    }
    */

    Script de carte de transformation onBefore

    Voici un exemple de script de carte de transformation onBefore. Le script identifie les enregistrements désactivés et les enregistrements en cours d’insertion. Si une insertion d’un utilisateur désactivé se produit, l’opération de transformation ignore l’enregistrement.
    //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;
    }

    Script de membre DN

    Cet exemple de script introduit une flexibilité en ne s’appuyant pas sur les valeurs 546 et 514 de userAccountControl, mais en vérifiant si l’utilisateur est membre d’un nom unique (DN) particulier. Vous pouvez utiliser ce script dans le champ Script de l’enregistrement « Carte de transformation de table » ou dans un script de carte de transformation onBefore.
    //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;
    }