Xml 比较用户的特定自定义属性

Xml 比较用户的特定自定义属性,xml,xacml,xacml3,pdp,Xml,Xacml,Xacml3,Pdp,对于我心目中的XACML策略文档,我有一个主题(用户)和一个对象,每个对象都附有一个标签。让我们称之为myLabel={[a,b,c],[1,2,3]}。我想比较一下这个标签的各个部分 如何在访问请求和策略中定义包含此标签的主题和对象,以制定比较决策? 我希望使用XML而不是JSON或ALFA来声明上述内容。XACML(和ALFA)附带了一组明确定义的数据类型和函数。例如,XACML定义了以下数据类型: 串 整数 布尔值 日期 有18种左右的现成数据类型 为了处理这些数据类型,XACML定义

对于我心目中的XACML策略文档,我有一个主题(用户)和一个对象,每个对象都附有一个标签。让我们称之为
myLabel={[a,b,c],[1,2,3]}
。我想比较一下这个标签的各个部分

如何在访问请求和策略中定义包含此标签的主题和对象,以制定比较决策?

我希望使用XML而不是JSON或ALFA来声明上述内容。

XACML(和ALFA)附带了一组明确定义的数据类型和函数。例如,XACML定义了以下数据类型:

  • 整数
  • 布尔值
  • 日期
有18种左右的现成数据类型

为了处理这些数据类型,XACML定义了数百个函数,例如:

  • 字符串相等
  • 字符串大于
  • 整数相等
XACML中的属性(例如标签、角色或部门)必须具有数据类型。属性可以是多值的。换句话说,
role=[“经理”]
role=[“经理”、“员工”、“看门人”]
。两者都是完全正确的

在您的例子中,您引用的值的结构如下:
{[a,b,c],[1,2,3]}
。这不是标准数据类型。它是一个复杂的对象,因此需要进一步处理(在PEP中?在PIP中?)。你是如何考虑把它交给PDP的

假设我们有简单的值,例如label='2'。要将用户标签与资源标签进行比较,并在两者相等时授予访问权限,请编写以下代码:

阿尔法
/**
*基于标签的访问控制
*/
政策标签访问控制{
首先适用
规则AllowFameLabel{
许可证
条件user.label==object.label
}
}
XACML XML等价物

基于标签的访问控制
http://www.w3.org/TR/1999/REC-xpath-19991116
XACML(和ALFA)提供了一组明确定义的数据类型和函数。例如,XACML定义了以下数据类型:

  • 整数
  • 布尔值
  • 日期
有18种左右的现成数据类型

为了处理这些数据类型,XACML定义了数百个函数,例如:

  • 字符串相等
  • 字符串大于
  • 整数相等
XACML中的属性(例如标签、角色或部门)必须具有数据类型。属性可以是多值的。换句话说,
role=[“经理”]
role=[“经理”、“员工”、“看门人”]
。两者都是完全正确的

在您的例子中,您引用的值的结构如下:
{[a,b,c],[1,2,3]}
。这不是标准数据类型。它是一个复杂的对象,因此需要进一步处理(在PEP中?在PIP中?)。你是如何考虑把它交给PDP的

假设我们有简单的值,例如label='2'。要将用户标签与资源标签进行比较,并在两者相等时授予访问权限,请编写以下代码:

阿尔法
/**
*基于标签的访问控制
*/
政策标签访问控制{
首先适用
规则AllowFameLabel{
许可证
条件user.label==object.label
}
}
XACML XML等价物

基于标签的访问控制
http://www.w3.org/TR/1999/REC-xpath-19991116

只是澄清一下,您的意思是每个标签都是一组2个数组,还是只有一个用于主题,一个用于对象,例如:主题有标签[a,b,c],对象有标签[1,2,3],当且仅当a=1,b=2,c=3时才允许决策?你能详细说明一下你想要的标签上的比较算法吗?举例来说,这应该会导致许可决定?@CyrilDangerville主语和宾语都有标签
{[a,b,c],[1,2,3]}
。这个标签的一个示例规则(很多)可能是
主题标签[][2]=3>对象标签[][1]=2
——这导致了许可,正如David在回答中提到的,XACML标准中没有这种标签结构的现成数据类型。尽管如此,制作自己的可能有点过头了。更简单的选择:使用标准数据类型将其设置为两个XACML属性:标签第一部分的字符串(bag)属性,例如
[a,b,c]
(命名为
标签字符串
?);以及第二部分的整数(bag)属性,例如[1,2,3](命名为
标签ints
?)。我让你为这些建议更好的名称,然后我可以根据你的建议写一个XACML策略。只是为了澄清一下,你的意思是每个标签都是一组2个数组,或者只是一个用于主题,一个用于对象,例如:主题有标签[a,b,c],对象有标签[1,2,3],当且仅当a=1,b=2,c=3时才允许决策?你能详细说明一下你想要的标签上的比较算法吗?举例来说,这应该会导致许可决定?@CyrilDangerville主语和宾语都有标签
{[a,b,c],[1,2,3]}
。这个标签的一个示例规则(很多)可能是
主题标签[][2]=3>对象标签[][1]=2
——这导致了许可,正如David在回答中提到的,XACML标准中没有这种标签结构的现成数据类型。尽管如此,制作自己的可能有点过头了。更简单的选择:使用标准数据类型将其设置为两个XACML属性:标签第一部分的字符串(bag)属性,例如
[a,b,c]
(命名为
标签字符串
?);以及第二部分的整数(bag)属性,例如[1,2,3](命名为
标签ints
?)。