Что делает тестовое соединение в приложении Azure AD Enterprise?

Я занимаюсь настройкой Scim API с помощью Azure AD. Что делает это «Тестовое соединение» при настройке корпоративного приложения?

В моем случае конечная точка API, которую я хочу настроить, - это "https://myapi.company.com/api/v2 ", где URL-адреса ресурсов имеют форму" https://myapi.company.com/api/v2/scim/[Resource] ". Я не включаю «scim» в URL-адрес клиента (согласно приложенному изображению), поскольку Azure AD добавляет его по умолчанию при отправке запросов (что в некотором роде немного странно). [AzureAD добавляет / scim / [ресурс], например / scim / Пользователи указанного базового URL-адреса.] [Ссылка] 1.

Когда я пытаюсь (нажимаю «Проверить соединение» или пытаюсь сохранить без тестирования соединения) «https://myapi.company.com/api/v2 "для клиента. Ошибка тестового подключения URL.

Сообщение об ошибке "Вы ввели недопустимые учетные данные". Пожалуйста, подтвердите, что вы используете правильную информацию для административной учетной записи. '. Что для меня не имеет никакого смысла.

В качестве экспериментов, при попытке «https://myapi.company.com/api/v2/scim/ 'успешно.

При попытке "https://myapi.company.com/api/v2" это успешно .

Все 3 URL-адреса выше дают 404 при попытке из Postman или из браузера. Не могу понять, что AzureAD делает с тестовым соединением.

 Что делает Test Connection?


person Dhanuka777    schedule 08.03.2017    source источник
comment
У меня тоже с этим проблемы. Если я оставлю суффикс / scim в URL-адресе, он не будет проверяться. Но если я оставлю / scim в конце, тогда фактическая операция синхронизации завершится неудачно, поскольку кажется, что добавляется еще один / scim и query / scim / scim / Users, что неверно   -  person Brendan    schedule 07.03.2018
comment
После небольшого дополнительного тестирования и настройки Application Insights я обнаружил, что кнопка Test Connection пытается запросить существование группы с помощью метода RetrieveAsync (). Ранее я выбрасывал NotImplementedException () из этого метода (который возвращал ошибку 501). Тестовое соединение интерпретировало это как недопустимые учетные данные. Как только я изменил это, чтобы вернуть null (return Task.FromResult((Resource)null);), он позволил мне продолжить работу без конца / scim 'в URL-адресе.   -  person Brendan    schedule 07.03.2018


Ответы (2)


Тестовое соединение отправляет такой запрос:

GET /Users?filter=userName eq "non-existent user"

и ожидает такого ответа:

HTTP/1.1 200 OK
{
    "schemas": ["urn:ietf:params:scim:api:messages:2.0:ListResponse"],
    "totalResults": 0,
    "Resources": [],
    "startIndex": 1,
    "itemsPerPage": 20
}

https://docs.microsoft.com/en-us/azure/active-directory/app-provisioning/use-scim-to-provision-users-and-groups#get-user-by-query---нулевыерезультаты

person user12999568    schedule 13.04.2020

Когда вы нажмете Test Connection, на Tenant URL (конечную точку SCIM) будет отправлено несколько запросов:

GET /scim/v2/Groups?excludedAttributes=members&filter=displayName+eq+%22AzureAD_Test-d3951745-df3d-40ae-a0a4-cc3099c34c47%22
GET /scim/v2/Users?filter=userName+eq+%22AzureAD_Test-d3951745-df3d-40ae-a0a4-cc3099c34c47%22

фактические запрошенные displayName и userName генерируются случайным образом, поэтому ожидается пустой ListResponse (с кодом состояния 200 OK):

{
    "schemas": ["urn:ietf:params:scim:api:messages:2.0:ListResponse"],
    "totalResults": 0,
    "Resources": [],
    "startIndex": 1,
    "itemsPerPage": 20
}

Это поведение упоминается в docs:

Microsoft Azure AD отправляет запросы на выборку случайного пользователя и группы, чтобы убедиться, что конечная точка и учетные данные действительны. Это также делается как часть потока тестового подключения на портале Azure.

person RubenLaguna    schedule 08.06.2020