Microsoft Graph の承認エラーを解決する
承認エラーは、いくつかの異なる問題の結果として発生する可能性があり、そのほとんどは 403 エラー (いくつかの例外はあります) を生成します。 たとえば、次の場合はすべて承認エラーが発生する可能性があります。
- 間違ったアクセス トークンの取得フロー
- 十分に構成されていないアクセス許可スコープ
- 同意がない
- アクセス許可がない
一般的なエラーを解決する手順
一般的な承認エラーを解決するには、発生しているエラーに最も近いエラーについて説明されている手順を試してください。 複数のエラーが適用される場合があります。 Microsoft Q&A で既に使用可能な回答で 401 エラーおよび 403 エラーを確認することもできます。 問題の解決策が見つからない場合は、 Microsoft Q&A に関する新しい質問 をし、 microsoft-graph* でタグを付けます。
401 未承認エラー: トークンは有効ですか?
アプリケーションが要求の一部として、Microsoft Graph への有効なアクセストークンを提示していることを確認します。 このエラーは、多くの場合、HTTP 認証要求ヘッダーにアクセス トークンが存在しないか、トークンが無効であるか、有効期限が切れている可能性があることを意味します。 アクセス トークンの取得には、Microsoft Authentication Library (MSAL) を使用することを強くお勧めします。 さらに、このエラーは、個人の Microsoft アカウントに付与されている代理アクセス トークンを使用して、職場または学校のアカウント (組織のアカウント) のみをサポートする API にアクセスしようとする場合に発生することがあります。
403 Forbidden エラー: 適切なアクセス許可のセットを選択しましたか?
アプリが呼び出す Microsoft Graph API に基づいて、適切なアクセス許可のセットを要求したことを確認します。 推奨される最小特権アクセス許可は、Microsoft Graph API メソッドの参照トピックで提供されいます。 また、これらのアクセス許可は、ユーザーまたは管理者がアプリケーションに付与する必要があります。 通常、アクセス許可の付与は、同意ページまたは Microsoft Entra 管理センター アプリケーション登録ブレードを使用してアクセス許可を付与することによって行われます。
403 Forbidden エラー: アプリは選択されたアクセス許可と一致するトークンを取得しましたか?
要求されたアクセス許可または与えられたアクセス許可の種類が、アプリが取得すアクセス トークンの種類と一致することを確認します。 アプリケーションのアクセス許可を要求して付与しますが、クライアント資格情報フロー トークンの代わりに、委任された対話型コード フロー トークンを使用する可能性があります。また、委任されたアクセス許可を要求して付与しますが、委任されたコード フロー トークンの代わりに、クライアント資格情報フロートークンを使用する可能性があります。
- ユーザーに代わってアクセス権を取得し、アクセス許可を委任する
- Azure AD v2.0 - OAuth 2.0 承認コード フロー
- ユーザー (デーモン サービス) とアプリケーションのアクセス許可なしでアクセス権を取得する
- Azure AD v2.0 - OAuth 2.0 クライアント資格情報フロー
403 Forbidden エラー: パスワードの再設定
現在、ユーザー パスワードの再設定を許可するアプリケーションのアクセス許可デーモンサービス間のアクセス許可はありません。 これらの API は、サインインしている管理者による対話型の委任されたコード フローを使用する場合にのみサポートされます。
403不可: ユーザーにアクセス権があり、ライセンスが付与されていますか?
委任されたコード フローの場合、Microsoft Graph は、アプリに付与されたアクセス許可とサインインしたユーザーが持つアクセス許可に基づいて、要求が許可されているかどうかを評価します。 一般に、このエラーは、アクセスされているデータに対してユーザーにライセンスが付与されていない要求 または を実行するための十分な特権がユーザーにないことを示しています。 必要なアクセス許可またはライセンスを持つユーザーのみが要求を正常に行うことができます。
403 Forbidden: 正しいリソース API を選択しましたか?
Microsoft Graph などの API サービスは、受信したアクセス トークンの および クレーム (オーディエンス) が、それ自体が予期する値と一致することを確認します。一致しない場合は、403 Forbidden
エラーとなります。 このエラーの原因となっている一般的な間違いは、Azure AD Graph API、Outlook API、または SharePoint/OneDrive API で取得したトークンを使用して Microsoft Graph を呼び出すことです (またはその逆)。 アプリがトークンを取得しているリソース (またはスコープ) が、アプリが呼び出している API と一致していることを確認してください。
400 要求が正しくありませんまたは 403 Forbidden: ユーザーは組織の条件付きアクセス (CA) ポリシーに準拠していますか?
組織の CA ポリシーに基づいて、アプリを使用して Microsoft Graph リソースにアクセスするユーザーは、アプリが最初に取得したアクセス トークンに存在しない追加情報を要求される場合があります。 この場合、アプリはアクセス トークンの取得中に interaction_required エラーと共に 400 を受け取り、Microsoft Graph を呼び出すときに insufficient_claims エラーと共に 403 を受け取ります。 どちらの場合も、エラー応答には、承認エンドポイントに提示して、ユーザーに追加情報 (多要素認証やデバイス登録など) を要求できる追加情報が含まれます。
403 禁止: OData へのアクセスが無効になっている
多くの Microsoft Graph API は、Exchange Onlineにアクセスします。 これらの API は、Exchange Onlineの EWS アプリケーション ポリシーの対象となります。 アプリケーションは、次の応答本文でエラーを受け取る 403 Forbidden
可能性があります。
{
"error": {
"code": "ErrorAccessDenied",
"message": "Access to OData is disabled."
}
}
これは、organizationの EWS アクセス ポリシーが原因である可能性があります。 Exchange 管理者は、Exchange Online PowerShell モジュールを使用してこれをチェックできます。
organization全体のポリシーが適用されているかどうかを判断するには、
Get-OrganizationConfig | fl EwsApplicationAccessPolicy,EWS*List
ユーザー固有のポリシーが適用されているかどうかを判断するには、次の手順を実行します。
Get-CASMailbox <user-principal-name> | fl EwsApplicationAccessPolicy,EWS*List
EwsApplicationAccessPolicy が設定されている場合は、ポリシーが適用されます。
- が に
EnforceAllowList
設定されている場合EwsApplicationAccessPolicy
は、アプリケーションのUser-Agent
値を EwsAllowList 値に追加する必要があります。 - が に
EnforceBlockList
設定されている場合EwsApplicationAccessPolicy
は、アプリケーションのUser-Agent
値を EwsBlockList 値から削除する必要があります。
注:
EWS アプリケーション ポリシーの変更は、有効にするのに時間がかかります。 変更を加えた後、しばらくの間、アプリケーションでエラーが発生 403 Forbidden
し続ける可能性があります。
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示