Как решить проблему “AADSTS90099: Приложение не было авторизовано в арендаторах”?

Вопрос или проблема

Я работаю в многопользовательской среде, где у нас есть учетная запись администратора в одном клиенте (клиенте-партнере), и мы используем эту учетную запись для работы в других клиентах (клиентах-абонентах). У нас есть доступ к клиенту-абоненту через GDAP (ранее DAP).

Когда я пытаюсь использовать инструменты командной строки Microsoft Graph (Connect-MgGraph) для подключения к клиенту-абоненту, я получаю следующее сообщение об ошибке.

AADSTS90099: Приложение ‘{appId}’ ({appName}) не было авторизовано в клиенте ‘{tenant}’. Приложения должны быть авторизованы для доступа к внешнему клиенту, прежде чем администраторы-партнеры смогут их использовать.

Я нашел справку по этому коду ошибки:
https://learn.microsoft.com/en-us/entra/identity-platform/reference-error-codes

В ней говорится, что нужно сделать следующее:

Предоставить предварительное согласие или выполнить соответствующий API Partner Center для авторизации приложения.

Но я не совсем понимаю, как это сделать. Как мы можем авторизовать это приложение для использования?

Ответ или решение

Для решения проблемы "AADSTS90099: Приложение не авторизовано в арендаторах" в условиях многоарендного окружения, вам необходимо выполнить несколько шагов, чтобы предоставить предварительное согласие или авторизовать приложение в клиентском арендаторе. Вот детальный процесс:

Шаг 1: Подготовка информации о приложении

  1. Получите ID приложения (appId): Это уникальный идентификатор вашего приложения, который вы можете найти в вашем Azure Portal.
  2. Убедитесь, что у вас есть доступ к Partner Center: Вам нужен доступ, чтобы выполнять API-запросы для авторизации приложения.

Шаг 2: Предварительное согласие

Арендатор клиента должен предоставить разрешение на использование вашего приложения. Для этого выполните следующие действия:

  1. Перейдите в Azure Active Directory (AAD) в портале Azure клиента.
  2. Выберите "Регистрация приложений" и затем выберите ваше приложение (по appId или имени).
  3. Перейдите на вкладку "API разрешения" и убедитесь, что все необходимые разрешения были добавлены. Если некоторые разрешения требуют администраторского согласия, вам надо будет запросить это согласие от администратора арендатора.

Шаг 3: Использование API Partner Center

Если вам необходимо использовать API для авторизации приложения, выполните следующие запросы:

  1. Получите токен доступа: Используя ваше клиентское приложение, получите токен доступа, который будет использоваться для выполнения дальнейших API-запросов.

  2. Выполните запрос к API: Используйте полученный токен доступа для выполнения запроса к API Partner Center для предварительного согласия:

    POST https://manage.devcenter.microsoft.com/v1.0/my/publisher/applications/{appId}/consent
    Authorization: Bearer {access_token}
    Content-Type: application/json
    
    {
       "consentType": "PreConsent"
    }
  3. Замените {appId} на идентификатор вашего приложения и {access_token} на полученный токен.

Шаг 4: Проверка

После выполнения всех вышеуказанных шагов, вернитесь к команде Connect-MgGraph и попробуйте снова подключиться к клиентскому арендатору. Если все было сделано правильно, проблема должна быть решена.

Примечания

  • Убедитесь, что у вас достаточно прав для выполнения этих действий как в партнерском, так и в клиентском арендаторах.
  • Иногда может потребоваться обратиться к администратору клиента, чтобы они выполнили некоторые из вышеуказанных шагов, так как у них может не быть необходимой разрешительной информации.

Итог

Этот процесс обеспечит авторизацию вашего приложения для работы в многоарендном окружении, позволяя вам использовать команды Microsoft Graph, такие как Connect-MgGraph, без ошибок авторизации.

Оцените материал
Добавить комментарий

Капча загружается...