【问题标题】:Output for SCIM User PUT method when updating a composite attribute更新复合属性时 SCIM 用户 PUT 方法的输出
【发布时间】:2015-05-25 03:39:27
【问题描述】:

我在 mu 用户存储中有一个具有以下属性的用户。

{
  "id": "bfae138c-9f57-4ff1-ab63-599f2034371f",
  "schemas":[
    "urn:scim:schemas:core:1.0"
  ],
  "name":{
    "formatted": "Ms. Barbara J Jensen III",
    "familyName": "Jensen",
    "givenName": "Barbara"
  },
  "userName": "bjensen123",
  "externalId": "bjensen",
  "meta":{
    "lastModified": "2015-05-25T08:59:28",
    "location": "https://localhost:9443/wso2/scim/Users/bfae138c-9f57-4ff1-ab63-599f2034371f",
    "created": "2015-05-25T08:59:28"
  }
}

我正在使用以下方法体向该资源发送一个放置请求。

{
  "schemas":["urn:scim:schemas:core:1.0"],
  "userName":"bjensen123",
  "name":{
    "formatted":"Ms. Bb",
  }
}

生成的资源的名称属性应该是什么?

"name":{
   "formatted":"Ms. Bb",
}

或

"name":{
     "formatted": "Ms. Bb",
    "familyName": "Jensen",
    "givenName": "Barbara"
  }

【问题讨论】:

    标签: provisioning user-management scim


    【解决方案1】:

    PUT 请求将作为完整更新处理,而不是 PATCH,它只会更新指定的属性,并且对于实施者是可选的(根据 SCIM 1.1 规范)。 PUT 的目的是请求者首先执行用户的读取 (GET),更改所需的属性,并提供全面的更新,以包括那些实际上没有更改的属性(密码是一个例外)。任何未在 PUT 请求中指定值的属性都会被吹走。因此,根据您的示例,PUT 响应将返回为:

    "name":{"formatted":"Ms. Bb"}

    如果您不想丢失 familyName 和 givenName,您还必须重新指定它们(以及您不想删除的任何其他属性)。这是规范定义: http://www.simplecloud.info/specs/draft-scim-api-01.html

    【讨论】:

      猜你喜欢
      • 2020-12-24
      • 1970-01-01
      • 1970-01-01
      • 2013-11-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-16
      • 2014-05-27
      相关资源
      最近更新 更多