7

Я пытаюсь интегрировать свою программу с LDAP. У меня есть сервер Active Directory, который, по-видимому, говорит на LDAP. Я хочу посмотреть, что находится на сервере, прежде чем я попытаюсь отладить свой собственный код. Я нашел программу под названием jxplorer, которая утверждает, что может общаться с серверами LDAP.

Тем не менее, я не могу заставить его работать. Я использую настройки:

  • Host: (IP-адрес моего сервера AD)
  • Порт: 389
  • Протокол: LDAPv3
  • Базовое DN: OU = MyCompany, DC = domaincontroller, DC = local (строка, которую я получил от кого-то в моей компании, который ранее писал здесь какой-то код LDAP)
  • Уровень: Пользователь + Пароль
  • DN пользователя, пароль: (мое имя пользователя и пароль на этом сервере Exchange)

Я получаю ошибку:

javax.naming.AuthenticationException: [LDAP: error code 49 - 80090308: LdapErr: DSID=0C090334, comment: AcceptSecurityContext error, data 525, vece ]

Другой чувак LDAP здесь говорит, что 525 "пользователь не найден", и предполагает, что, возможно, имя пользователя должно быть указано в "Номенклатуре LDAP".

Кто-нибудь знает, как подключиться к AD с помощью jxplorer?

2 ответа2

7

Выяснили способ: это не ваш логин пользователя. Это LDAP DN вроде:

CN=My Name,OU=My Company,DC=server,DC=local
1

Передайте идентификатор пользователя и пароль LDAP напрямую жестко.

пример:

     Hashtable env = new Hashtable();         
     env.put(Context.INITIAL_CONTEXT_FACTORY,"com.sun.jndi.ldap.LdapCtxFactory");
env.put(Context.SECURITY_AUTHENTICATION,"simple");
env.put(Context.REFERRAL, "follow");
env.put(Context.SECURITY_PRINCIPAL,"adminuserid");
env.put(Context.SECURITY_CREDENTIALS,"adminPassword");
env.put(Context.PROVIDER_URL,"ldapUrllink");
DirContext ctx = new InitialDirContext(env);

Это должно работать.

спасибо Саджит

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .