如何使用公共客户端下发的令牌查询密钥罩资源权限 [英] How to query keycloak resource permission with a token issued from a public client
本文介绍了如何使用公共客户端下发的令牌查询密钥罩资源权限的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个受Keyloak保护的前端Java客户端。前端应用程序的Keyloak客户端的类型为Public
,名为blog_gui
。
我还有一个受Confidential
客户端保护的API,该客户端名为‘BLOG_API’,已启用Authorization
。
当我从我的前端应用程序向API发出请求时,我将来自public
客户端(Blog_Gui)的由Keyloak发布的JWT作为请求标头中的持有者令牌发送。
在API中,我想检查发送JWT的前端App是否有权访问特定资源。因此,我通过以下URL向密钥罩服务器发送请求,包括来自前端应用程序的JWT作为持有者令牌
http://${host}:${post}/auth/realms/${realm}/authz/protection/uma-policy
我从key shaak返回的结果是
{
"error": "invalid_clientId",
"error_description": "Client application [blog_gui] is not registered as a resource server."
}
推荐答案
在您的场景中-js将向Keyloak查询具有受众/客户端的访问令牌blog_gui
。此客户端是公共的,因此它不是注册的资源服务器。
您可能想要执行token exchange来获取后端客户端(blog_api
)的访问令牌,并使用获得的令牌来查询UMA-POLICY端点。您可以在Authorization Services docs over here中找到有关如何查询终结点的其他信息。
blog_api
客户端是机密的,并且已启用Authorization Enabled
。有关如何相应设置客户端的信息,请参阅this documentation。
这篇关于如何使用公共客户端下发的令牌查询密钥罩资源权限的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文