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