7
votes

LDAP Comparer les attributs

Je voudrais filtrer pour tous les objets LDAP où le CN ne correspond pas au samaccountName. Par conséquent, j'ai écrit la requête suivante, qui malheureusement, ni ne fonctionne ni ne semble être conforme à RFC:

(! (cn = samaccountName))

Quelqu'un sait-il que la fonctionnalité souhaitée?

meilleures salutations Thomas


4 commentaires

La question ne semble pas avoir de sens comme étant posée. Voulez-vous vraiment récupérer chaque enregistrement sauf celui-là? Quelle est votre exigence réelle?


Comme indiqué, je veux récupérer tous les objets (dans mes utilisateurs de cas) où le nom commun ne correspond pas au SamAccountName. Je pensais que la requête serait (cn! = Samaccountname) qui peut également être écrit comme (! (CN = samaccountname)) ... mais apparemment, je ne suis pas expert LDAP :)


Non, cela renvoie tous les enregistrements où l'attribut "CN" n'a pas de valeur "SamaccountName", pris comme littéral. Je ne pense pas que vous puissiez écrire un filtre pour ce que vous voulez. Ce n'est que le LHS qui est pris comme nom d'attribut.


Jetez un coup d'œil à Publication du blog de Scott Lowe sur l'utilisation du journal Analyseur pour faire cela .


3 Réponses :


1
votes

(! (cn = samaccountName)) est "conforme RFC", car le côté droit de l'affirmation est considéré comme une valeur du CN attribut .

Utilisation de ce filtre entraînera la sortie de toutes les entrées dans une réponse de recherche où la valeur de l'attribut CN est présent et la règle correspondante de CN retourne FALSE pour la valeur insensible à la case SamAccountName (en supposant que la règle correspondante d'attribut CN n'a pas été modifiée de la norme publiée). Les résultats seront soumis à:

  • Limite de temps du serveur
  • Limite de taille du serveur
  • Contrôles d'accès au serveur

    Peut-être que vous vouliez utiliser

    • cn = nom de la valeur de SamAccount-nom

0 commentaires

1
votes

Si vous êtes dans un environnement Windows, vous pouvez utiliser PowerShell Expression Language pour cela.

Get-ADUser -Filter * -Server my.domain.name -Properties CN |
  Where-Object {$_.CN -ne $_.sAMAccountName}


0 commentaires

2
votes

Les filtres LDAP ne permettent pas d'utiliser la valeur d'un autre attribut pour la comparaison du filtre. Vous devez récupérer l'entrée et comparer les deux valeurs.


0 commentaires