LDAP: как искать пользователя с идентификатором windows - PullRequest
0 голосов
/ 19 сентября 2011

Мне нужно аутентифицировать пользователя, используя идентификатор Windows, который не совпадает с «именем пользователя».Например: идентификатор Windows - jSmith, но имя пользователя - «Джо Смит».Мне нужно найти Джо Смита на основе идентификатора Windows, а затем проверить, является ли он членом определенной группы.

Я предполагаю или надеюсь, что идентификатор Windows является атрибутом пользователя, но я новичок в LDAP и не знаю, как искать определенный атрибут у всех пользователей.

1 Ответ

0 голосов
/ 19 сентября 2011

Я предполагаю, что когда вы говорите Windows ID для аутентификации, ваш LDAP на самом деле Active Directory.

Если вы просто хотите найти пользователя по LanId в Active Directory:

  1. подключение к Active с использованием имени пользователя и пароля учетной записи администратора / службы.
  2. поиск пользователя со следующим фильтром: "(&(objectClass=user)(sAMAccountName=" + searchUsername + "))"

Если вы хотите аутентифицировать пользователя:

Hashtable environment = new Hashtable();
environment.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");// can make it variable, not needed so far
environment.put(Context.SECURITY_AUTHENTICATION, "simple"); // can make it variable, not needed so far
environment.put(Context.PROVIDER_URL, url);
environment.put(Context.SECURITY_PRINCIPAL, username + "@" + domain); // This is specific to AD
environment.put(Context.SECURITY_CREDENTIALS, password);

return new InitialLdapContext(environment, null);

Если приведенный выше код успешно выполнен без исключения, это означает, что пользователь предоставил правильное имя пользователя / пароль

...