Установка и обновление утверждений Keycloak / OpenId-Connect в клиентском приложении - PullRequest
0 голосов
/ 07 мая 2020

Я хотел бы знать, можно ли и как можно устанавливать и обновлять Keycloak (OpenID-Connect) AccessToken или IdToken атрибуты (так называемые утверждения) клиентским веб-приложением после успешной аутентификации.

Вариант использования - добавить определенные c атрибуты пользователя (например, количество домашних животных, волосы цвет, любимый автомобиль и т.д. к веб-интерфейсу. Второе веб-приложение, также использующее токен Keycloak для аутентификации / авторизации пользователя (функция единого входа), должно иметь возможность читать атрибуты пользователя, добавленные первым веб-приложением к токену.

Даже я боюсь, что добавление и изменение полезной нагрузки токена не разрешено архитектурным проектом OpenId-Connect, тем не менее, я надеюсь, что это все равно будет возможно.

Token-атрибуты реализованы как «Утверждения» в OpenId-Connect. И Keycloak поддерживает сопоставления 'Claim' во время процесса аутентификации (устанавливается сопоставлениями stati c на сервере Keycloak, а также кодом, который выполняется на сервере Keycloak).

Соответствующие методы для установки и получения ключа Claim Пары -значение упоминаются в следующих статьях:

Как создать преобразователь сценариев в Keycloak? :

token.getOtherClaims().put("myClaimName", "claim value");

Включите языковой стандарт пользователя в токен идентификатора Keycloak :

Map<String, Object> otherClaims = token.getOtherClaims();
if (otherClaims.containsKey("myClaimName")) {
  String claimValue = String.valueOf(otherClaims.get("myClaimName"));
}

В случае, если изменение полезной нагрузки токена клиентами Keycloak не допускается архитектурным дизайном, я ценю любые предложения по передовым методам передачи динамически добавляемых пользовательские атрибуты из одного веб-приложения в другое веб-приложение, имеющие одинаковый ключ доступа и / или идентификатор идентификатора.

1 Ответ

0 голосов
/ 07 мая 2020

Да, изменение полезной нагрузки токена пользовательским приложением не допускается / невозможно по архитектурному проекту. У приложения нет закрытого ключа, который необходим для создания правильной подписи токена при изменении полезной нагрузки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...