J'essaie d'authentifier les utilisateurs dans Active Directory avec les bibliothèques Novell.Directory.Ldap trouvées dans Mono. Je sais qu'il y a de meilleurs moyens que ci-dessous, mais étant donné que je suis confiné à Mono, ce sont les seules routines supportées du mieux que je peux voir. En utilisant les bibliothèques .NET, je peux authentifier un utilisateur avec son samAccountName.Bibliothèques Active Directory et LDAP
using (DirectoryEntry de = new DirectoryEntry())
{
de.Username = username;
de.Password = password;
de.Path = string.Format("LDAP://{0}/{1}", ADHostname, DefaultNamingContext);
de.AuthenticationType = AuthenticationTypes.Secure;
using (DirectorySearcher deSearch = new DirectorySearcher())
{
deSearch.SearchRoot = de;
deSearch.PropertiesToLoad.Add("cn");
deSearch.Filter = "(&(objectCatagory=person))";
deSearch.FindOne();
}
}
mais cela échoue avec des informations d'identification non valides s'il s'exécute en mono. La seule façon de le faire fonctionner est de spécifier le nom UPN pour le nom d'utilisateur:
de.Username = "[email protected]";
Le problème est que UPN n'est pas un attribut requis pour AD. Alors, comment puis-je authentifier un utilisateur avec juste son nom d'utilisateur?
Je vois un message sur une façon de le faire: Authenticating user using LDAP from PHP
Mais, c'est un problème de poule et l'œuf. Comment puis-je lier pour rechercher le DN des utilisateurs afin que je puisse lier, si je ne peux pas lier comme un utilisateur authentifié pour commencer.
Nous vous remercions de votre aide.
Cela a du sens. J'essayais de le faire avec le moins d'implication possible de la part de l'administrateur, mais j'imagine que le fait de demander le DN complet pour le compte de service n'est pas une grosse affaire. Merci. –