【问题标题】:Keycloak add resource to clientKeycloak 向客户端添加资源
【发布时间】:2023-04-03 22:05:02
【问题描述】:

我尝试使用 keycloak protection api 和 UMA 尝试向客户端添加资源,例如在 web 界面中。我对网络界面的问题是,我找不到将资源所有者设置为用户的方法。 每当我尝试使用正文向 http://IP:PORT/auth/realms/REALM_NAME/authz/protection/resource_set 发送请求时

{
     "name":"test",
     "type":"http://www.someurl.com/api",
     "icon_uri":"http://www.someurl.com/etc",
     "resource_scopes":[
         "read"
      ]
}

keycloak 服务器响应的范围为 openid、uma_authorization、uma_protection 和 email(角色为 uma_authorization 和 uma_protection)的访问令牌

{
    "error": "invalid_scope",
    "error_description": "Requires uma_protection scope."
}

我尝试了一切,从将范围授予我的测试用户帐户到将其映射到角色。有人可能知道如何通过 API 将资源与所有者一起添加到客户端?

【问题讨论】:

  • 我也面临同样的问题,你有没有解决办法@DreamOfCookies
  • 很遗憾,我决定放弃这种方法

标签: keycloak openid-connect openid


【解决方案1】:

你可以使用这个api

https://{HOST}/auth/realms/master/authz/protection/resource_set

Body:
{

 "owner":"ken", // your user (you should have user in db before creating recource)
 "name":"ken_new_tp4:resource",
 "ownerManagedAccess": true,
  "resource_scopes":[
         "edit",
         "create",
         "view"
      ]
}

但您应该使用有权访问 UMA 的身份验证令牌。

您可以使用管理员令牌来创建或制作客户端(机密(从 UI 面板,并使用 client_id 和机密登录)

我使用管理 api

POST  https://{HOST}/auth/realms/master/protocol/openid-connect/token
{
client_id:admin-cli
scope:openid email
username:user
password:password
client_secret:{SECRET_OF_CLIENT_ADMIN_CLI},
grant_type:password
audience:security-admin-console
}

如果它解决了你的问题,请告诉我

【讨论】:

    猜你喜欢
    • 2020-07-04
    • 1970-01-01
    • 2018-09-25
    • 2019-10-26
    • 2014-11-24
    • 2022-08-24
    • 1970-01-01
    • 2018-08-12
    • 2017-11-28
    相关资源
    最近更新 更多