当前位置: 首页 > 知识库问答 >
问题:

如何使用公共客户端发出的令牌查询keycloak资源权限

董翰池
2023-03-14

我有一个受KeyCloak保护的前端Javascript客户端。前端应用程序的Keycloak客户机类型为public,称为blog_gui

我还有一个受机密客户端“blog_api”保护的API,并启用了授权

当我从前端应用程序向API发出请求时,我从public客户机(blog_gui)发送由keycloak发出的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."
}

共有1个答案

夏俊人
2023-03-14

在您的场景中,keycloak-js将查询Keycloak以获取具有访问群体/客户机blog_gui的访问令牌。此客户端是公共的,因此不是注册的资源服务器。您可能希望执行令牌交换,以获得后端客户机的访问令牌(blog_api),并使用获得的令牌查询uma-policyendpoint。您可以在这里的授权服务文档中找到关于如何查询endpoint的其他信息。

确保您的blog_api客户端是机密的,并且启用了授权。关于如何相应地设置客户端,您可以参考本文档。

 类似资料:
  • 我们使用keycloak-adapter与Jetty一起使用KeyCloak进行身份验证和授权。根据OIDC Auth流程的Keycloak文档: 我们有连接到Jetty并使用Auth的webapps。因此,我们创建了一个公共客户端,它对WebApp/REST身份验证非常有效。 问题是,一旦我们启用授权,客户端类型就会从公共类型转换为机密类型,并且不允许将其重置为公共类型。现在,我们在汤里。由于授

  • 我有一个前端和后端应用程序(angular spring boot)。前端用作静态web内容,然后它将其余调用发送到同一端口上的后端API。 带有OpenID协议的keydape用于用户身份验证和角色管理。在需要身份验证的请求中,浏览器被重定向到KeyClope,用户给出用户名和密码,然后用户角色被返回到浏览器并写入访问令牌。 随后前端将此访问令牌与每个请求一起发送,后端在满足请求之前根据KeyC

  • 我有一个JHipster网关和微服务,目前配置为通过KeyCloak使用OAuth/OIDC。目前,所有资源都可供经过身份验证的用户使用。我希望使用keycloak中可用的细粒度安全性(启用对JHipster微服务客户机id的授权),通过资源id(如keycloak文档中所引用的)https://www.keycloak.org/docs/latest/authorization_services

  • 问题内容: 该站点仅包含JSON文档,而没有Java客户端。我应该执行某种映射吗? 例如地理位置查询:http : //www.elasticsearch.org/guide/reference/query- dsl/geo-distance-range- filter.html 如何使用Java客户端编写这样的查询? 谢谢杰森 问题答案: 不明显但不那么复杂;)

  • 我在Spring框架中有csrf保护。所以在每个请求中,我都从ajax调用中发送csrf令牌,这是完美的工作。 在ajax