Интеграция с существующим активным каталогом клиента

У меня есть работающий веб-сайт, который имеет свой собственный набор пользователей и имеет систему аутентификации, которая выполняет базовый поиск в базе данных для аутентификации пользователей для входа на сайт. Наш клиент заинтересован в веб-сайте и требует, чтобы вместо повторной регистрации всех существующих пользователей у нас у него был Active Directory, и я должен использовать его для их аутентификации. Это не позволяет клиенту регистрировать у нас всех своих пользователей и запоминать другой набор имени пользователя и пароля.

Мой веб-сайт построен на Java, и я ищу решение, в котором я могу интегрироваться с активным каталогом.

Я новичок в Active Directory и искал в Интернете, но не нашел оптимального решения. Мое понимание Active Directory заключается в том, что у него будет набор имени пользователя и паролей, и если я смогу успешно интегрироваться с ним, в дополнение к моей собственной базе данных пользователей, мне также придется искать в Active Directory клиента, и если совпадение найдено, я могу аутентифицировать пользователя.

Пожалуйста, поправьте меня, если я неправильно понимаю, и не могли бы вы указать мне правильное направление?

Спасибо,

Маянк


person Mayank    schedule 08.08.2013    source источник


Ответы (3)


Где развернуто ваше приложение? Если он находится на территории вашего клиента, то проще всего выполнить запрос LDAP к AD (серверу LDAP), как предлагает @nzpcmad. Tomcat также поддерживает проверку подлинности Windows, если я не ошибся, так что может быть проще пойти по этому пути.

Если это вне помещения, вам придется использовать подход федерации удостоверений. Вам придется изменить свое приложение, чтобы оно принимало токены SAML и реализовывало протокол SAML (поскольку вы находитесь в мире Java, это может быть лучшим вариантом). Вашему клиенту потребуется развернуть STS (например, ADFS).

Это действительно зависит от того, как ваше приложение спроектировано и к которому обращаются ваши клиенты (локальное или размещенное, однопользовательское или многопользовательское).

person Eugenio Pace    schedule 09.08.2013
comment
Спасибо за ответ. Приложение по-прежнему будет находиться в наших помещениях. ADFS, кажется, путь, который я хотел бы выбрать. Я узнаю о токенах SAML и реализую их. - person Mayank; 19.06.2014
comment
ну ... сейчас есть другие (и лучшие) варианты, чем ADFS :-). Я бы провел дополнительное исследование. - person Eugenio Pace; 20.06.2014

Попробуйте мою Tomcat SPNEGO/Active Directory Authnz, если вы используете Tomcat 6 и выше. Код имеет производственное качество, ожидается релиз. Создайте сайт и прочитайте документы, там все описано.

person Michael-O    schedule 09.08.2013

Вы пометили это с помощью adfs, но ничто в вопросе не относится к этому?

Как ни странно, вы можете сделать это с помощью ADFS.

Если вы можете интегрировать STS на своей стороне, вы можете объединиться с ADFS, и тогда пользователь сможет выбрать репозиторий для аутентификации.

Я не уверен, как ваша БД выполняет аутентификацию? Если это обычай, возможно, STS не поддерживает это.

Кроме того, добавьте еще один экран перед экраном аутентификации. Этот экран спрашивает пользователя, какой репозиторий использовать. Если они выберут AD, то просто получите доступ к AD через Java API для Active Directory, например JNDI.

person rbrayb    schedule 09.08.2013
comment
Спасибо за ответ +1 - person Mayank; 19.06.2014