我要做的事情:
我有一个应用程序,需要输入用户的登录凭据:用户名和密码。我有一个REST API,内部调用keycloak REST API:/auth/realms/realmname/protocol/openid-connect/token,并获取此用户的访问令牌。
现在,我正在构建另一个REST API来访问资源,并想要执行以下操作:
doSomething(accesstoken, data)
{
a)
调用keycloak API验证访问令牌并获取角色。
b) 如果角色为manager,则处理数据。
c) 否则:返回错误消息。
}
现在,如何完成(a):验证访问令牌并获取与其关联的角色。 我知道我们可以使用/auth/realms/realmname/protocol/openid-connect/userinfo,但那只提供有关用户的详细信息,例如名称、电子邮件等,但不显示任何角色。 这里是我得到的一个示例:
{
"name": "test user",
"sub": "e2bad34d-a1a9-4d70-ac84-bd3a3246023e",
"email_verified": false,
"preferred_username": "user",
"given_name": "test",
"family_name": "user"
}
如上所述,它根本没有给出角色。那么我该如何确定这个访问令牌具有哪些角色?有趣的是,当我搜索此时,许多资源都建议使用上述userinfo端点。但这只告诉我提供的访问令牌是有效的。并未提供相应的角色。 换句话说-它进行了身份验证但没有进行授权。
请提供建议。
谢谢, 安南