Exemplos de script LDAP

  • Versão de lançamento: Zurich
  • Atualizado 31 de jul. de 2025
  • 1 min. de leitura
  • Os exemplos de script a seguir presumem que você usa um Active Directory (AD) para o servidor LDAP.

    Script de valores do atributo userAccountControl

    Este exemplo testa a origem dos valores do atributo userAccountControl associados a um usuário desabilitado (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;
    }

    Este é um exemplo usando uma verificação de bits:

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

    Script do atributo userAccountControl

    Este exemplo examina o atributo userAccountControl, mas não testa valores específicos. Ele também contém a opção de reativação de contas de usuário 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 do mapa de transformação onBefore

    Este é um exemplo de um script do mapa de transformação onBefore. O script identifica registros desabilitados e que estão sendo inseridos. Se estiver ocorrendo uma inserção de um usuário desabilitado, a transformação da operação ignorará o registro.
    //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 membro DN

    Este exemplo de script apresenta flexibilidade ao não contar com os valores de userAccountControl 546 e 514, mas, em vez disso, verifica se o usuário é um membro de um Nome diferenciado (DN) específico. É possível usar este script no campo Script do registro "Mapa de transformação da tabela" ou em um script do mapa de transformações 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;
    }