Keycloak- angular получить токен для другого клиента - PullRequest
0 голосов
/ 16 апреля 2020

В моем приложении есть следующие компоненты:

  • сервер хостинга ключей
  • внутренний REST-API (ресурс-сервер)
  • внешний интерфейс angular application

Сервер Keycloak настроен на 2 клиента. Один клиент publi c (приложение angular) и один конфиденциальный клиент (REST-API) со службами авторизации. Приложение angular должно загрузить разрешения бэкэнда, чтобы отображать другой пользовательский интерфейс в зависимости от прав пользователя. Один из способов получить необходимые разрешения - использовать token_endpoint, например, так:

this.http
      .get<{ token_endpoint: string }>(
        `/auth/realms/${realm}/.well-known/uma2-configuration`,
      )
      .pipe(
        flatMap(config =>
          this.http.post(
            config.token_endpoint,
            `grant_type=urn:ietf:params:oauth:grant-type:uma-ticket&audience=${backendClientId}`,
            {
              headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
            },
          ),
        ),
      );

Если я декодирую JWT в возвращенном маркере access_token, я могу получить правильные разрешения. Для этого мне понадобится библиотека для декодирования JWT и самостоятельного обновления этого токена. Я не нашел никакой документации о том, как сделать это с библиотеками keycloak- angular или keycloak- js.

Это предполагаемый способ получения списка разрешений, связанных с пользователем и другим клиентом ? И если это так, как мне реализовать это с помощью предоставленных библиотек?

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