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