gpt4 book ai didi

oauth-2.0 - Keycloak,客户端之间共享资源

转载 作者:行者123 更新时间:2023-12-04 13:56:55 24 4
gpt4 key购买 nike

我们正在开发一个基于微服务架构的应用程序,其中用户可以是组织的成员,并且在每个组织内,他们可能有基于资源的访问限制。例如,招聘人员是平台上多个组织的成员;在组织A中,他们可能会看到所有职位发布和面试官的列表,而在组织B中,他们只能看到他们直接允许查看的职位发布。

从结构上看,这变成了这样:
enter image description here

使用 Keycloak 似乎很容易做到这一切,我们创建 secret 客户端(每个微服务一个)并启用对它们的资源管理。但是,在某些情况下,不同的微服务(即 Keycloak 客户端)需要验证用户对同一资源的访问范围。一个例子是我们有 2 个微服务,一个用于发布和管理职位公告,另一个用于管理申请和面试,即职位经理和申请经理。现在,当提交新申请时,或者面试官尝试访问应用程序时,应用程序管理器必须确保用户可以访问在作业管理器 Keycloak 客户端中配置的职位发布(资源)。我认为,这不是 Keycloak 支持的。

从规模上看,我们谈论的是 X00k 用户、组织用户连接数的 4-5 倍以及数千万资源。因此,为了最大限度地减少我们在 Keycloak 中创建的对象数量,我们决定利用存储 JSON 结构的资源的属性。

那么,一个微服务如何通过另一个微服务验证用户对资源管理器的访问?

最佳答案

尝试启用细粒度授权:
https://www.keycloak.org/docs/latest/authorization_services/#_resource_server_enable_authorization
这允许基于资源的授权。资源不一定是您拥有的每个资源,而是一个抽象,如 org_manager 等...
或者,您可以使用已有的 json 并使用您定义的策略询问 OPA 代理。
https://www.openpolicyagent.org/

关于oauth-2.0 - Keycloak,客户端之间共享资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60827577/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com