首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何让所有可以访问特定资源的keycloak用户

如何让所有可以访问特定资源的keycloak用户
EN

Stack Overflow用户
提问于 2022-11-28 16:33:45
回答 2查看 51关注 0票数 0

我有一个KC实例,其中有一些客户端启用了Authorization选项。所有这些都很好,但作为客户端,我需要以下特定信息:给定具有特定范围的特定资源,我需要访问该资源的用户列表。

我已经对可用的API进行了多次探索,但都没有成功。是否有获得此信息的方法,或者我是否需要使用专用的SPI扩展KC功能?

EN

回答 2

Stack Overflow用户

发布于 2022-11-28 18:42:19

不幸的是你不能。Keycloak授权机制只有在有输入时才会进行检查。这里,您的输入是用户。要做到这一点,你必须要求所有的用户。这是不实用的bcz,可能有上千个用户。

资源服务器(提供受保护资源的应用程序或服务)通常依赖于某种类型的信息来决定是否应该授予对受保护资源的访问权限。对于基于RESTful的资源服务器,该信息通常是从安全令牌获取的,通常作为承载令牌发送给服务器的每个请求。对于依赖会话对用户进行身份验证的web应用程序,该信息通常存储在用户的会话中,并为每个请求

从其中检索

票数 0
EN

Stack Overflow用户

发布于 2022-11-28 19:10:52

通过可以找到特定资源的所有用户。

这一步

我使用的是Keycloak v18.0.2 (如果使用v19/v20,只需删除API端点中的auth )

#1获取特定的客户端uuid

代码语言:javascript
运行
复制
GET {keycloak_url}/auth/admin/realms/{realm}/clients/{client-uuid}

#2获取特定资源uuid

代码语言:javascript
运行
复制
GET {keycloak_url}/auth/admin/realms/{realm}/clients/{client-uuid}/authz/resource-server/resource/{resource-uuid}

#3获得#2的特别许可

代码语言:javascript
运行
复制
GET {keycloak_url}/auth/admin/realms/{realm}/clients/{client-uuid}/authz/resource-server/resource/{resource-uuid}/permissions

4获取策略3获取策略和权限列表

代码语言:javascript
运行
复制
GET {keycloak_url}/auth/admin/realms/{realm}/clients/{client-uuid}/authz/resource-server/policy

获得特定许可的政策

代码语言:javascript
运行
复制
GET {keycloak_url}/auth/admin/realms/{realm}/clients/{client-uuid}/authz/resource-server/policy/{permission-uuid}/associatedPolicies

5获取#4的用户列表

代码语言:javascript
运行
复制
GET {keycloak_url}/auth/admin/realms/{realm}/clients/{client-uuid}/authz/resource-server/policy/{policy-uuid}

用户列表将在响应体中返回。

代码语言:javascript
运行
复制
{
    "id": {policy-uuid},
    "name": {policy-name},
    "config": {
        "users": "[array of {user-uuid}]"
    }
}

UI演示

我将在resource1 of my-test客户机中找到所有用户。

它分析了permission1

permissions1应用policy1

policy的两个用户

API演示

同一步骤的API

查找客户端uuid

查找特定资源uuid

获取特定资源

获取权限和策略列表

获取相关策略以获取权限

获取策略的用户列表

该用户uuid匹配的用户列表

所以你可以找到resource1的用户是user1user3

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74603719

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档