Аутентификация Kerberos из моего пользовательского сервлета?

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

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

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

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

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


person Community    schedule 05.06.2009    source источник


Ответы (2)


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

person Venkat Sadasivam    schedule 04.09.2009

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

person Pat Gonzalez    schedule 16.11.2009