Как программно зарегистрировать приложение в Azure AD с помощью приложения логики? - PullRequest
1 голос
/ 27 июня 2019

Я хотел бы создать поток для регистрации приложения с помощью приложения логики Azure (для автоматизации)

Как я могу автоматически зарегистрировать приложение в Azure AD?Выполнение вызова REST API должно быть простым и понятным, кто-нибудь знает, как сделать POST для регистрации приложения?

Несколько примеров были бы очень полезны.

Ссылка: https://docs.microsoft.com/en-us/previous-versions/azure/ad/graph/api/entity-and-complex-type-reference#application-entity

Любой другой способ, кроме REST API, который поддерживается приложением логики Azure, также приветствуется!

1 Ответ

2 голосов
/ 28 июня 2019

API REST для регистрации приложения Azure AD

Azure AD Graph API является более старым и для большинства операций рекомендуется использовать более новый Microsoft Graph API. Подробнее об этом читайте здесь Microsoft Graph или Azure AD Graph .

Сценарий регистрации приложения, хотя все еще находится в стадии бета-версии для более нового Microsoft Graph API, поэтому он не будет рекомендоваться для производственных приложений. Итак, я показал снимки экрана и подробные шаги с помощью API-интерфейса Azure AD Graph. Позже, когда стабильная версия Microsoft Graph API поддерживает регистрацию приложений, вы можете перейти на использование Microsoft Graph API.

Шаги высокого уровня

  1. Ваше приложение логики должно сначала иметь достаточно разрешений, чтобы иметь возможность зарегистрировать приложение в Azure AD.

    • Включить управляемую идентификацию для приложения логики
    • Назначьте требуемое назначение роли приложения для управляемого идентификатора вашего логического приложения, чтобы иметь возможность вызывать Graph API. (Вам нужно будет найти идентификатор участника службы Graph API, чтобы сначала выполнить этот шаг)
  2. Добавьте HTTP-действие в ваше логическое приложение, которое будет выполнять вызов API графа

    • Позвонить на график API
    • Установите соответствующие заголовки и тело в соответствии с требованиями регистрации вашего приложения
    • Выберите управляемую идентификацию для аутентификации
    • Установите для аудитории значение https://graph.windows.net или https://graph.microsoft.com в соответствии с API, который вы вызываете.

Подробные шаги

  1. Перейдите в приложение логики в Azure Portal> Identity>, теперь включите System Assigned Identity

    enter image description here

  2. Как только Managed Identity включен, вы должны получить идентификатор объекта. Я назову это LogicApp.Identity.ObjectId

    enter image description here

  3. Теперь перейдите на портал Azure> Azure AD> Приложения предприятия> Выберите Приложения Microsoft в раскрывающемся списке для Тип приложения> Отфильтруйте его, используя идентификатор приложения для API-интерфейса Azure AD Graph (00000002-0000-0000-c000-000000000000). В случае, если вы пытаетесь вызвать Microsoft Graph API (поиск 00000003-0000-0000-c000-000000000000)

    Теперь обратите внимание на objectId для субъекта службы. Давайте назовем это Graph.ObjectId

    enter image description here

  4. Запустите команду PowerShell, чтобы создать новое назначение роли приложения.

    New-AzureADServiceAppRoleAssignment -ObjectId LogicApp.Identity.ObjectId -PrincipalId LogicApp.Identity.ObjectId -Id "824c81eb-e3f8-4ee6-8f6d-de7f50d565b7" -ResourceId "Graph.ObjectId"
    

    Если вы столкнулись с ошибкой Authorization_RequestDenied на этом шаге, пожалуйста, посмотрите мою заметку об известной проблеме в конце. Вы должны продолжить, поскольку разрешение все равно будет добавлено.

    Обратите внимание, что я использовал 824c81eb-e3f8-4ee6-8f6d-de7f50d565b7 в качестве назначаемой роли приложения, что соответствует Application.ReadWrite.OwnedBy разрешению приложения для Windows Azure Active Directory, т. Е. Manage apps that this app creates or owns

    enter image description here

    Вы можете выбрать другое разрешение / роль приложения, если хотите изменить эту часть. Если вместо этого вы используете Microsoft Graph API, вы можете найти разрешения здесь - Справочник по разрешениям для Microsoft Graph - например, Application.ReadWrite.All или Application.ReadWrite.OwnedBy

  5. Теперь перейдите в приложение логики и добавьте действие HTTP.

    Обратите внимание на URI, метод, заголовки и тело (я использовал очень простой JSON, но вы можете изменить его в соответствии с вашими требованиями)

    Также обратите внимание, что для параметра Аутентификация установлено значение Managed Identity, а для аудитории - https://graph.windows.net (которое может стать https://graph.microsoft.com, если вместо этого вы вызываете Microsoft Graph API)

    enter image description here

  6. Теперь попробуйте запустить приложение логики, и действие HTTP должно завершиться успешно, зарегистрировав новое приложение Azure AD в соответствии с вашим JSON.

    enter image description here

    В случае возникновения ошибки неверного запроса - проблема, вероятно, связана с входными данными вызова API Graph, такими как URI, заголовок или тело.

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


При запуске сценария PowerShell, описанного в шаге 4 выше, вы можете столкнуться с известной проблемой, когда он выдает код ошибки Authorization_RequestDenied.

Более подробную информацию об этой проблеме я дал здесь в Назначение разрешений Microsoft Graph для идентификатора управляемой службы Azure , и это также доступно в этой проблеме GitHub - Выполнение шага New-AzureAdServiceAppRoleAssignment возвращаетЗапрещенная ошибка .

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...