Active Directory: пользователь UPN или DN для имени NTLM, используя чистый LDAP? - PullRequest
1 голос
/ 30 марта 2010

У меня есть приложение Java, которое может аутентифицироваться в LDAP, регистрируя пользователей на сервере AD LDAP с именем NTLM (к которому они привыкли - это требование).

Теперь мне также необходимо выполнить авторизацию, и, следовательно, мне нужно найти уникальный для леса идентификатор пользователя (DN или UPN должны работать), из которого я могу дополнительно запросить каталог.

Метод должен быть абсолютно переносимым, даже если AD структурирован необычным образом, в противном случае я мог бы просто заменить строку и найти UPN в "$ {ntlm-user} @ $ {ntlm-domain} . $ {сконфигурировано-трейлинг-домен} "

Как я могу это сделать, используя чистый LDAP?

В настоящее время я использую пакет java.naming.directory, который я хотел бы продолжать использовать, поскольку он не вызывает проблем, когда не связывается с DN, а входит в систему с именем NTLM?

1 Ответ

1 голос
/ 30 марта 2010

Во-первых, UPN не является обязательным полем для AD, если вы не работаете в среде Windows 2003 Server или выше. Домены Win2000 (действительные или функциональные ) могут не иметь UPN.

sAMAccount name - единственное обязательное поле, которое полностью переносимо в разных версиях LDAP. Однако обычно он используется в сочетании с доменным именем netbios

(FOOBAR \ JSKEET)

Используя чистый LDAP, вы можете выполнить Bind (убедитесь, что вы можете установить флаги запечатывания и защиты, чтобы вы выполняли безопасную аутентификацию!) С именем UPN или sAMAccount (и даже с полным DN, если это все, что у вас есть) .

...