Microsoft Graph の承認エラーを解決するResolve Microsoft Graph authorization errors

承認エラーは、いくつかの異なる問題の結果として発生する可能性があり、そのほとんどは 403 エラー (いくつかの例外はあります) を生成します。Authorization errors can occur as a result of several different issues, most of which generate a 403 error (with a few exceptions). たとえば、次の場合はすべて承認エラーが発生する可能性があります。For example, the following can all lead to authorization errors:

一般的なエラーを解決する手順Steps to resolve common errors

一般的な承認エラーを解決するには、発生しているエラーに最も近いエラーについて説明されている手順を試してください。To resolve common authorization errors, try the steps described for the error that most closely match the error you're getting. 複数のエラーが適用される場合があります。More than one error might apply. Stack Overflow で既に使用可能な回答で 401 エラーおよび 403 エラーを確認することもできます。You can also check the answers already available on Stack Overflow for 401 errors and 403 errors. 問題の解決策が見つからない場合は、Stack Overflow に関する新しい質問をしmicrosoft-graph でタグ付けしてください。If you can't find a solution to your problem, ask a new question on Stack Overflow and tag with microsoft-graph.

401 未承認エラー: トークンは有効ですか?401 Unauthorized error: Is your token valid?

アプリケーションが要求の一部として、Microsoft Graph への有効なアクセストークンを提示していることを確認します。Make sure that your application is presenting a valid access token to Microsoft Graph as part of the request. このエラーは、多くの場合、HTTP 認証要求ヘッダーにアクセス トークンが存在しないか、トークンが無効であるか、有効期限が切れている可能性があることを意味します。This error often means that the access token may be missing in the HTTP authenticate request header or that the token is invalid or has expired. アクセス トークンの取得には、Microsoft Authentication Library (MSAL) を使用することを強くお勧めします。We strongly recommend that you use the Microsoft Authentication Library (MSAL) for access token acquisition. さらに、このエラーは、個人の Microsoft アカウントに付与されている代理アクセス トークンを使用して、職場または学校のアカウント (組織のアカウント) のみをサポートする API にアクセスしようとする場合に発生することがあります。Additionally this error may occur, if you try to use a delegated access token granted to a personal Microsoft account, to access an API that only supports work or school accounts (organizational accounts).

403 Forbidden エラー: 適切なアクセス許可のセットを選択しましたか?403 Forbidden error: Have you chosen the right set of permissions?

アプリが呼び出す Microsoft Graph API に基づいて、適切なアクセス許可のセットを要求したことを確認します。Verify that you have requested the correct set of permissions based on the Microsoft Graph APIs your app calls. 推奨される最小特権アクセス許可は、Microsoft Graph API メソッドの参照トピックで提供されいます。The least privileged permissions that we recommend are provided in all the Microsoft Graph API method reference topics. また、これらのアクセス許可は、ユーザーまたは管理者がアプリケーションに付与する必要があります。Additionally, those permissions must be granted to the application by a user or an administrator. 通常、アクセス許可の付与は、同意ページを経由するか、Azure Portal アプリケーションの登録ブレードを使用してアクセス許可を付与することによって行われます。Granting permissions normally happens through a consent page or by granting permissions using the Azure Portal application registration blade. アプリケーションの [設定] ブレードで、[必要なアクセス許可] をクリックして、[アクセス許可の付与] をクリックします。From the Settings blade for the application, click Required Permissions, and then click Grant Permissions.

403 Forbidden エラー: アプリは選択されたアクセス許可と一致するトークンを取得しましたか?403 Forbidden error: Did your app acquire a token to match chosen permissions?

要求されたアクセス許可または与えられたアクセス許可の種類が、アプリが取得すアクセス トークンの種類と一致することを確認します。Make sure that the type of permissions requested or granted matches the type of access token that your app acquires. アプリケーションのアクセス許可を要求して付与しますが、クライアント資格情報フロー トークンの代わりに、委任された対話型コード フロー トークンを使用する可能性があります。また、委任されたアクセス許可を要求して付与しますが、委任されたコード フロー トークンの代わりに、クライアント資格情報フロートークンを使用する可能性があります。You might be requesting and granting application permissions but using delegated interactive code flow tokens instead of client credential flow tokens, or requesting and granting delegated permissions but using client credential flow tokens instead of delegated code flow tokens.

403 Forbidden エラー: パスワードの再設定403 Forbidden error: Resetting password

現在、ユーザー パスワードの再設定を許可するアプリケーションのアクセス許可デーモンサービス間のアクセス許可はありません。Currently, there are no application permission daemon service-to-service permissions that allow resetting user passwords. これらの API は、サインインしている管理者による対話型の委任されたコード フローを使用する場合にのみサポートされます。These APIs are only supported using the interactive delegated code flows with a signed-in administrator.

403不可: ユーザーにアクセス権があり、ライセンスが付与されていますか?403 Forbidden: Does the user have access and are they licensed?

委任されたコード フローの場合、Microsoft Graph は、アプリに付与されたアクセス許可とサインインしたユーザーが持つアクセス許可に基づいて、要求が許可されているかどうかを評価します。For delegated code flows, Microsoft Graph evaluates whether the request is allowed based on the permissions granted to the app and the permissions that the signed-in user has. 一般に、このエラーは、アクセスされているデータに対してユーザーにライセンスが付与されていない要求 ** または ** を実行するための十分な特権がユーザーにないことを示しています。Generally, this error indicates that the user is not privileged enough to perform the request or the user is not licensed for the data being accessed. 必要なアクセス許可またはライセンスを持つユーザーのみが要求を正常に行うことができます。Only users with the required permissions or licenses can make the request successfully.

403 Forbidden: 正しいリソース API を選択しましたか?403 Forbidden: Did you select the correct resource API?

Microsoft Graph などの API サービスは、受信したアクセス トークンの * および * クレーム (オーディエンス) が、それ自体が予期する値と一致することを確認します。一致しない場合は、403 Forbidden エラーとなります。API services like Microsoft Graph check that the aud claim (audience) in the received access token matches the value it expects for itself, and if not, it results in a 403 Forbidden error. このエラーの原因となっている一般的な間違いは、Azure AD Graph API、Outlook API、または SharePoint/OneDrive API で取得したトークンを使用して Microsoft Graph を呼び出すことです (またはその逆)。A common mistake that causes in this error is trying to use a token acquired for Azure AD Graph APIs, Outlook APIs, or SharePoint/OneDrive APIs to call Microsoft Graph (or vice versa). アプリがトークンを取得しているリソース (またはスコープ) が、アプリが呼び出している API と一致していることを確認してください。Ensure that the resource (or scope) your app is acquiring a token for matches the API that the app is calling.

400 要求が正しくありませんまたは 403 Forbidden: ユーザーは組織の条件付きアクセス (CA) ポリシーに準拠していますか?400 Bad Request or 403 Forbidden: Does the user comply with their organization's conditional access (CA) policies?

組織の CA ポリシーに基づいて、アプリを使用して Microsoft Graph リソースにアクセスするユーザーは、アプリが最初に取得したアクセス トークンに存在しない追加情報を要求される場合があります。Based on an organization's CA policies, a user accessing Microsoft Graph resources via your app might be challenged for additional information that is not present in the access token your app originally acquired. この場合、アプリはアクセス トークンの取得中に interaction_required エラーと共に 400 を受け取り、Microsoft Graph を呼び出すときに insufficient_claims エラーと共に 403 を受け取ります。In this case, your app receives a 400 with an interaction_required error during access token acquisition or a 403 with insufficient_claims error when calling Microsoft Graph. どちらの場合も、エラー応答には、承認エンドポイントに提示して、ユーザーに追加情報 (多要素認証やデバイス登録など) を要求できる追加情報が含まれます。In both cases, the error response contains additional information that can be presented to the authorize endpoint to challenge the user for additional information (like multi-factor authentication or device enrollment).