PostHeaderIcon

Keycloak и windows LDAP

Обычно для реализации процессов аутентификации и авторизации на серверах приложений JBOSS и WildFly используется плагин KeyCloak. Про установку данного плагина есть множество документации как на русском, так и на английском языках, а вот про подключению плагина к вашему AD  Windows 2008, для использования доменной аутентификации практически ничего нет. Суть настройки сводится к указанию адреса  LDAP сервера, указания его аккаунта и пароля. Если на на контроллере(ах) домена LDAP ранее не настраивался, то необходимо установить Microsoft Identity Management for UNIX Role Service (рис.1)install NIS

 

После установки службы переходим к настройке KeyCloak. Открываем консоль администрирования KeyCloak, переходим в пункт меню " User Federation", кликаем "Add Provider"(рис.2), выбираем LDAP, после чего заполняем поля(рис.3):

Edit Mode - READ_ONLY

Username LDAP attribute - sAMAccountName

RDN LDAP attribute - cn

UUID LDAP attribute - objectGUID

User Object Classes - person, organizationPerson, user

Connection URL - ldap://srv-dc2.youdomain.local

Users DN - DC=youdomain,DC=local

Authentication Type - Simple

Bind DN - системный аккаунт в АД для чтения данных из LDAP ( например ldap-ro-user@youdoman.local)

Bind Credential - пароль системного аккаунта

 

KeyCloak User Federation

KeyCloak LDAP

 

Далее настраиваем маппинг он необходим для подмены атрибутов LDAP(рис.4)

KeyCloak LDAP mapper

Тыкаем в кнопки "Test connection"  и "Test authentication", если все настроено верно и тесты прошли успешно, то можно пробовать синхронизировать доменных пользователей, это 2 кнопки в самом низу вкладки с настройками  LDAP(на рисунке они не отображены).

Если что-то не работает, то в первую очередь надо смотреть лог плагина - /opt/wildfly/standalone/log/keycloak.log на предмет ругани на ldap в момент нажатия тестовых кнопок или кнопок синхронизации аккаунтов. Еще может пригодится утилита ldapsearch, которую надо запускать зайдя по ssh на Ваш wildfly(jboss) сервер:

$ ldapsearch -D <login> -w <password> -p 389 -h srv-dc2.youdomain.local -b "dc=youdomain,dc=local" -s sub "(objectclass=*)"

Где login и password теже самые, что и при заполнении полей "Bind DN" и "Bind credential" на рис.3