Я пытаюсь внедрить SCIM в AAD и мне сложно сопоставлять поля. Когда пользователь добавлен в группу. В этом примере я хочу, чтобы произошло следующее:
(в значительной степени то, что делает scim)
Пользователь подготовлен, пользователь создан.
Пользователь удален, пользователь удален
Пользователь добавлен в группу, изменения в группе
Пользователь удален из группы, группа меняется.
здесь информация API
getUsers
Метод: get
URL: /scim/v2/Users?filter=userName+eq+%22example%40example.com%22
ответ:
{
"totalResults": 1,
"startIndex": 1,
"itemsPerPage": 1,
"schemas": [ "urn:ietf:params:scim:api:messages:2.0:ListResponse" ],
"Resources": [
{
"emails": [ { "value": "example@example.com" } ],
"appGroups": [ "Unicorn Team" ],
"schemas": [ "urn:ietf:params:scim:schemas:core:2.0:User" ],
"name": { "familyName": "Family", "givenName": "Given" }, // SCIM requires names, but no real names are stored; you'll always get back these placeholder values
"active": true,
"id": "example@example.com",
"userName": "example@example.com",
"status": "success"
},
... // more users
]
}
addUsers
Метод: post
url /scim/v2/Users
body
{
"userName": "example@example.com",
"appGroups": [ "Unicorn Team", "Rainbow Team" ],
"active": true
}
Ответ:
{
"emails": [
{
"value": "example@example.com"
}
],
"appGroups": [
"Unicorn Team",
"Rainbow Team"
],
"schemas": [
"urn:ietf:params:scim:schemas:core:2.0:User"
],
"name": {
"familyName": "Family",
"givenName": "Given"
},
"active": true,
"id": "example@example.com",
"userName": "example@example.com",
"status": "success"
}
Конфигурация пользователя:
"users": [
{
"email": "example@example.com",
"groups": ["Unicorn Team", "Rainbow Team"]
},
],
"groups": [
{
name: "Unicorn Team",
},
{
name: "Rainbow Team",
},
{
name: "X",
},
{
name: "Y",
},
{
name: "Z",
},
]
putUsers
метод: put
URL: /scim/v2/Users/example%40example.com
тело:
{
"userName": "example@example.com",
"appGroups": [ "Unicorn Team", "X" ],
"active": true
}
Конфигурация пользователя:
"users": [
{
"email": "example@example.com",
"groups": ["Unicorn Team", "X"]
},
],
"groups": [
{
name: "Unicorn Team",
},
{
name: "Rainbow Team",
},
{
name: "X",
},
{
name: "Y",
},
{
name: "Z",
},
]
patchUsers
метод: patch
URL: /scim/v2/Users/example%40example.com
тело:
{
"active": false
}
ответ:
{
"emails": [
{
"value": "example@example.com"
}
],
"appGroups": [
"Unicorn Group"
],
"schemas": [
"urn:ietf:params:scim:schemas:core:2.0:User"
],
"name": {
"familyName": "Family",
"givenName": "Given"
},
"active": false,
"id": "example@example.com",
"userName": "example@example.com",
"status": "success"
}
Конфигурация пользователя
"users": [
],
"groups": [
{
name: "Unicorn Team",
},
{
name: "Rainbow Team",
},
{
name: "X",
},
{
name: "Y",
},
{
name: "Z",
},
]
Azure Документы: https://docs.microsoft.com/en-us/azure/active-directory/app-provisioning/use-scim-to-provision-users-and-groups