[Решено] SSO Kerberos авторизация в Keycloak
Kerberos — сетевой протокол аутентификации, который предлагает механизм взаимной аутентификации клиента и сервера перед установлением связи между ними. Kerberos выполняет аутентификацию в качестве службы аутентификации доверенной третьей стороны, используя криптографический разделяемый секрет, при условии, что пакеты, проходящие по незащищенной сети, могут быть перехвачены, модифицированы и использованы злоумышленником. Kerberos построен на криптографии симметричных ключей и требует наличия центра распределения ключей.
- Ранее была опубликована статья по настройке федерации с Microsift Active Directory
В Active Directory для нашего пользователя keycloak создаем spn-запись
и keytab-файл
:
1
2
3
setspn -A HTTP/keycloak.itdraft.ru@ITDRAFT.RU keycloak
ktpass -princ HTTP/keycloak.itdraft.ru@ITDRAFT.RU -mapUser keycloak@ITDRAFT.RU -crypto RC4-HMAC-NT -pass * -kvno 0 -ptype KRB5_NT_PRINCIPAL -out C:\tmp\keycloak.keytab
Копируем keytab-файл
на сервер с установленным keycloak в раздел /opt/keycloak
Переходим в раздел User federation и редактируем LDAP-провайдера
1
2
3
4
5
6
Kerberos integration:
Allow Kerberos authentication: On
Kerberos realm: ITDRAFT.RU
Server principal: HTTP/keycloak.itdraft.ru@ITDRAFT.RU
Key tab: /opt/keycloak/keycloak.keytab
Debug: On # Можно включить на время отладки
Для дебага, мониторим логи keycloak /tmp/keycloak.log
Через групповую политику добавляем наш домен keycloak.itdraft.ru в доверенные
Для Chrome, Edge:
1
AuthServerWhitelist = keycloak.itdraft.ru
Для Firefox:
1
2
network.negotiate-auth.trusted-uris
network.automatic-ntlm-auth.trusted-uris