Найти в Дзене

OpenID Connect, .NET Core: подключение к Keycloak 26 - настройка в Keycloak

В предшествующей статье я рассказал про реализацию подключения к Keycloak на стороне тестового консольного приложения на .NET Core 8 (одного из вариантов такого подключения). Теперь вернусь к вопросу о настройке Keycloak. Настройку зон (realms), пользователей, ролей - это почти полностью пропускаю, там все очень просто. Единственно отмечу, что обязательно надо или убрать флаг "обязательное поле" у незаполненных полей пользователей, или заполнить эти поля. Иначе подключение под этим аккаунтом не пройдет, клиент получит ошибку на этапе аутентификации - "Account is not fully set up". Сбросить флаг "обязательное поле" можно где-то здесь: Realm settings -> User profile -> Attributes -> Edit attribute Насколько я понял, если этой настройки нет, то атрибут считается обязательным и тут ничего не поделаешь - придется заполнять. С чего я начал настройку под клиента - это с Client Scopes. Добавил свой Client Scope "user_roles": upn - это стандартный мэппер, для имени пользователя. А вот realm ro

В предшествующей статье я рассказал про реализацию подключения к Keycloak на стороне тестового консольного приложения на .NET Core 8 (одного из вариантов такого подключения). Теперь вернусь к вопросу о настройке Keycloak.

Настройку зон (realms), пользователей, ролей - это почти полностью пропускаю, там все очень просто. Единственно отмечу, что обязательно надо или убрать флаг "обязательное поле" у незаполненных полей пользователей, или заполнить эти поля. Иначе подключение под этим аккаунтом не пройдет, клиент получит ошибку на этапе аутентификации - "Account is not fully set up". Сбросить флаг "обязательное поле" можно где-то здесь: Realm settings -> User profile -> Attributes -> Edit attribute

Насколько я понял, если этой настройки нет, то атрибут считается обязательным и тут ничего не поделаешь - придется заполнять.

С чего я начал настройку под клиента - это с Client Scopes. Добавил свой Client Scope "user_roles":

-2
-3

upn - это стандартный мэппер, для имени пользователя. А вот realm roles - это для отображения ролей пользователя в токен доступа

-4

Короче, тут каждый настраивает, как удобней. Мне, вот, отдельно роли пользователя вынести захотелось. Кстати, имено Client Scope указывается при подключении с клиента на Keycloak (поле Scope в запросе).

Теперь к настройке Keycloak Client.

-5
-6

Еще я в секции "Logout settings" все поотключал. Настройки в Credentials следующие:

-7

Еще в Advanced - должна быть включена опция "Use refresh tokens". И в настройке зоны выставил истечение срока действия оффлайн-сессии на 3 дня вместо 30.

Все, Keycloak Client настроен. Можно копировать Client Secret, Client ID - и использовать на клиенте .NET Core.