Тихая Авторизация Домена В Glassfish

В этой статье я рассмотрю, как можно реализовать автоматическую авторизацию домена (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 окончательная строка krbfile = "krb5.conf"; // Имя нашего файла конфигурации входа в систему окончательная строка loginfile = "login.conf"; // Имя нашего модуля входа окончательный модуль String = "spnego-client";

Далее вам нужно добавить файлы krb5.conf И логин.

конф .

В моем случае 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 логин.

конф spnego.preauth.имя пользователя Имя пользователя от HelloKDC spnego.preauth.пароль Пароль пользователя от HelloKDC spnego.login.server.module spnego-сервер spnego.prompt.ntlm истинный spnego.logger.level 1 СпнегоHttpFilter *.

jsp

3) Скопируйте файл krb5.conf (также в GLASSFISH_HOME\domains\ \конфигурация) 4) Измените файл login.conf в GLASSFISH_HOME\domains\.

\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

Вместе с данным постом часто просматривают: