Подготовка пользователей Azure AD с помощью SCIM 2.0

Я пытаюсь подготовить SCIM 2.0 с помощью Azure AD

В качестве предпосылки у меня есть SCIM как сервер для моего продукта, и я реализую конечные точки PATCH для использования с Okta и Microsoft Azure AD.

Я закончил тестирование с Okta, поэтому сейчас пытаюсь использовать Azure AD.

Я прочитал этот пост active-directory-scim- подготовка и спецификация SCIM 2.0 раздел 3.5.2 .

Я установил корпоративное приложение в нашей Azure AD со следующим сопоставлением  отображение

Затем Azure AD отправляет следующий запрос JSON POST для создания пользователей, назначенных приложению на моем сервере:

POST:

{
  "active": true,
  "displayName": "$DISPLAY_NAME", 
  "emails": [
        {                                                                                                                                                                                                                                                                       
            "primary": true,
            "type": "work",
            "value": "$EMAIL"
        }
    ],
    "externalId": "$EXTERNAL_ID",
    "meta": {
        "resourceType": "User"
    },
    "name": {
        "formatted": "$FORMATTED"
    },
    "schemas": [
        "urn:ietf:params:scim:schemas:core:2.0:User",
        "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User"
    ],
    "userName": "$USER_NAME"
}

Я могу правильно обработать запрос POST, но не могу использовать запрос PATCH из Azure AD.

ПАТЧ:

{                                                                                                                                                                                                                                                                               
    "Operations": [
        {   
            "op": "Replace",
            "path": "name.givenName",
            "value": [
                {   
                    "$ref": null,
                    "value": "$VALUE"
                }   
            ]
        },  
        {   
            "op": "Replace",
            "path": "name.familyName",
            "value": [
                {   
                    "$ref": null,
                    "value": "$VALUE"
                }   
            ]   
        }   
    ],  
    "schemas": [
        "urn:ietf:params:scim:api:messages:2.0:PatchOp"
    ]   
}

Верно ли (согласно спецификации), что атрибут value относится к типу Array, даже если целью является однозначный атрибут? Правильно ли в этом случае использование атрибута $ref?

Или я неправильно понял спецификацию?


person Daichi    schedule 25.01.2018    source источник
comment
Я задавался вопросом о том же. Нашли ответ от MS? Кроме того, они отправляют логические значения в виде строк, например Правда вместо истины.   -  person thesmart    schedule 04.08.2018
comment
@thesmart К сожалению, нет, я просто реализовал специальную логику для поддержки странного формата.   -  person Daichi    schedule 05.08.2018


Ответы (2)


Они допустили ошибку в реализации value для несложных объектов. Подробнее об этом можно прочитать здесь https://social.msdn.microsoft.com/Forums/lync/en-US/e2200b69-4333-41ea-9f51-717d316c7751/automatic-user-provisioning-scim-restful-patch-payload-issue?forum=WindowsAzureAD

person Adolfo Builes    schedule 16.10.2018