聚合策略
如前所述,Keycloak允许您制定策略的策略。一种被称为策略聚合的概念。可以使用策略聚合来重用现有策略来构建更复杂的策略,并将权限与授权请求处理过程中评估的策略进行更多的分离。
要创建新的聚合策略,请在策略列表右上角的下拉列表中选择“聚合”。
假设你有一个名为“Confidential Resource”的资源,只能由用户从keycloak.org域和一定范围的IP地址访问。但是,您要重用该策略的域部分以应用于权限。这个权限无论起始网络如何,它都可以运行。
可以为域和网络条件创建单独的策略,并基于这两个策略的组合创建第三个策略。使用聚合策略,您可以自由组合其他策略,然后将新的聚合策略应用于所需的任何权限。
注意:在创建聚合策略时,请注意,不能在策略之间引入循环引用或依赖关系。如果检测到循环依赖关系,则无法创建或更新策略。
配置
- Name
一个可读且唯一的字符串描述策略。我们强烈建议您使用与您的业务和安全要求密切相关的名称,以便您更轻松地识别它们,并且知道它们的含义。
- Description
一个包含有关此策略的详细信息的字符串。
- Apply Policy
定义一组与策略关联的一个或多个策略。
- Decision Strategy
这个权限的决策策略。
- Logic
这个政策的逻辑在其他条件进行鉴定后应用。
聚合策略的决策策略
在创建聚合策略时,还可以根据每个策略的结果来定义将用于确定最终决策的决策策略。
- Unanimous
如果没有提供默认策略。在这种情况下,所有政策都必须评估一个积极的决定,最终决定也是积极的。
- Affirmative
在这种情况下,至少有一个政策必须评估一个积极的决定,以便最终决定也是积极的。
- Consensus
在这种情况下,积极决定的数量必须大于消极决定的数量。如果积极和消极的决定数量相同,最终的决定将是消极的。