IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Sécurité Java Discussion :

[LDAP] Dévérouiller/supprimer un compte via JNDI


Sujet :

Sécurité Java

  1. #1
    Membre habitué Avatar de nesbla
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    220
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 220
    Points : 139
    Points
    139
    Par défaut [LDAP] Dévérouiller/supprimer un compte via JNDI
    Bonjour,

    Je développe une application qui est censé mettre à jour / créer / activer / verrouiller / supprimer des comptes dans l'annuaire active directory.

    J'ai réussi à m'y connecter, à récupérer les comptes, en créer, les vérouiller mais je bloque pour le dévérouillage et la suppresion.

    Pour vérouiller mon compte je fais un "OU" avec la valeur 0x0002 de l'attribut "UserAccountControl". Je n'ai aps pu encore le tester mais selon les différentes docs que j'ai vu ça semble être correct.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    // Enregistre la nouvelle valeur.
    Integer resultat = Integer.valueOf((String)attrs.get("UserAccountControl").get()) | 0x0002;
    // Effectue la modification.
    modifier(compteAD, "UserAccountControl", resultat);
    Autant pour vérouiller un compte j'ai compris qu'avec un masque ca devrait marcher, autant pour le vérrouiller je ne sais pas comment m'y prendre... Je suppose qui faut également faire une opération du même type avec un masque mais je ne vois pas lequel.

    J'ai également une question concenant la suppression d'un compte utilisateur. Pour en crée un je fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    // Crée le distinguishedName = cn=NOM Prenom, OU= ***, etc.
    String distinguishedName = "cn=" + compteAD.getNom().toUpperCase() + " " + firstUp(compteAD.getPrenom()) + _baseName;
     
    Attributes newAttributes = new BasicAttributes(true);
     
    // Définit l'objectclass
    Attribute oc = new BasicAttribute("objectclass");
    oc.add("top");
    oc.add("person");
    oc.add("organizationalperson");
    oc.add("user");
    newAttributes.put(oc);
     
    // définit les valeurs du compte AD
    newAttributes.put(new BasicAttribute("sAMAccountName", compteAD.getCodeRedacteur()));
    etc...
    newAttributes.put(new BasicAttribute("mail", compteAD.getEMail()));
     
    // Crée le compteAD dans l'annuaire.
    _ctx.createSubcontext(distinguishedName, newAttributes);
    Je n'ai trouvé aucune doc sur la suppression, je ne suis pas forcement très à l'aise avec JNDI (je débute) donc j'aurais besoin de vos conseils.

    Je suis à votre écoute si vous avez des suggestions ou des pistes.

    Merci

  2. #2
    Membre habitué Avatar de nesbla
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    220
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 220
    Points : 139
    Points
    139
    Par défaut
    Bon je crois que je viens de trouver pour activer un compte, il suffit de faire un OU Exclusif au lieu du OU "classique" :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    // Enregistre la nouvelle valeur (ou exclusif)
    Integer resultat = Integer.valueOf((String)attrs.get("UserAccountControl").get()) ^ 0x0002;
    // Effectue la modification.
    modifier(compteAD, "UserAccountControl", resultat);
    Pour le moment je peux pas faire de test car je n'ai pas encore le serveur de développement "sous la main". Donc si jamais vous voyez que ça ne peut pas marcher je suis à votre écoute.

    Par contre je n'ai toujours pas trouvé comment supprimer un compte Active Directory. Je continue a chercher...

  3. #3
    Membre habitué Avatar de nesbla
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    220
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 220
    Points : 139
    Points
    139
    Par défaut
    Bon au hasard pour la suppression j'ai codé ça comme ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    String distinguishedName = "cn=" + compteAD.getNom().toUpperCase() + " " + firstUp(compteAD.getPrenom()) + _baseName;		
    try {
    	_ctx.destroySubcontext(distinguishedName);
    } catch (NamingException e) {
    	throw TechnicalException.handle(e);
    }
    avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    _baseName = ",OU=Utilisateurs,OU=Comptes,DC=gra,DC=intra,DC=**censure**,DC=fr";
    Etant donné que je code sans pouvoir vérifier, si vous avez fait déjà quelquechose de semblable et que ça vous semble correct ou faux n'hesitez pas a me le dire (ou si vous avez un bout de code similaire à me montrer).

    Merci

  4. #4
    Membre actif
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    296
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 296
    Points : 252
    Points
    252
    Par défaut acces a active directory et securite
    mais comment ton prgramme accede t il a active directory ?

    n'y a t il pas un probleme de securite ?
    cedric

Discussions similaires

  1. [PowerShell] Problème pour supprimer un compte AD via Powershell
    Par PapaErwan dans le forum Scripts/Batch
    Réponses: 1
    Dernier message: 28/01/2011, 11h45
  2. Insérer une entrée dans un annuaire LDAP via JNDI
    Par caro_caro dans le forum API standards et tierces
    Réponses: 0
    Dernier message: 31/07/2009, 17h48
  3. supprimer son compte via espace membre
    Par referenceur-tv dans le forum Langage
    Réponses: 1
    Dernier message: 13/06/2008, 18h51
  4. supprimer un bouton via removeChild
    Par mbk-w dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 12/05/2006, 14h15
  5. [LDAP] AD : désactiver un compte
    Par pogy dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 03/05/2006, 16h50

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo