5.5. 聚合策略
如前文所述,红帽构建的 Keycloak 允许您构建策略,它是一个称为策略聚合的概念。您可以使用策略聚合来重复利用现有策略来构建更复杂的策略,并使权限更容易地与处理授权请求期间评估的策略保持分离。
要创建新的聚合策略,请在策略列表右上角的项目列表中选择 Aggregated。
添加聚合策略
假设有一个名为机密资源的资源,它只能被 keycloak.org 域以及特定范围内的 IP 地址访问。您可以使用这两个条件创建单个策略。但是,您要重复使用此策略的域部分,以应用到无论原始网络是什么运行的权限。
您可以为域和网络条件创建单独的策略,并根据这两个策略的组合创建第三个策略。通过聚合策略,您可以自由组合其他策略,然后将新的聚合策略应用到您想要的任何权限。
在创建聚合策略时,请注意,您不会引入策略之间的循环参考或依赖项。如果检测到循环依赖项,则无法创建或更新策略。
5.5.1. Configuration 复制链接链接已复制到粘贴板!
Name
描述该策略的人类可读和唯一字符串。我们强烈建议您使用与业务和安全要求紧密相关的名称,以便您可以更轻松地识别它们,并知道它们的含义。
描述
包含有关此策略的更多详细信息的字符串。
应用策略
定义与聚合策略关联的一个或多个策略集合。要关联策略,您可以选择现有策略,或通过选择您要创建的策略类型来创建新策略。
决策策略
此权限的决策策略。
逻辑
评估其他条件后要应用此策略的逻辑。
5.5.2. 聚合策略的决策策略 复制链接链接已复制到粘贴板!
在创建聚合策略时,您还可以定义根据每个策略的结果决定最终决定的决策。
unanimous
如果没有提供任何默认策略。在这种情况下,所有策略都 必须评估为正决定,以便最终决定也是正正的。
Affirmative
在这种情况下,至少有一个 策略必须评估为正决定,以便最终决定也是正正的。
consensus
在这种情况下,正决策的数量必须大于负决策的数量。如果正决策和负决策数量相同,则最终决策将为负数。