我有一个 keycloak 服务器设置。我正在使用令牌端点:http://localhost:8080/auth/realms/demo/protocol/openid-connect/token
对用户进行身份验证并生成令牌。我理解的这个令牌可以在后续调用中用于验证它是否是有效用户。
但是,我不确定如何使用它来授权用户?即验证此用户是否具有访问资源的角色。
我看到可以在客户端部分下配置资源 URI。但是一旦完成,我希望能够读取令牌并验证此用户是否具有访问此资源的角色。
现在,这就是我正在做的事情:我在这里使用过弹簧靴。
doSomething(String token)
{
1. get token info using: http://localhost:8080/auth/realms/demo/protocol/openid-connect/userinfo
2. from this get the roles the user has
3. Manually check the roles required for the above function. (Right now, this is set in a simple switch statement)
4. If the role obtained from step 2 matches what we get in step 3, go ahead. Else return failure.
}
我想知道上面的步骤 3 是否可以以更好的方式完成。我知道您可以从 keycloak 控制台在客户端中设置资源。我希望我们可以将上面的 4 个步骤替换为:
keycloakAPIToAuthorizeToken(token,resource)
这将告诉我该用户是否具有访问该资源的角色(从令牌获得)。
请建议这是否可行。
提前致谢。唵