Запрос 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
}
}
]
}
Надеюсь, это сработает!