XACML JSON 请求中的强制类别

XACML JSON Mandatory categories in request

我对 JSON Profile of XACML 3.0 的 4 个类别有疑问。

当我在 JSON 中从 PEP 向 PDP 发送请求时,PEP 是否总是需要向 PDP 发送 AccessSubject、Resource、Action 和 Enviroment,或者 PEP 是否可以发送 JSON请求?

这是diagram JSON request

JSON 请求可能包含任意数量的类别,包括自定义类别。这适用于 XACML 请求,无论它是在 JSON 还是 XML 中编码(我是此配置文件的编辑并在公司 Axiomatics 工作)。

JSON 配置文件还定义了 8 个可以使用的默认类别。这些类别名称是:

  • urn:oasis:names:tc:xacml:3.0:attribute-category:resource : 资源
  • urn:oasis:names:tc:xacml:3.0:attribute-category:action : 动作
  • urn:oasis:names:tc:xacml:3.0:attribute-category:environment: 环境
  • urn:oasis:names:tc:xacml:1.0:subject-category:access-subject : AccessSubject
  • urn:oasis:names:tc:xacml:1.0:subject-category:recipient-subject : RecipientSubject
  • urn:oasis:names:tc:xacml:1.0:subject-category:intermediary-subject : IntermediarySubject
  • urn:oasis:names:tc:xacml:1.0:subject-category:codebase : 代码库
  • urn:oasis:names:tc:xacml:1.0:subject-category:requesting-machine : RequestingMachine

这是一个仅使用 3 个类别并使用其 shorthand 符号的示例:

{
    "Request": {
        "AccessSubject": {
            "Attribute": [
                {"AttributeId": "com.acme.user.employeeId",
                 "Value": "Alice"}
            ]},
        "Resource": {
            "Attribute": [
                {"AttributeId": "com.acme.record.recordId",
                    "Value": "123"},
                {"AttributeId": "com.acme.object.objectType",
                 "Value": "record"}
            ]},
        "Action": {
            "Attribute": [
                {"AttributeId": "com.acme.action.actionId",
                 "Value": "view"}
            ]}
    }
}