Устранение ошибок авторизации в Microsoft Graph

Ошибки авторизации могут возникать в результате ряда различных неполадок, большая часть которых приводит к возникновению ошибки 403 (за некоторыми исключениями). Например, ошибки авторизации могут возникнуть в результате следующих неполадок:

Действия по устранению распространенных ошибок

Чтобы устранить распространенные ошибки авторизации, попробуйте действия, описанные для ошибки, которая больше всего похожа на вашу. Можно использовать описание для нескольких ошибок. Кроме того, можно ознакомиться с ответами, которые уже доступны в разделе «Вопросы и ответы Майкрософт», для ошибки 401 и ошибки 403. Если вы не можете найти решение проблемы, задайте новый вопрос на microsoft Q&A и пометьте тегом microsoft-graph*.

Ошибка "401 — недостаточно прав": является ли маркер допустимым?

Убедитесь, что приложение выводит допустимый маркер доступа к Microsoft Graph в рамках запроса. Эта ошибка часто означает, что маркер доступа отсутствует в заголовке HTTP-запроса на проверку подлинности, что он недопустим или срок его действия истек. Мы настоятельно рекомендуем использовать Библиотеку проверки подлинности Майкрософт (MSAL) для получения маркеров доступа. Кроме того, эта ошибка может возникать при попытке использовать маркер делегированного доступа, предоставленный личной учетной записи Майкрософт, для доступа к API, который поддерживает только рабочие или учебные учетные записи (учетные записи организации).

Ошибка "403 — запрещено": выбран ли соответствующий набор разрешений?

Убедитесь, что вы запросили правильный набор разрешений на основе API Microsoft Graph, который вызывает приложение. Минимальные разрешения, которые мы рекомендуем, рассматриваются во всех статьях, посвященных методу API Microsoft Graph. Кроме того, эти разрешения должны быть предоставлены приложению пользователем или администратором. Предоставление разрешений обычно происходит через страницу согласия или путем предоставления разрешений с помощью колонки регистрации приложений Центр администрирования Microsoft Entra.

Ошибка "403 — запрещено": получило ли приложение маркер для соответствия выбранным разрешениям?

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

Ошибка "403 — запрещено": сброс пароля

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

Ошибка "403 — запрещено": есть ли доступ у пользователя, и имеет ли он лицензию?

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

Ошибка "403 — запрещено": выбран ли правильный API ресурсов?

Службы API, такие как Microsoft Graph, проверяют, чтобы утверждение aud (audience) в полученном маркере доступа соответствовало ожидаемому значению, в противном случае возникает ошибка 403 Forbidden. Чаще всего эта ошибка возникает при попытке использовать маркер, полученный для API Azure AD Graph, API Outlook или API SharePoint/OneDrive, для вызова Microsoft Graph (или наоборот). Убедитесь, что ресурс (или область), для которого приложение получает маркер, соответствует API, который вызывает приложение.

Ошибка "400 — ошибочный запрос" или "403 — запрещено": выполняет ли пользователь требования политики условного доступа своей организации?

На основании политик условного доступа организации у пользователя, получающего доступ к ресурсам Microsoft Graph через ваше приложение, могут быть запрошены дополнительные сведения, отсутствующие в маркере доступа, который изначально был получен вашим приложением. В этом случае приложение получает сообщение об ошибке 400 с interaction_required при получении маркера доступа или сообщение об ошибке 403 с insufficient_claims при вызове Microsoft Graph. В обоих случаях сообщение об ошибке содержит дополнительные сведения, которые могут быть представлены в конечную точку авторизации, чтобы запросить у пользователя дополнительную информацию (например, многофакторная проверка подлинности или регистрация устройства).

403 Запрещено: доступ к OData отключен

Многие API Microsoft Graph получают доступ к Exchange Online. Эти API подчиняются политикам приложений EWS Exchange Online. Приложения могут получать 403 Forbidden ошибки со следующим текстом ответа.

{
    "error": {
        "code": "ErrorAccessDenied",
        "message": "Access to OData is disabled."
    }
}

Это может быть вызвано политиками доступа EWS вашей организации. Администратор Exchange может проверка это с помощью модуля PowerShell Exchange Online.

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

Get-OrganizationConfig | fl EwsApplicationAccessPolicy,EWS*List

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

Get-CASMailbox <user-principal-name> | fl EwsApplicationAccessPolicy,EWS*List

Если задано значение EwsApplicationAccessPolicy , применяется политика.

  • Если EwsApplicationAccessPolicy задано значение EnforceAllowList, значение приложения User-Agent должно быть добавлено к значению EwsAllowList .
  • Если EwsApplicationAccessPolicy задано значение EnforceBlockList, значение приложения должно быть удалено User-Agent из значения EwsBlockList .

Примечание.

Для внесения изменений в политики приложений EWS требуется время. Приложение может продолжать получать 403 Forbidden ошибки в течение некоторого времени после внесения изменений.