首页 > 解决方案 > Keycloak-angular 获取其他客户端的令牌

问题描述

我的应用程序中有以下组件:

keycloak 服务器配置为有 2 个客户端。一个公共客户端(角度应用程序)和一个具有授权服务的机密客户端(REST-API)。Angular 应用需要加载后端的权限,以根据用户的权限显示不同的 UI。获得所需权限的一种方法是使用 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' },
            },
          ),
        ),
      );

如果我在返回的 access_token 中解码 JWT,我可以获得正确的权限。为此,我需要一个库来解码 JWT 并自己实现此令牌的刷新。我还没有找到任何关于如何使用 keycloak-angular 或 keycloak-js 库执行此操作的文档。

这是获取与用户和另一个客户端关联的权限列表的预期方式吗?如果是,我如何使用提供的库来实现它?

标签: angularkeycloak

解决方案


推荐阅读