Запрос PATCH для SCIM 2.0

Мы отправляем запрос PATCH на сервер в спецификации SCIM.

Согласно спецификациям SCIM, запрос должен содержать следующие атрибуты в запросе PATCH.

  • оп
  • дорожка
  • значение

Таким образом, если мы изменяематрибут GivenName из базовой схемы, запрос PATCH будет выглядеть следующим образом (ref: https://tools.ietf.org/html/rfc7644)

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

Теперь, что должно быть атрибутом 'path', если вы модифицируете какое-либо расширение SCIM, скажем, корпоративное расширение.

Правильно ли следующее представление для расширения предприятия?

{
 "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"
       }
     ]
}

3 ответа

Как и в ABNF, к которому должны присоединяться фильтры scim (см. Раздел 3.4.2.2 RFC 7644), когда вы ссылаетесь на часть атрибута расширения, вы должны сделать URI:attribute_path, так что в вашем случае это "urn:ietf:params": SCIM: схемы: расширение: предприятия: 2.0: Пользователь: отдел"

Я получал похожую ошибку при попытке ПАТЧИРОВАТЬ "активное" значение корпоративного пользователя. Решение простое: измените значение "путь" в приведенном выше примере на просто "отдел".

Для полноты вот тело PATCH, которое работало для меня в Postman:

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

Атрибут '.Operations.[]. Value' должен иметь тип хеш

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

Надеюсь, это сработает!

Другие вопросы по тегам