Как создать приложение Azure AD с Graph API с использованием портала

На новом портале Azure я могу создать новую регистрацию приложения. Я обнаружил, что это действие состоит из нескольких шагов, которые я хочу достичь с помощью Graph API.

Это опыт портала, который я хочу смоделировать с помощью Graph API:

  1. В колонке регистрации приложений я нажимаю ссылку "Добавить +", чтобы создать тестовое приложение регистрации А.
  2. Я нажимаю на Test App A, и открывается блейд для регистрации этого приложения. В этом блейде значение для управляемого приложения в локальном каталоге представляет собой ссылку с именем Test App A.
  3. Я нажимаю на эту ссылку, и открывается новое корпоративное приложение - PREVIEW blade для Test App A. На этом блейде ссылка "Удалить" включена и активна. На том блейде под MANAGE имеется ссылка Условный доступ.
  4. Я закрываю все блейды и открываю блейд корпоративных приложений. Там в разделе УПРАВЛЕНИЕ я нажимаю на Все приложения.
  5. В приложениях Enterprise - все приложения отображаются в списке "Тестовое приложение A".

Вот что я делаю с Graph API:

  1. Я отправляю запрос POST по https://graph.windows.net/{tenant} /applications?api-version=1.6, чтобы создать тестовое приложение A.
  2. Я нажимаю на Test App A, и открывается блейд для регистрации этого приложения. В этом блейде значение "Управляемое приложение в локальном каталоге" - это текст "Вход в приложение для создания локального экземпляра".
  3. Я отправляю запрос POST по https://graph.windows.net/{tenant) /servicePrincipals?api-version=1.6 для создания субъекта службы. Тело JSON запроса содержит только свойство appId с идентификатором приложения Test App A в качестве значения. Это изменяет значение для управляемого приложения в локальном каталоге на ссылку с именем Test App A.
  4. Я нажимаю на эту ссылку, и открывается новое корпоративное приложение - PREVIEW blade для Test App A. На этом блейде ссылка Удалить отключена и не активна. На этом блейде в разделе MANAGE отсутствует ссылка Условный доступ.
  5. Я закрываю все блейды и открываю блейд корпоративных приложений. Там в разделе УПРАВЛЕНИЕ я нажимаю на Все приложения.
  6. В корпоративных приложениях - все приложения просмотра приложения Тестовое приложение A не указано в списке.

Что мне не хватает? Какие свойства мне еще нужно отправить на шаге 3. Что мне еще нужно сделать?

1 ответ

Решение

При создании принципала службы необходимо указать следующее:

"tags": [
  "WindowsAzureActiveDirectoryIntegratedApp"
]

Или вы можете обновить существующий субъект службы с этим. В противном случае то, что вы сделали, правильно.

Таким образом, создание субъекта службы JSON будет выглядеть так:

{
  "appId": "0e5836bf-ac8d-4b46-9cbb-5b3e8ebcdd37",
  "tags":[
    "WindowsAzureActiveDirectoryIntegratedApp"
  ]
}

Или вы можете сделать PATCH на субъекте службы с помощью:

{
  "tags":[
    "WindowsAzureActiveDirectoryIntegratedApp"
  ]
}

О теге

Кажется, когда вы добавляете этот тег, участник становится видимым в списке "Приложения предприятия" (который действительно является списком участников службы). Условный доступ также включен.

Этот тег существует на всех без исключения субъектах-службах, созданных для приложений через любой из порталов.

Однако существуют также субъекты службы без тега, такие как принципал для API Graph и портал Azure.

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

Интересно, что такие принципалы, как Microsoft Graph API, имеют appId, но не appOwnerTenantId. PublisherName также является нулевым.

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

Другие вопросы по тегам