如果我有 API
https://api.example.org/api/v1/resources
并且可以访问具有 id 的资源
https://api.example.org/api/v1/resources/:id
如何编写 XACML 策略,其中资源是具有资源 ID 的 URL(上面的第二个 URL)?如何在其中放置占位符/变量以便为它编写规则?
如果我有 API
https://api.example.org/api/v1/resources
并且可以访问具有 id 的资源
https://api.example.org/api/v1/resources/:id
如何编写 XACML 策略,其中资源是具有资源 ID 的 URL(上面的第二个 URL)?如何在其中放置占位符/变量以便为它编写规则?
您是说需要为各种可能的 id 编写单独的策略吗?例如
处理对资源https://api.example.org/api/v1/resources/:1的访问的 P1和处理对资源https://api.example.org/api/v1/resources/:2等 的访问的 P2 .
如果是这样,想法将是使用属性 id,比如resource-id
属性,在 PEP 端捕获id
URL 中的值并将其传递给 PDP,并编写策略,其中目标指定为string-equals(resource-id,1)
P1 和string-equals(resource-id,2)
P2等
(编辑) 根据提供的说明,您可以按以下方式进行:
这种情况下的推理将是类似的。您编写一个策略来处理资源的所有规则,并将其目标指定为,string-equals(resource-type,"resources")
并在该策略中为每个资源 ID 指定规则。在规则级别,目标是string-equals(resource-id,"1")
等string-equals(resource-id,"2")
。