SCIM 2.0 的补丁请求

PATCH request for SCIM 2.0

我们正在向 SCIM 规范中的服务器发送 PATCH 请求。

根据 SCIM 规范,请求应在 PATCH 请求中包含以下属性。

因此,如果我们从核心模式更改“givenName”属性,则 PATCH 请求将采用以下方式,(参考:https://www.rfc-editor.org/rfc/rfc7644#section-3.5.2

{
 "schemas" : ["urn:ietf:params:scim:api:messages:2.0:PatchOp"],
     "Operations":[
       {
        "op":"replace",
        "path":"name.givenName",
        "value":"Ravindra"
       }
     ]
}

现在,如果要修改任何 SCIM 扩展,比如企业扩展,“path”属性应该是什么。

企业扩展的以下表述是否正确?

{
 "schemas" : ["urn:ietf:params:scim:api:messages:2.0:PatchOp"],
     "Operations":[
       {
        "op":"replace",
        "path":"urn:ietf:params:scim:schemas:extension:enterprise:2.0:user.department",
        "value":"Engineering"
       }
     ]
}

我在尝试修补企业用户的 "active" 值时遇到了类似的错误。解决方案很简单:将上面示例中的 "path" 值更改为简单的 "department".

为了完整起见,这是在 Postman 中为我工作的 PATCH 主体:

{
  "schemas": [
    "urn:ietf:params:scim:api:messages:2.0:PatchOp"
  ],
  "Operations": [
     {
       "op":"replace",
       "path":"active",
       "value":"false"
     }
  ]
}

正如在 scim 过滤器应遵循的 ABNF 中一样(请参阅 RFC 7644 的第 3.4.2.2 节),当您引用扩展的属性部分时,您应该这样做 URI:attribute_path,因此在您的情况下是 "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User:department"

属性“.Operations.[].value”必须是散列类型

{
  "schemas": [
    "urn:ietf:params:scim:schemas:core:2.0:User"
  ],
  "Operations": [
    {
      "op": "replace",
      "value": {
        "active": false
      }
    }
  ]
}

希望这能奏效!!