评估密钥斗篷中共享资源的权限时的逻辑

时间:2020-10-17 13:49:45

标签: keycloak

在评估共享资源的权限时,我难以理解逻辑。

  • Alice使用范围aliceResource创建资源read, create, delete
  • Alice创建策略isAdmin,该策略验证用户是否为admin
  • Alice创建一个权限,该权限将策略isAdmin应用于资源aliceResource isAdmin permission
  • Alice与用户aliceResource共享范围为read的资源Bob Alice shares with bob

评估权限

  • 对于范围aliceResource中的read,对于未分配角色的bo​​b。 evaluate read 问题1.为什么忽略了应用于资源的策略isAdminresult read

  • 对于bob的范围aliceResource中的delete evaluate delete 问题2.当bob没有分配角色时,即使我正在评估范围read,为什么策略资源所有者仍授予deleteno role 问题3.当bob扮演admin角色时,为什么会得到 permit ?, Alice与bobread而不是{{1}共享资源} role admin

如果有人能帮助我了解发生了什么,我将不胜感激。

谢谢


编辑1。 我已将我的客户评估策略设置为一致,我希望所有策略都适用,但是如果我评估具有角色admin且未共享资源的用户,则该决定是授予,我如何使客户端执行所有策略?

现在,客户端正在共享资源时在我的策略与keycloak创建的策略之间进行

grant

1 个答案:

答案 0 :(得分:0)

Keycloak没有明确的拨款决定文档。 这个图是我的理解。关键是客户决策策略 如果设置为肯定,则将 OR 逻辑。 如果设置为一致,则将 AND 逻辑。 我设置了自己的权限(读取,删除和创建)和策略。每个权限都有一个范围(读取,删除或创建)。 Bob分配了读取策略,admin分配了所有三个策略。权限决策策略在这种情况下不受影响(由于在权限和范围之间分配了一个)

如果将其设置为已禁用,则任何用户都可以访问aliceResource。

enter image description here

这通过设置客户决策策略影响了两种情况。鲍勃 enter image description here

这通过设置客户决策策略影响了两种情况。对于管理员 enter image description here

因此,如果要允许bob只读取范围并管理三个范围,则客户决定应为肯定

这是我的测试决定结果。 enter image description here

相关问题