Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Microsoft AD: аутентификация юзера в домене средствами Java / 13 сообщений из 13, страница 1 из 1
06.06.2017, 18:46
    #39467199
mesier
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Microsoft AD: аутентификация юзера в домене средствами Java
Код: 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
06.06.2017, 19:01
    #39467217
mesier
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Microsoft AD: аутентификация юзера в домене средствами Java
Да, необходимо добавить, что проверял программкой LDP - этот юзер нормально авторизуется и в родном и в доверенном домене.
Так что где-то что-то в коде надо лечить, но я не могу пока понять что именно.
Помогите, пожалуйста!
...
Рейтинг: 0 / 0
06.06.2017, 19:08
    #39467223
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Microsoft AD: аутентификация юзера в домене средствами Java
mesierчто проверял программкой LDP
ну дак сравни запрос-ответ рабочий и нет.
...
Рейтинг: 0 / 0
06.06.2017, 20:53
    #39467303
Andrei T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Microsoft AD: аутентификация юзера в домене средствами Java
mesier,

Слэш экранируется, сделай 4:
"domain\\\\login"
...
Рейтинг: 0 / 0
07.06.2017, 09:40
    #39467531
mesier
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Microsoft AD: аутентификация юзера в домене средствами Java
Petro123 ну дак сравни запрос-ответ рабочий и нет.
Чем посмотреть?
Andrei T Слэш экранируется, сделай 4: "domain\\\\login"
Это к сожалению не помогло.. (((
...
Рейтинг: 0 / 0
07.06.2017, 09:46
    #39467535
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Microsoft AD: аутентификация юзера в домене средствами Java
mesierЧем посмотреть?
сырой отправляемый запрос-ответ?
- утилиты перехвата трафика
- фильтры на АппСервере или сервлете
- ...
...
Рейтинг: 0 / 0
07.06.2017, 11:49
    #39467692
SQL2008
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Microsoft AD: аутентификация юзера в домене средствами Java
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
07.06.2017, 14:43
    #39467867
mesier
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Microsoft AD: аутентификация юзера в домене средствами Java
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
09.06.2017, 15:47
    #39469594
mesier
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Microsoft AD: аутентификация юзера в домене средствами Java
Кароч, разница в том, что из программы LDP я удачно авторизуюсь через NTLM, а из Java пытаюсь симпл байндингом, как видно из кода..
Если в LDP тоже выбрать симпл - та же ошибка - неправильный пароль.
Странно как-то!
Это какое-то ограничение на доверенном домене, кто-нибудь может объяснить?
Как-то возможно из Джавы через NTLM авторизоваться?
...
Рейтинг: 0 / 0
09.06.2017, 16:46
    #39469658
забыл ник
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Microsoft AD: аутентификация юзера в домене средствами Java
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
09.06.2017, 16:49
    #39469663
SQL2008
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Microsoft AD: аутентификация юзера в домене средствами Java
mesier Как-то возможно из Джавы через NTLM авторизоваться?
Хех... жду, не дождусь когда кто-нибудь отладит код для авторизации, чтобы тупо скопипастить
...
Рейтинг: 0 / 0
09.06.2017, 17:01
    #39469671
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Microsoft AD: аутентификация юзера в домене средствами Java
SQL2008mesier Как-то возможно из Джавы через NTLM авторизоваться?
Хех... жду, не дождусь когда кто-нибудь отладит код для авторизации, чтобы тупо скопипастить
а я помню что это было твой вступительный в Java)).
Так и не сделал?
))
...
Рейтинг: 0 / 0
11.06.2017, 12:25
    #39470198
SQL2008
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Microsoft AD: аутентификация юзера в домене средствами Java
Petro123SQL2008пропущено...

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


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