Как подключиться к серверу Ldap с помощью Java? - PullRequest
0 голосов
/ 20 ноября 2018

Пожалуйста, найдите мой код ниже и помогите мне подключиться к LDAP.

Мой код ниже:

 Hashtable<String, String> environment = new Hashtable<String, String>();
 environment.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
 environment.put(Context.PROVIDER_URL, "ldap://192.168.0.214:389");
 environment.put(Context.SECURITY_AUTHENTICATION, "simple");
 environment.put(Context.SECURITY_PRINCIPAL, "CN=Administrator,CN=Users,DC=estsecondary,DC=com");
 environment.put(Context.SECURITY_CREDENTIALS, "*****8");
 try {
     LdapContext ctx = new InitialLdapContext(environment, null); 
 }catch (AuthenticationNotSupportedException exception) {
     System.out.println("The authentication is not supported by the server");
 } catch (AuthenticationException exception){
     System.out.println("Incorrect password or username");
 }catch (NamingException exception){
     System.out.println("Error when trying to create the context");
 }

Но я не могу подключиться.Я получаю сообщение «Аутентификация не поддерживается сервером». Пожалуйста, найдите мою структуру LDAP ниже.

введите описание изображения здесь

1 Ответ

0 голосов
/ 20 ноября 2018

Вы комментируете это:

Проверка подлинности не поддерживается сервером [LDAP: код ошибки 8 - BindSimple: требуется шифрование транспорта.]

Я предполагаю, чтоэто сообщение об исключении.Он сообщает, что в соединении было отказано, потому что вы пытаетесь отправить учетные данные аутентификации BindSimple через незашифрованное соединение.

  • Вы используете порт 386, который (по умолчанию) не являетсяПорт SSL.Если вы хотите использовать этот порт, вы можете указать JNDI выполнить согласование TLS перед попыткой аутентификации.В документации JNDI есть пример кода .

  • Другой альтернативой может быть изменение URL-адреса на

           ldaps://192.168.0.214:636
    

    и используйте SSL для начального соединения.

В любом случае вам потребуется предоставить соответствующие ключи / сертификаты в хранилище ключей.

Окончательный вариант будетнастроить сервер LDAP для приема учетных данных BindSimple через незащищенное соединение.Но это ... небезопасно ... и вы потенциально подвергаете свою инфраструктуру риску, делая это.Не.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...