Проверка подлинности Kerberos из моего собственного сервлета? - PullRequest
2 голосов
/ 05 июня 2009

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

Я могу найти токен из заголовка http. Мой вопрос: а) Как мне проверить этот токен с активным каталогом? б) Как мне найти имя пользователя по этому токену?

В то время как поиск в Google кажется, что в Java API есть модуль входа Kerberos5, чтобы делать то, что я ожидал. Но почти на всех страницах отсутствуют простые примеры.

  1. Веб-клиент обращается к ресурсу AS Java с помощью запроса GET.
  2. AS Java отправляет обратно код ответа 401 (неавторизованный) с запросом на инициирование аутентификации SPNego, устанавливая заголовок HTTP «WWW-Authenticate» в «Согласование».
  3. Веб-клиент распознает, что хост AS Java является членом области Kerberos, и получает от клиента KDC билет сеанса клиент / сервер Kerberos для AS Java.
  4. Затем веб-клиент отправляет билет сеанса клиент / сервер Kerberos в AS Java, завернутый в качестве токена SPNego в заголовке авторизации HTTP.
  5. SPNegoLoginModule считывает токен из HTTP-запроса и передает ему реализацию JDK Kerberos.
  6. Результатом является либо успешная аутентификация клиента, либо сбой, когда запрос клиента отклонен, или необходим другой переход в KDC. В случае сбоя реализация Kerberos JDK AS Java генерирует и отправляет обратно веб-клиенту токен вывода. Выходной токен оборачивается как токен SPNego и отправляется в заголовке авторизации HTTP.

Любая помощь будет оценена.

Ответы [ 2 ]

4 голосов
/ 04 сентября 2009

Нет ответа в течение длительного времени. Нашел ответ сам с разных сайтов в интернете. Документированный мой опыт в ссылке ниже: http://webmoli.com/2009/08/29/single-sign-on-in-java-platform/

1 голос
/ 16 ноября 2009

Вот библиотека с открытым исходным кодом, http://spnego.sourceforge.net,, в которой есть несколько примеров того, что вы хотите сделать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...