我的应用程序中包含以下组件:
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库执行此操作的文档。
这是获取与用户和另一个客户端相关联的权限列表的预期方法吗? 如果是的话,如何使用提供的库来实现呢?