Невозможно подключиться к AD с помощью клиента Java с дайджест-md5, включенным SSL и qop auth-int/conf, когда в LDAP треJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Невозможно подключиться к AD с помощью клиента Java с дайджест-md5, включенным SSL и qop auth-int/conf, когда в LDAP тре

Сообщение Anonymous »

Мы пытаемся подключиться к LDAP, используя приведенный ниже пример Java-кода.

Код: Выделить всё

import javax.naming.*;
import javax.naming.ldap.InitialLdapContext;
import javax.naming.ldap.LdapContext;
import java.util.Hashtable;
public class LDAPBindSSLExample {
public static void main(String[] args) throws Exception {
String ldapURL = "ldaps://machine.domain.com:636";
String username = "username"; // without @domain
String domainName = "domain.com";
String password = "password";
String timeout = "5000";
Hashtable env = new Hashtable();
env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
env.put("java.naming.security.sasl.realm", domainName);
env.put(Context.SECURITY_AUTHENTICATION, "DIGEST-MD5");
env.put(Context.SECURITY_PROTOCOL, "ssl");
env.put("javax.security.sasl.qop", "auth");
env.put(Context.PROVIDER_URL, ldapURL);
env.put(Context.SECURITY_PRINCIPAL, username);
env.put(Context.SECURITY_CREDENTIALS, password);
env.put(Context.REFERRAL, "ignore");
env.put("java.naming.ldap.version", "3");
env.put("com.sun.jndi.ldap.tls.cbtype", "tls-server-end-point");
env.put("com.sun.jndi.ldap.connect.pool", "true");
env.put("com.sun.jndi.ldap.connect.timeout", timeout);
LdapContext ctx = null;
try {
ctx = new InitialLdapContext(env, null);
System.out.println("Bind successful");
} catch (Exception e) {
e.printStackTrace();
}
finally {
if (ctx!=null) {
ctx.close();
}
}
}
}
Мы столкнулись с ошибкой при подключении к серверу LDAP с использованием кода Java (Java 17) с определенными настройками реестра Active Directory. В частности, когда мы устанавливаем следующие записи реестра в соответствии с Руководством Microsoft: https://support.microsoft.com/en-us/top ... ap-signing -requirements-for-windows-kb4520412-ef185fb8-00f7-167d-744c-f299a66fc00a
LdapEnforceChannelBinding=2
ldapserverintegrity=2
Мы получаем следующее сообщение об ошибке: LDAP: код ошибки 49 – 80090346: LdapErr: DSID-0C0906AC, комментарий: ошибка AcceptSecurityContext, данные 80090346, v4563
Не могли бы вы помочь нам решить эту проблему?
Однако, когда мы устанавливаем LdapEnforceChannelBinding=1 (сохраняя ldapserverintegrity=2), соединение устанавливается успешно.
Кроме того, как с LdapEnforceChannelBinding=2, так и с ldapserverintegrity=2, мы может подключиться к URL-адресу LDAP без SSL «ldap://machine.domain.com:389».
Мы проверили, что сертификат является доверенным в хранилище ключей и используется последняя версия openjdk-17. б/у.

Подробнее здесь: https://stackoverflow.com/questions/786 ... -and-qop-a
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»