策略决策点 policy-desc-pt
域模型 domain-model
本页旨在作为策略的不同用例和实施的参考。 我们建议您也参阅文档的术语表部分以了解术语定义。
租户拥有 要强制实施 策略的应用程序。 客户端应用程序必须配置有应用程序ID(由Adobe提供)。
然后,租户将每个应用程序与一个或多个策略相关联,这些策略由租户创建或由其他人创建和共享。 策略可以在多个租户之间链接。
主题活动包含向特定主题并发监视报告的所有流(无论应用程序如何)。
当一个流被授权用于给定主题时,系统将首先检查为创建该流的应用程序定义的所有策略。
对于每个适用的策略,我们需要收集将传递到规则的所有相关活动。 策略P的 相关活动 将仅包含满足以下条件的流S:
流“S”由其策略中包含策略“P”的应用程序启动。
模拟运行用例 dry-run-use-cases
下面的演练旨在根据某些用例验证模型。 我们将逐步做到这一点,从基本设置开始,并以各种方式增加复杂性。
1.一个租户。 一个应用程序。 一个政策。 一个流 onetenant-oneapp-onepolicy-onestream
我们将从单个租户开始,其中关联单个应用程序和单个策略。 假设该策略声明,任何用户最多只能有一个活动流(最新的流允许播放)。
启动流后,活动将仅包含该流并允许播放。
2.一个租户。 一个应用程序。 一个政策。 两股。 onetenant-oneapp-onepolicy-twostreams
启动第二个流(由同一主题使用同一应用程序)后,用于验证的活动将同时包含 s1 和s2。
超过限制,因为策略声明只允许播放一个流,因此我们将仅允许播放最新的流(s2)。
3.两个租户。 两个应用程序。 一个政策。 两股。 twotenant-twoapp-onepolicy-twostreams
现在,假设一个新租户希望在其应用程序中实施相同的策略:
由于两个租户由同一策略链接,因此用例2中描述的情况适用于此处,并且允许 s3 播放,因为它是最新的流。
4.两个租户。 三个应用程序。 两种策略。 两股。 twotenants-threeapps-twopolicies-twostreams
现在,假设第二个租户部署了新应用程序并想要定义将在 app2 和 app3 之间共享的新策略。
此时,允许使用活动流 s3 和s4。 对于s3,在评估策略 P1 时,系统将仅将 s3 计为相关活动 (s4与策略 P1 无关),因此不存在冲突。
策略 P2 应用于两个流,它将同时包含 s3 和 s4 作为相关活动。 由于此活动在两个流的范围内,因此允许这两个流。
5.两个租户。 三个应用程序。 两种策略。 三流。 twotenants-threeapps-twopolicies-threestreams
现在,假定使用 app2 执行了新的流初始化尝试:
s5允许由 P1 启动(这允许较新的流接管),但 P2 拒绝它,因此它不会启动。
如果尝试使用app3初始化某个流,也会发生同样的情况:同一策略P2将拒绝对该流的访问。
现在,我们来看看如果用户尝试使用app1创建新流会发生什么情况:
应用程序app1与策略 P2 没有任何关系,因此它将只应用策略P1:该策略允许新流启动并拒绝旧流(s3,在本例中为)。