В этой статье я рассмотрю, как можно реализовать автоматическую авторизацию домена (Kerberos) на сервере приложений GlassFish. Тест проводился на ПК с ОС Windows 7 Pro SP1 (64-битная версия), JDK 1.7.0_25 (64-битная версия) и GlassFish 4 (версия 89).
Мы будем использовать библиотеку СПНЕГО .
Эта статья на самом деле представляет собой перевод и адаптацию того, что вы можете найти на странице библиотеки на английском языке.
Предполетная подготовка
1) Убедитесь, что ваш сервер находится в домене.2) Убедитесь, что сервер приложений (GlassFish) запущен от имени пользователя домена.
3) Убедитесь, что у вас есть логин и пароль специально созданного пользователя домена (я использовал того же пользователя, что и в пункте 2) 4) Убедитесь, что HelloKDC.java работает корректно.
ПриветKDC.java — небольшое приложение, которое позволит нам понять, все ли готово к началу полета и возможен ли полет. В этот код нужно добавить несколько строк, а именно:
// Учетная запись домена (предварительная аутентификация) окончательная строка имени пользователя = " "; // Пароль для аккаунта предварительной аутентификации.Далее вам нужно добавить файлы krb5.conf И логин.окончательный строковый пароль = " "; // Имя нашего конфигурационного файла krb5 окончательная строка krbfile = "krb5.conf"; // Имя нашего файла конфигурации входа в систему окончательная строка loginfile = "login.conf"; // Имя нашего модуля входа окончательный модуль String = "spnego-client";
конф
.В моем случае krb5.conf выглядит так:
[libdefaults] default_tkt_enctypes = aes256-cts-hmac-sha1-96 aes128-cts rc4-hmac des3-cbc-sha1 des-cbc-md5 des-cbc-crc default_tgs_enctypes = aes256-cts-hmac-sha1-96 aes128-cts rc4-hmac des3-cbc-sha1 des-cbc-md5 des-cbc-crc разрешенные_enctypes = aes256-cts-hmac-sha1-96 aes128-cts rc4-hmac des3-cbc-sha1 des-cbc-md5 des-cbc-crc [царства] = { кдк = default_domain = } [область_домена] .Где в алгоритмах я добавил aes256-cts-hmac-sha1-96 для корректной работы с клиентами Windows 7. Мое полное доменное имя отличается от root, однако я решил добавить root и root. К.=
Д.
К.
.
После запуска HelloKDC мы должны получить небольшой отчет, в конце которого должно быть написано «Проверка соединения прошла успешно».
Идти!
1) Добавьте библиотеку spnego.jar непосредственно в каталог с библиотеками glassfish, а именно GLASSFISH_HOME\lib. 2) Измените файл default-web.xml соответствующего домена glassfish, он находится в папке GLASSFISH_HOME\domains\.папка \config Модификация заключается в добавлении фильтра сервлетов:
СпнегоHttpFilter net.sourceforge.spnego.SpnegoHttpFilter spnego.allow.basic истинный spnego.allow.localhost истинный spnego.allow.unsecure.basic истинный spnego.login.client.module spnego-клиент spnego.krb5.conf krb5.conf spnego.login.conf логин.3) Скопируйте файл krb5.conf (также в GLASSFISH_HOME\domains\ \конфигурация) 4) Измените файл login.conf в GLASSFISH_HOME\domains\.конф spnego.preauth.имя пользователя Имя пользователя от HelloKDC spnego.preauth.пароль Пароль пользователя от HelloKDC spnego.login.server.module spnego-сервер spnego.prompt.ntlm истинный spnego.logger.level 1 СпнегоHttpFilter *.
jsp
\config, добавив в конец файла данные из предыдущего файла login.conf (что я и сделал для HelloKDC) 5) Зарегистрироваться СПН В моем случае имя машины было smirnoff, полное имя машины было smirnoff. и поэтому я прописал (точнее администраторы локальной сети прописали) 2 SPN на имя учетной записи (которые мы ввели в исходнике HelloKDN и в настройках фильтра сервлетов), и именно setspn -A HTTP/smirnoff setspn -A HTTP/smirnoff. Те.
добавьте запись с полным и кратким именем.
Проверка работы
Проверить работу можно с помощью простой JSP-страницы (jsp, потому что мы установили маску *.jsp в настройках фильтра для перехвата запроса).
Hello SPNEGO Example
Hello <%= request.getRemoteUser() %> !
Который мы помещаем, например, в корневой каталог нашего домена glassfish.
При обращении к странице мы должны получить текст следующего содержания:
Привет !
ПС
Я не смог справиться с отображением исходного кода.Буду рад ответить на вопросы в комментариях к статье.
Теги: #spnego #java #glassfish #java
-
Болинджер, Дуайт
19 Oct, 24 -
Обзор Veeam Backup & Replication V11
19 Oct, 24 -
Университет Бонч-Бруевича Подсел На Яблоки
19 Oct, 24 -
Слёзные Войны: Место Пробуждения
19 Oct, 24