【发布时间】:2021-09-18 14:13:00
【问题描述】:
这更多是关于在 Keycloak 中为用户创建的资源建模权限/角色的惯用方法的早期问题。对于这个用例,我不确定是否应该只使用 Keycloak 进行身份管理并将访问管理留给应用程序。
建议用例:在应用程序中,资源属于一家公司,一家公司可以有多个用户。一些用户是管理员用户,负责为其他用户设置角色/权限。这些权限可以授予全局访问权限(例如用户可以查看所有文件)或资源特定访问权限(例如用户可以查看/修改营销文件夹中的文件)。
一个更具体的例子是 AWS IAM。多个用户可以在一个 AWS 账户上,但可以在不同级别控制访问。例如,可能会设置一个授予 S3 读取权限的角色,而另一个角色可能对营销存储桶拥有 S3 删除权限。
由于这些资源/角色是用户创建和管理的,我想我的应用程序需要提供自己的 UI,然后使用 REST API 与 Keycloak 进行通信。因为这些都是用户生成的,并且可能有许多公司在使用该应用程序,所以我可以预见到 Keycloak 中会保留大量与资源相关的数据。
我不确定这是否是个好主意 - 我想我需要经常与 Keycloak 服务器通信,以验证给定用户是否有权访问他们尝试请求/修改的资源。似乎 Keycloak 更适合与特定用户创建的资源无关的范围/权限?如果它是一个标准用例,是否有任何关于这种方法的文档(我找不到任何东西)?
【问题讨论】:
标签: authentication authorization keycloak identity keycloak-rest-api