Руководство: проверка конечной точки SCIM

В этом руководстве описывается, как использовать Microsoft Entra SCIM Validator, чтобы проверить, совместим ли ваш сервер подготовки учетных записей с клиентом Azure SCIM. Это руководство предназначено для разработчиков, которые хотят создать сервер, совместимый со SCIM, для управления идентификационными данными с помощью службы подготовки Microsoft Entra.

Примечание.

Используйте Microsoft Entra SCIM Validator, чтобы тестировать ваш конечный узел в процессе его разработки. Это не та проверка, которая требуется для публикации в коллекции приложений Microsoft Entra. Чтобы опубликовать интеграцию подготовки пользователей в коллекцию, запустите шаблон проверки Azure Logic Apps и отправьте результаты. Дополнительные сведения см. в статье "Проверка подготовки пользователей для коллекции приложений Microsoft Entra".

В этом руководстве описано следующее:

  • выбор метода тестирования;
  • Настройка метода тестирования
  • Проверьте конечную точку SCIM

Предварительные требования

выбор метода тестирования;

Первым шагом является выбор метода тестирования для проверки конечной точки SCIM.

  1. Откройте веб-браузер и перейдите по адресу валидатора SCIM: https://scimvalidator.microsoft.com/.

  2. Выберите один из трех вариантов тестирования. Вы можете использовать атрибуты по умолчанию, автоматически обнаружить схему или отправить схему.

    Снимок экрана главной страницы валидатора SCIM.

Использовать атрибуты по умолчанию. Система предоставляет атрибуты по умолчанию и изменяет их в соответствии с вашими требованиями.

Обнаружение схемы . Если конечная точка поддерживает /Schemas, этот параметр позволяет инструменту обнаруживать поддерживаемые атрибуты. Мы рекомендуем использовать этот параметр, так как это снижает затраты на обновление приложения по мере его сборки.

Загрузка схемы Microsoft Entra — Загрузите схему, которую вы скачали из примера приложения в Microsoft Entra ID.

Настройка метода тестирования

Теперь, когда вы выбрали метод тестирования, следующим шагом является его настройка.

Снимок экрана страницы атрибутов валидатора SCIM.

  1. Если вы используете атрибуты по умолчанию, заполните все указанные поля.
  2. Если вы используете обнаружение схемы, введите URL-адрес и маркер конечной точки SCIM.
  3. Если вы отправляете схему, выберите JSON-файл для отправки. Параметр принимает файл .json, экспортируемый из примера приложения в Центре администрирования Microsoft Entra. Чтобы узнать, как экспортировать схему, см. Инструкция: экспорт конфигурации подготовки и возврат к заведомо рабочему состоянию.

Примечание.

Чтобы проверить атрибуты группы, обязательно выберите Включить групповые тесты.

  1. Измените атрибуты списка по желанию для типов пользователей и групп, используя параметр "Добавить атрибут" в конце списка атрибутов и знак минуса (-) в правой части страницы.
  2. Выберите свойство присоединения из списка атрибутов пользователя и группы.

Примечание.

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

Проверьте вашу конечную точку SCIM

Наконец, необходимо протестировать и проверить конечную точку.

  1. Чтобы начать проверку, выберите Проверить схему.

  2. Просмотрите результаты с сводкой пройденных и неудачных тестов.

  3. Перейдите на вкладку Сведения и просмотрите и исправьте проблемы.

  4. Продолжайте тестировать схему, пока не будут пройдены все тесты.

    Снимок экрана: страница результатов проверки SCIM.

Проверка заметок, выполняемых проверятелем SCIM

Создание нового пользователя

  • POST /Users — создает нового пользователя с полными полезными данными JSON.
    • Конечная точка возвращает HTTP 201
    • Ответ POST содержит созданный идентификатор пользователя
  • GET /Users?filter={joinProperty} eq "value" — проверяет создание путем фильтрации по свойству присоединения.
    • Get возвращает созданного пользователя
    • Возвращаемые значения из GET соответствуют переданным значениям из запроса POST (зависит от конечной точки).
  • DELETE /Users — очищает тестового пользователя. -Вызывается только в том случае, если поддерживается жесткое удаление

Создание повторяющегося пользователя

  • POST /Users — попытка создать пользователя с использованием идентичных данных (с тем же уникальным или объединяющим атрибутом), как у существующего пользователя.
    • Возврат HTTP 201 при первом запросе на создание
    • Возврат HTTP 409 во втором запросе на создание

Добавление атрибутов

  • POST /Users — создает ресурс пользователя
    • Успех HTTP 2xxx
  • PATCH /Users/{id} — использует документ исправления JSON (с операцией добавления) для вставки дополнительных не обязательных атрибутов.
  • GET /Users?filter={joiningProperty} eq "value" — извлекает пользователя, чтобы проверить добавленные атрибуты.
    • Пользователь возвращается
    • Вставляемые атрибуты теперь присутствуют в пользователе

Замена атрибутов пользователя

  • POST /Users — создает ресурс пользователя
    • Успех HTTP 2xxx
  • PATCH /Users/{id} — отправляет документ исправления JSON (с помощью операции замены) для обновления одного или нескольких атрибутов.
  • GET /Users?filter={joiningProperty} eq "value" — проверяет правильность применения обновленных атрибутов.
    • Пользователь возвращается
    • Обновленные атрибуты присутствуют в пользователе

Обновление свойства присоединения

  • POST /Users — создает ресурс пользователя
    • Успех HTTP 2xxx
  • PATCH /Users/{id} — обновляет свойство присоединения (например, userName) с помощью документа исправления JSON.
  • GET /Users?filter={joinProperty} eq "newValue" — подтверждает обновление свойства присоединения.
    • Свойство соединения обновляется у пользователя

Обновление активного атрибута до false

  • POST /Users/ — создает ресурс на основе схемы
    • Успех HTTP 2xxx
    • Пользователь с отключенным доступом должен быть возвращен по запросу GET
  • PATCH /Users/{id} — создает документ JSON-патч, который задает для атрибута "active" значение false.
    • Успех HTTP 2xxx
  • GET /Users?filter={joinProperty} eq "value" — извлекает пользователя, чтобы подтвердить, что активный атрибут теперь имеет значение false.
    • Возвращенная запись пользователя должна иметь ACTIVE=FALSE"

Создание новой группы

  • POST /Groups — создает новую группу с полным JSON-пакетом.
    • Конечная точка возвращает HTTP 201
    • Ответ POST содержит созданный идентификатор группы
  • GET /Group?filter={joinProperty} eq "value" — проверяет создание путем фильтрации по свойству присоединения.
    • Get возвращает созданную группу
    • Возвращаемые значения из GET соответствуют переданным значениям из запроса POST (зависит от конечной точки).
  • DELETE /Groups — очищает тестового пользователя.
    • Вызывается только в том случае, если поддерживается жесткое удаление

Создание повторяющихся групп

  • POST /Groups — попытка создать группу, используя одинаковый уникальный атрибут присоединения, который уже используется в существующей группе.
    • Возврат HTTP 201 при первом запросе на создание
    • Возврат HTTP 409 во втором запросе на создание

Обновление атрибутов группы

  • POST /Groups — создает новый ресурс группы, позволяющий обновлять атрибуты
    • POST возвращает HTTP 2xx
  • PATCH /Groups/{id} — отправляет документ исправления JSON с помощью операции замены для обновления одного или нескольких атрибутов существующей группы (за исключением членов).
    • PATCH возвращает успех (HTTP 2xx)
  • GET /Groups?filter={joiningProperty} eq "value" — подтверждает правильность обновления атрибутов группы.
    • GET возвращает исправленную группу
    • Атрибуты группы, которая возвращается, совпадают с измененными атрибутами в запросе PATCH.

Создание ресурса группы

  • POST /Groups — создает новый ресурс группы для добавления участника в
    • POST возвращает HTTP 2xx
  • POST /Users — создает новый ресурс пользователя, который будет использоваться в качестве члена группы.
    • POST возвращает HTTP 2xx
  • PATCH /Groups/{id} — добавляет идентификатор только что созданного пользователя в группу с помощью документа исправления JSON.
    • Исправление возвращает успешное выполнение

Использование выражений в валидаторе SCIM

Проверяющий элемент SCIM поддерживает использование выражений для создания требуемых значений атрибутов.

Использование выражений

  1. Перейдите на страницу "Атрибуты".
  2. Введите нужное выражение в столбце значений атрибута, который требуется настроить.
  3. Запуск теста

Примечание.

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

Доступные выражения

В таблице ниже перечислены доступные выражения

Выражение Значение Пример Результат
сгенерироватьСлучайнуюСтроку {Количество символов в строке} Создание случайной строки с указанным числом символов алфавита {%generateRandomString 6%}@contoso.com CXJHYP@contoso.com
сгенерироватьСлучайноеЧисло {Количество Чисел} Создание случайного числа с указанным числом цифр {%generateRandomNumber 4%} 8821
generateAlphaNumeric {Количество символов} Создание случайной строки с сочетанием алфавитов и чисел с указанным числом символов {%generateAlphaNumeric 7%} 59Q2M9W
сгенерироватьБуквенноЦифровуюСтрокуСоСпециальнымиСимволами {Количество символов} Создание случайной строки с сочетанием алфавитов, чисел и специального символа на основе указанного количества символов {%generateAlphaNumericWithSpecialCharacters 8%}ТЕСТ D385N05'TEST

Вы можете добавить значения до или после выражений, чтобы добиться желаемого результата, например при добавлении {% generateRandomString 6 %}@contoso.com в поле значения атрибута userName, оно создаст новое значение userName с каждым тестом при сохранении домена contoso.com.

Очистка ресурсов

Если при тестировании вы создали ресурсы Azure, которые больше не нужны, не забудьте удалить их.

Известные проблемы с проверятелем SCIM Microsoft Entra

  • Операции мягкого удаления (отключения) пока не поддерживаются.
  • Формат часового пояса создается случайным образом и завершается сбоем для систем, которые пытаются проверить его.
  • Операция удаления атрибутов пользователя в PATCH-запросе может попытаться удалить обязательные атрибуты в некоторых системах. Такие сбои следует игнорировать.

Следующие шаги