un utilisateur peut faire partie de plusieurs sous-arbre dans un (basé Ldap) Répertoire instance de service?
-
13-09-2019 - |
Question
Je suis assez nouveau à la programmation du service d'annuaire basé ldap en utilisant le framework .net; ont donc une question idiote de base.
Je voudrais savoir les sous tous les arbres un utilisateur particulier à l'utilisation System.DirectoryServices.Protocol appartient.
Tout d'abord, un utilisateur peut faire partie des multiples sous-arbres dans « une » instance de service d'annuaire? Si oui, comment puis-je trouver tous les sous arbres qu'un utilisateur particulier appartient à l'utilisation de l'espace de noms « de System.DirectoryServices.Protocol « ?
Si un utilisateur appartient à « seulement » un sous-arbre particulier, je pense que je peux trouver tout le DN de l'arbre sous du DN de l'utilisateur. S'il vous plaît laissez-moi savoir s'il y a une autre façon efficace?
Mise à jour:
Pour être précis sur ma question, compte tenu de ce DN est de mon objet utilisateur - « uid = Daffyd, OU = Ducks, OU = personnes, O = A « , que ce soit peut-il exister dans d'autres OU directement ou indirectement? Par exemple. peuvent « OU = Ducks » faire partie d'une autre unité d'organisation que « People »?
Alors ma question suivante, sans faire une sorte de manipulation de chaînes de DN de l'utilisateur, puis-je trouver en quelque sorte le nom de nom unique de nœuds parents que cet utilisateur en utilisant System.DirectoryService.Protocol efficacement?
La solution
Je ne sais pas ce que vous entendez par un utilisateur « appartenance » à un sous-arbre. objet utilisateur existera dans un chemin unique dans le répertoire, et son DN vous dira ce que cette voie est (dans la pratique, il est vice versa: vous connaissez le DN et trouvez l'objet). Tel est le point de l'ensemble du DN == nom distinctif:. Pour un nom unique des objets
Bien sûr, un utilisateur peut appartenir à plusieurs groupes (comme une caractéristique d'Active Directory); ces groupes sont répartis sur le répertoire. Je ne sais pas si vous avez aussi fait référence à des groupes lors de l'utilisation du mot « appartiennent ».
Edit: comme tout type d'objet utilisateur ne peut avoir qu'un seul parent OU, de même, chaque unité d'organisation peut avoir un seul conteneur parent (typiquement O ou OU). Le répertoire entier forme un arbre, aucun nœud peut avoir deux parents.
Le cadre ne traite que dns chaînes. Cependant, il y a des tiers bibliothèques analyseur DN disponible.
Autres conseils
Ceci est basé uniquement sur mon expérience avec Active Directory - mais je suppose d'autres répertoires LDAP vont gérer de la même:
Non, un utilisateur existe qu'une seule fois et ne peut donc se trouver dans un seul conteneur (généralement un OrganizationalUnit). Il n'y a pas notion de « liens symboliques » aux utilisateurs, pour autant que je sais.
Et pourquoi voudriez-vous vraiment un utilisateur d'exister en plusieurs endroits de toute façon ??
Si vous voulez que l'utilisateur fasse partie de plusieurs sous-arbres afin de gérer les autorisations, vous faites tout faux - vous ne devriez pas baser vos décisions ou non pour permettre un certain utilisateur une opération donnée sur son « emplacement » dans la hiérarchie LDAP, mais plutôt sur l'appartenance au groupe.
groupes LDAP sont ce qui sont destinés à gérer les autorisations, et un utilisateur peut être membre d'un certain nombre de groupes - là, vous avez votre relation 1: n - utilisateur peut être membre de groupes, et ces groupes sont responsables des autorisations de traitement.
Marc