如何使用公共客户端颁发的令牌查询密钥斗篷资源权限



我有一个受keycapture保护的前端Javascript客户端。前端应用程序的Key斗篷客户端的类型为Public,称为blog_gui

我还有一个API,它由一个名为"blog_API"的Confidential客户端保护,并启用了Authorization

当我从我的前端应用程序向API发出请求时,我从public客户端(blog_gui(发送keycapture发出的JWT,作为请求头中的Bearer令牌。

在API中,我想检查发送JWT的前端应用程序是否具有对特定资源的权限。因此,我在以下URL向密钥斗篷服务器发送了一个请求,包括来自前端应用程序的JWT作为承载令牌

http://${host}:${post}/auth/realms/${realm}/authz/protection/uma-policy

我从密钥斗篷中得到的结果是

{
"error": "invalid_clientId",
"error_description": "Client application [blog_gui] is not registered as a resource server."
}

在您的场景中,keycapture js将向Keycapture查询具有访问者/客户端blog_gui的访问令牌。此客户端是公共的,因此它不是已注册的资源服务器。您可能希望执行令牌交换以获得后端客户端(blog_api(的访问令牌,并使用获得的令牌查询uma策略端点。您可以在此处的Authorization Services文档中找到有关如何查询端点的其他信息。

请确保您的blog_api客户端是机密的,并且已打开Authorization Enabled。您可以参考本文档了解如何相应地设置客户端。

最新更新