powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Microsoft AD: аутентификация юзера в домене средствами Java
13 сообщений из 13, страница 1 из 1
Microsoft AD: аутентификация юзера в домене средствами Java
    #39467199
mesier
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
        Hashtable env = new Hashtable(11);
        
	env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
	env.put(Context.PROVIDER_URL, "ldap://domain.local:389");

	env.put(Context.SECURITY_AUTHENTICATION, "simple");
	env.put(Context.SECURITY_PRINCIPAL, "domain\\login");
	env.put(Context.SECURITY_CREDENTIALS, "password");

	try {
	    DirContext ctx = new InitialDirContext(env);

            ctx.lookup(dc);
	    ctx.close();
	} catch (NamingException e) {
            e.printStackTrace();
	}



Приведенный код отлично работает при аутентификации на родном сервере домена.
Но если попытаться авторизоваться в другом форесте, с доверительными отношениями между форестами, пишет ошибку, как будто неправильный пароль..

Код: plaintext
LDAP: error code 49 - 80090308: LdapErr: DSID-0C0903A9, comment: AcceptSecurityContext error, data 52e, v1db1

Как быть? Где неправильно?
...
Рейтинг: 0 / 0
Microsoft AD: аутентификация юзера в домене средствами Java
    #39467217
mesier
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, необходимо добавить, что проверял программкой LDP - этот юзер нормально авторизуется и в родном и в доверенном домене.
Так что где-то что-то в коде надо лечить, но я не могу пока понять что именно.
Помогите, пожалуйста!
...
Рейтинг: 0 / 0
Microsoft AD: аутентификация юзера в домене средствами Java
    #39467223
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mesierчто проверял программкой LDP
ну дак сравни запрос-ответ рабочий и нет.
...
Рейтинг: 0 / 0
Microsoft AD: аутентификация юзера в домене средствами Java
    #39467303
Andrei T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mesier,

Слэш экранируется, сделай 4:
"domain\\\\login"
...
Рейтинг: 0 / 0
Microsoft AD: аутентификация юзера в домене средствами Java
    #39467531
mesier
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123 ну дак сравни запрос-ответ рабочий и нет.
Чем посмотреть?
Andrei T Слэш экранируется, сделай 4: "domain\\\\login"
Это к сожалению не помогло.. (((
...
Рейтинг: 0 / 0
Microsoft AD: аутентификация юзера в домене средствами Java
    #39467535
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mesierЧем посмотреть?
сырой отправляемый запрос-ответ?
- утилиты перехвата трафика
- фильтры на АппСервере или сервлете
- ...
...
Рейтинг: 0 / 0
Microsoft AD: аутентификация юзера в домене средствами Java
    #39467692
Фотография SQL2008
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mesier
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
        Hashtable env = new Hashtable(11);
        
	env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
	env.put(Context.PROVIDER_URL, "ldap://domain.local:389");

	env.put(Context.SECURITY_AUTHENTICATION, "simple");
	env.put(Context.SECURITY_PRINCIPAL, "domain\\login");
	env.put(Context.SECURITY_CREDENTIALS, "password");

	try {
	    DirContext ctx = new InitialDirContext(env);

            ctx.lookup(dc);
	    ctx.close();
	} catch (NamingException e) {
            e.printStackTrace();
	}



Приведенный код отлично работает при аутентификации на родном сервере домена.
Но если попытаться авторизоваться в другом форесте, с доверительными отношениями между форестами, пишет ошибку, как будто неправильный пароль..

Код: plaintext
LDAP: error code 49 - 80090308: LdapErr: DSID-0C0903A9, comment: AcceptSecurityContext error, data 52e, v1db1

Как быть? Где неправильно?

Набрасываю вариант Because different servers support different authentication mechanisms, you might request an authentication mechanism that the server does not support.
...
Рейтинг: 0 / 0
Microsoft AD: аутентификация юзера в домене средствами Java
    #39467867
mesier
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SQL2008 Набрасываю вариант Because different servers support different authentication mechanisms, you might request an authentication mechanism that the server does not support.
Не то..
У меня другой эксепшн, как вот здесь (цитата из текста):
Код: plaintext
Authentication can fail for a number of reasons. For example, if you supply incorrect authentication information, such as an incorrect password or principal name, then an AuthenticationException(in the API reference documentation) is thrown. 

Тут ещё сложность в том, что я не могу отправлять юзера, ибо его учетку я не знаю! Только логин.. Ну, то есть пользователь вводит логин-пароль, также, опционально, выбирает свой домен, и идёт авторизоваться на тот сервер, куда приложению открыли дырку на файрволе..
Если есть способ взять юзера из AD по логину, то это может мне помочь - я тогда передам cn, dc, ou и вот это всё.. Должно сработать, думаю.
...
Рейтинг: 0 / 0
Microsoft AD: аутентификация юзера в домене средствами Java
    #39469594
mesier
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кароч, разница в том, что из программы LDP я удачно авторизуюсь через NTLM, а из Java пытаюсь симпл байндингом, как видно из кода..
Если в LDP тоже выбрать симпл - та же ошибка - неправильный пароль.
Странно как-то!
Это какое-то ограничение на доверенном домене, кто-нибудь может объяснить?
Как-то возможно из Джавы через NTLM авторизоваться?
...
Рейтинг: 0 / 0
Microsoft AD: аутентификация юзера в домене средствами Java
    #39469658
забыл ник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mesierКароч, разница в том, что из программы LDP я удачно авторизуюсь через NTLM, а из Java пытаюсь симпл байндингом, как видно из кода..
Если в LDP тоже выбрать симпл - та же ошибка - неправильный пароль.
Странно как-то!
Это какое-то ограничение на доверенном домене, кто-нибудь может объяснить?
Как-то возможно из Джавы через NTLM авторизоваться?

Ну года 3 назад мне помогла http://www.ioplex.com/jespa.html но она платная

а вообще смотрите тут - https://stackoverflow.com/questions/15020734/using-ntlm-authentication-in-java-applications

возможно просто хватит добавить jcif
...
Рейтинг: 0 / 0
Microsoft AD: аутентификация юзера в домене средствами Java
    #39469663
Фотография SQL2008
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mesier Как-то возможно из Джавы через NTLM авторизоваться?
Хех... жду, не дождусь когда кто-нибудь отладит код для авторизации, чтобы тупо скопипастить
...
Рейтинг: 0 / 0
Microsoft AD: аутентификация юзера в домене средствами Java
    #39469671
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SQL2008mesier Как-то возможно из Джавы через NTLM авторизоваться?
Хех... жду, не дождусь когда кто-нибудь отладит код для авторизации, чтобы тупо скопипастить
а я помню что это было твой вступительный в Java)).
Так и не сделал?
))
...
Рейтинг: 0 / 0
Microsoft AD: аутентификация юзера в домене средствами Java
    #39470198
Фотография SQL2008
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123SQL2008пропущено...

Хех... жду, не дождусь когда кто-нибудь отладит код для авторизации, чтобы тупо скопипастить
а я помню что это было твой вступительный в Java)).
Так и не сделал?
))
Пока отложил до лучших времен.
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Microsoft AD: аутентификация юзера в домене средствами Java
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]