在评估共享资源的权限时,我难以理解逻辑。
aliceResource
创建资源read, create, delete
isAdmin
,该策略验证用户是否为admin
isAdmin
应用于资源aliceResource
aliceResource
共享范围为read
的资源Bob
对于范围aliceResource
中的read
,对于未分配角色的bob。
问题1.为什么忽略了应用于资源的策略isAdmin
?
对于bob的范围aliceResource
中的delete
问题2.当bob没有分配角色时,即使我正在评估范围read
,为什么策略资源所有者仍授予delete
?
问题3.当bob扮演admin
角色时,为什么会得到 permit ?, Alice与bob
为read
而不是{{1}共享资源}
如果有人能帮助我了解发生了什么,我将不胜感激。
谢谢
编辑1。 我已将我的客户评估策略设置为一致,我希望所有策略都适用,但是如果我评估具有角色admin且未共享资源的用户,则该决定是授予,我如何使客户端执行所有策略?
现在,客户端正在共享资源时在我的策略与keycloak创建的策略之间进行或。
答案 0 :(得分:0)
Keycloak没有明确的拨款决定文档。 这个图是我的理解。关键是客户决策策略 如果设置为肯定,则将 OR 逻辑。 如果设置为一致,则将 AND 逻辑。 我设置了自己的权限(读取,删除和创建)和策略。每个权限都有一个范围(读取,删除或创建)。 Bob分配了读取策略,admin分配了所有三个策略。权限决策策略在这种情况下不受影响(由于在权限和范围之间分配了一个)
如果将其设置为已禁用,则任何用户都可以访问aliceResource。
因此,如果要允许bob只读取范围并管理三个范围,则客户决定应为肯定