为动态角色和属性建模XACML策略

时间:2019-05-15 15:20:21

标签: authorization xacml abac

我想编写一个 / 策略,该策略将验证用户角色和属性是否与特定活动的角色和属性匹配。

应将用户角色和属性以及活动角色和属性作为输入传递给XACML策略以进行评估。如果用户角色和属性与活动角色和属性匹配,则响应应该为PERMIT

例如:

  • 活动:在纽约证券交易所查看美元交易。
  • 角色:交易者
  • 属性:“ EXCHANGE”,值:“ NYSE”
  • 属性:“ CURRENCY”,值:“ USD”

XACML请求输入1

  • 名称:Jay
  • 角色:交易者
  • 属性:EXCHANGE:NYSE
  • 属性:CURRENCY:USD

XACML请求输入2

  • 姓名:John
  • 角色:交易者
  • 属性:EXCHANGE:NYSE
  • 属性:CURRENCY:GBP

XACML请求输入3

  • 名称:Mat
  • 角色:交易者
  • 属性:EXCHANGE:NYSE

属性是键/值对。

预期的输出。

针对上述请求评估XACML策略时:

  • 周杰伦应该获得PERMIT和
  • 约翰应该得到“拒绝”。
  • 垫子应获得PERMIT的“货币”作为美元。

有人可以帮我这个政策吗?

以下是ALFA策略,它将执行下面给出的RBAC检查

  namespace RBACPolicy {
    attribute activityRoles {
        id = "activity:role"
        type = string
        category = resourceCat
    }

    attribute userRoles {
        id = "subject:role"
        type = string
        category = subjectCat
    }

    policyset genericpolicy {
        apply denyOverrides

        policy genericpolicy_1 {
            apply denyOverrides

            rule rule1{
                permit
                    condition stringAtLeastOneMemberOf(activityRoles, userRoles)
            }
        }
    }
}

感谢David以正确的格式编辑此请求。 我还想对这个问题再说一遍。 用户可以具有属性的多个组合。 说周杰伦可以在纽约证券交易所进行美元交易,而在英国富时进行英镑交易。因此,XACML策略必须评估属性的组合。

  • 用户个人资料
    • 名称:Jay
    • 角色:交易者属性:EXCHANGE:NYSE属性:CURRENCY:USD
    • 角色:交易者属性:EXCHANGE:FTSE属性:CURRENCY:INR

请求

Jay View可以在INR的BSE交易吗?

0 个答案:

没有答案