[Перевод] Настройка Kerberos аутентификации в OpenAM

Введение

В корпоративном среде пользователи используют, как правило несколько приложений. И в каждом приложении в корпоративной среде необходимо аутентифицироваться. Конечно, можно создавать для каждого приложения свою учетную запись. Но такой подход неудобен и для администраторов системы и для пользователей. Гораздо удобнее входить в приложение под пользователем, который уже аутентифицирован в операционной системе. Для пользователей в домене Windows — таким решением является протокол Kerberos. В текущей статье мы настроим Kerberos аутентификацию в OpenAM. OpenAM — проект для управление аутентификацией с открытым исходным кодом.

Предварительные условия

Учетные записи пользователей хранятся в Active Directory под управлением Windows Server. У вас так же должен быть установлен OpenAM. Как быстро установить OpenAM, написано тут.

Настройка Windows

Создайте в Active Directory учетную запись для аутентификации Kerberos. При создании учетной записи установите чекбоксы User cannot change password и Password never expires enabled как показано на рисунке ниже.

c441c37eb80ca59b3768eaf459fdf384.png

В свойствах учетной записи на вкладке Account включите чекбокс This account supports Kerberos AES-256 bit encryption.

На контроллере домена создайте файл keytab в текущей директории. Для этого выполните команду в терминале Windows:

ktpass -out openamKerberos.keytab -princ HTTP/openam.example.com@AD.EXAMPLE.COM -pass +rndPass -maxPass 256 -mapuser openamKerberos -crypto AES256-SHA1 -ptype KRB5_NT_PRINCIPAL

In в данной команде в параметре -princ  openam.example.com — имя хоста OpenAM и EXAMPLE.COM — имя домена Active Directory, должно быть в верхнем регистре.

Скопируйте файлopenamKerberos.keytab в директорию, из которой OpenAM сможет ее прочитать. Откройте на firewall сетевой доступ от OpenAM к контроеллеру домена ad.example.com:88 по протоколам TCP и UDP

Проверьте файл keytab на машине с OpenAM:

$ klist -k -t openamKerberos.keytab
Keytab name: FILE:openamKerberos.keytab
KVNO Timestamp Principal
---- ------------------- ------------------------------------------------------
0 01.01.1970 03:00:00 HTTP/openam.example.com@AD.EXAMPLE.COM

Настройка OpenAM

Создание модуля аутентификации

Откройте консоль администратора OpenAM. В поле логин введите значение amadmin, поле пароль введите значение из параметра ADMIN_PWD команды установки.

Выберите realm и в меню слева перейдите Authentication → Modules. В списке модулей нажмите кнопку Add Module . Введите имя модуля, например sso и тип модуля — Windows Desktop SSO .

Установите Service Principal как был указан в команде ktpass. Keytab File Name должен быть путь к файлу openamKerberos.keytab инстансе OpenAM. Установите Kerberos Realm, Kerberos Server Name и Trusted Kerveros realms в соответствии с вашей инфраструктурой.

4b8976196b505f0290b59e7b86ff6e56.png

Настройка цепочки аутентификации

В консоли администратора выберите нужный realm и в меню выберите пункт Authentication → Chains. Создайте цепочку аутентификации sso с созданным модулем sso.

ed14fa0a3e40a695f133026ab6feba9f.png

Настройка realm

Перейдите в раздел Authentication → Chains для realm и на закладке User Profile установите настройку User Profile в значение Ignore.

7ddfa44c268db6473ff412b233a175d7.png

Таким образом, вы можете аутентифицироваться по протоколу Kerberos без подключения Active Directory в User Data Store в OpenAM.

Проверка решения

На Windows машине под аутентифицированным в Active Directory пользователем откройте в браузере url OpenAM  http://openam.example.com:8080/openam/XUI/#login/&realm=/&service=sso

Если все настроено корректно, OpenAM сразу аутентифицирует вас без запроса учетных данных.

© Habrahabr.ru