Comment build une requête LDAP pour AD qui renvoie tous les users d'un groupe de security particulier dont les counts ne sont pas désactivés?

Comment build une requête LDAP pour AD qui renvoie tous les users d'un groupe de security particulier dont les counts ne sont pas désactivés?

j'ai essayé

(& (objectClass = personne) (! (userAccountControl = ACCOUNTDISABLE )))

mais cela ne semble pas fonctionner.

Je tente de configurer Google Apps Directory Sync et je voudrais synchroniser tous les users qui font partie du groupe de security «Utilisateurs Google Apps» dont les counts ne sont pas désactivés (ou, en option, suspendre des counts en GA s'ils sont désactivés en AD ).

4 Solutions collect form web for “Comment build une requête LDAP pour AD qui renvoie tous les users d'un groupe de security particulier dont les counts ne sont pas désactivés?”

Parfois, un set de valeurs oui / non est stocké dans une seule valeur en définissant différents bits. Vous pouvez utiliser un masque de bits pour vérifier s'ils sont configurés.

Par exemple, 546 en décimal est la valeur binary 10 0010 0010 – en décimale, la sum de 512, 32 et 2. (Tous ces nombres sont des puissances de 2, ce qui signifie qu'ils n'ont qu'un «1» dans leur représentation binary) : Cela signifie que ces trois valeurs oui / non sont définies.

Selon les paragraphes userAccountControl, cela signifie que les valeurs suivantes sont définies:

NORMAL_ACCOUNT (512) PASSWD_NOTREQD (32) ACCOUNTDISABLE (2) 

Cependant, par exemple, si vous aviez un user qui n'avait pas PASSWD_NOTREQD réglé (de sorte que leur valeur userAccountControl était 512), ou celui qui avait également DONT_EXPIRE_PASSWORD (65536) défini (ce qui signifie que leur valeur était 66082), vous ne findez pas ces users dans votre requête.

Ce que vous devez faire, c'est utiliser un bitwise ET afin d'interroger la valeur de ce bit uniquement:

 10 0010 0010 00 0000 0010 ------------ 00 0000 0010 

Si la valeur pour ce bit est 1, alors ce bit est défini. Ce n'est pas grave ce que les autres bits sont configurés, donc vous requestz effectivement si userAccountControl & 2 == 2 .

La syntaxe LDAP pour vérifier un bit en utilisant AND est 1.2.840.113556.1.4.803, vous pouvez donc voir si le bit ACCOUNTDISABLE est configuré avec (userAccountControl: 1.2.840.113556.1.4.803: = 2). Ajouter (! (Foo)) autour de lui vous donne tous les users qui ne sont pas désactivés.

On dirait que cela fonctionnera, mais il ne ramènera pas les membres du groupe nesteds:

 (& (memberOf=CN=GApsUsers,DN=....) (!(userAccountControl=546)) ) 

Cela marche!

 (&(memberOf=CN=Google Apps Users,DC=bbc,DC=pri)(!(userAccountControl:1.2.840.113556.1.4.803:=2))) 

proche mais

(& (objectClass = personne) (! (userAccountControl = ACCOUNTDISABLE)))

devrait être

(& (objectClass = personne) (! userAccountControl = ACCOUNTDISABLE))

S'il vous plaît noter que je ne peux pas vraiment tester cela d'où je suis!

  • Apache + LDAP auth sur Ubuntu dit "Impossible de contacter le server LDAP" alors que ldapsearch est parfait
  • Quelles sont les différences dans les schémas des servers d'annuaire principaux?
  • SugarCRM - Impossible de se connecter en utilisant LDAP après le changement de mot de passe
  • Gestion des counts user Linux + Samba + plus
  • Traduisez dynamicment posixGroup à groupOfNames dans slapd (Apple Open Directory)
  • LDAP pour 8 machines et 4 users
  • Un domaine autonome doit-il effectuer une poursuite par renvoi LDAP?
  • Comment puis-je faire que Kerberos libère le cache d'informations d'identification lorsqu'un user modifie son mot de passe?
  • Option Sudo Command Alias ​​équivalente dans OpenLDAP
  • Exportez tous les attributes AD et la taille "Range Upper" par défaut pour la class User?
  • Valiseur de nom distinctif LDAP
  • Les astuces du serveur de linux et windows, tels que ubuntu, centos, apache, nginx, debian et des sujets de rĂ©seau.