Keycloak角度获取其他客户端的令牌

时间:2020-04-16 12:26:13

标签: angular keycloak

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

  • 自托管密钥隐藏服务器
  • 后端REST-API(资源服务器)
  • 前端角度应用程序

keycloak服务器配置为具有2个客户端。具有授权服务的一个公共客户端(角度应用程序)和一个机密客户端(REST-API)。角度应用程序需要加载后端的权限,才能根据用户的权限显示不同的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库执行此操作的文档。

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

0 个答案:

没有答案