Настройка SSO через ADFS
Предварительные Требования
Для настройки необходимо:
- Microsoft Windows Server 2019 c настроенными AD и AD FS.
- YuChat Keycloak сервер (входит в комплект поставки)
На сервисах должны быть корректно настроен HTTPS:
- AD FS настроен на https://fs.domain.com
- YuChat Keycloak доступен по https://kc.yuchat.domain.com
Для корректной работы необходимо наличие глобальных сертификатов для AD FS и Keycloak.
Рекомендация: на стороне Keycloak используйте отдельный реалм для авторизации через AD FS SSO.
Добавление Keycloak в качестве клиента в AD FS
Поскольку мы будем использовать AD FS в качестве доверенного поставщика, Keycloak должен быть определен как клиент OAuth 2. Чтобы это сделать, на м сначала нужно создать Application Group — сущность AD FS, которая моделирует набор защищенных ресурсов и клиентов, которые могут к ним обращаться. OAuth различает 2 типа клиентов: публичные и конфиденциальные. Первые работают на устройствах, находящихся под контролем конечного пользователя, например, в браузере на рабочем столе или на телефоне, а вторые — в бэкэнде. Microsoft называет эти приложения соотвественно нативными и серверными. В рамках данной интеграции необходимо настройка серверного приложения.
Keycloak получит ID токен в качестве клиента и затем создаст удостоверение на основе утверждений в ID токене AD FS. Но некоторая информация, которая нам нужна, недоступна в качестве стандартного утверждения ID токена, поэтому нам нужно настроить некоторые пользовательские утверждения. Для настройки этого необходимо создать API в Application Group.