次の方法で共有


Microsoft Graph Authorization_RequestDeniedエラーのトラブルシューティング

Microsoft Graph API を使用してユーザーを管理すると、次のエラー メッセージが表示されることがあります。

Authorization_RequestDenied. Insufficient privileges to complete the operation.

この記事では、"ユーザーの無効化" シナリオを使用して、Postman を使用して Microsoft Graph API の Authorization_RequestDenied エラーのトラブルシューティングを行う方法について説明します。

Authorization_RequestDenied エラーの原因

このエラーは通常、ユーザーまたはアプリに十分なアクセス許可がないために発生します。 Graph API を呼び出すには、アプリの登録に次のアクセス許可が必要です。

  • 必要なアクセス レベルに適した Microsoft Entra RBAC ロール。 詳細については、「Microsoft Entra 組み込みロール」を参照してください。
  • Microsoft Graph にアクセスするために必要な API アクセス許可。

Postman を使用した Microsoft Graph API のトラブルシューティング

手順 1: Microsoft Entra RBAC ロールをアプリ登録に割り当てる (サービス プリンシパル)

  1. Azure ポータルにログインし、Microsoft Entra ID に移動します。
  2. [ Manage セクションで、[ロールと管理者] 選択
  3. 必要なアクセス レベルに基づいて適切なロールを選択します。 この記事では、アプリがユーザーを管理します。 そのため、 ユーザー管理者 が選択されます。
  4. 割り当ての追加を選択し、アプリの登録を選択して、追加を選択します。

手順 2: アプリのアプリケーション ID、クライアント シークレット、トークン エンドポイントを見つける

  1. Azure ポータルでアプリの登録に移動し、アプリの登録を選択します。

  2. [概要] ページで、[アプリケーション (クライアント) ID] を記録します。

  3. [エンドポイント] を選択します。 この選択は、Postman 構成で使用されるトークン エンドポイントなどの情報を提供します。 この記事では、OAuth 2.0 とトークンベースの認証を Entra ID と共に使用します。 この場合は、 OAuth 2.0 トークン エンドポイント (v2)を記録する必要があります。

    アプリ登録のエンドポイントの確認を示すスクリーンショット。

  4. [ Manage セクションで、certificates & シークレットを選択します。 クライアント シークレットを作成するか、テストに既存のクライアント シークレットを使用します。

    Postman 構成で、シークレット ID ではなくクライアント シークレット値を使用していることを確認します。 クライアント シークレットの値は、作成直後を除いて表示できません。

手順 3: Postman を構成する

  1. Postman で、要求またはコレクションを選択し、 Authorization を選択します。

  2. 認証の種類を OAuth 2.0 に設定します。

  3. [新しいトークンの構成] セクションで、次の構成を指定します。

    • 許可の種類: クライアント資格情報
    • アクセス トークン URL: <OAuth 2.0 トークン エンドポイント>。
    • クライアント ID: <アプリケーション (クライアント) ID>
    • クライアント シークレット: <Client シークレット値>
    • スコープ: https://graph.microsoft.com/.default
    • クライアント認証: 基本認証ヘッダーとして送信

    Postman の構成のスクリーンショット。

  4. 新しいアクセス トークンの取得を選択します。 構成が正しい場合は、Microsoft Graph API 呼び出しの実行に使用されるトークンを受け取る必要があります。

  5. [ Proceed を選択し、 トークンの使用を選択します。

手順 4: Microsoft Graph API のテストとトラブルシューティング

  1. ユーザーを無効にするには、次の PATCH 要求を送信します。 1f953789-0000-0000-0000-6f21508fd4e2 は、Entra ID 内のユーザーのオブジェクト ID です。

    Patch https://graph.microsoft.com/v1.0/users/1f953789-0000-0000-0000-6f21508fd4e2
    
    {
    "accountEnabled": false
    }
    
  2. Authorization_RequestDeniedエラー メッセージが応答で受信されます。

    {
        "error": {
            "code": "Authorization_RequestDenied",
            "message": "Insufficient privileges to complete the operation.",
            "innerError": {
                "date": "2024-12-24T03:25:32",
                "request-id": "096361b2-75be-479b-b421-078610030949",
                "client-request-id": "096361b2-75be-479b-b421-078610030949"
            }
        }
    }
    
  3. Microsoft Graph REST API v1.0 エンドポイント リファレンスの Update ユーザー シナリオを確認します。 Microsoft Graph REST API v1.0 エンドポイント リファレンスの説明に従って、ユーザーを有効または無効にするには、次のアクセス許可が必要です。

    プロパティ タイプ 説明
    accountEnabled ブール型 (Boolean) true アカウントが有効になっている場合。それ以外の場合は false。 このプロパティは、ユーザーの作成時に必要です。
    - User.EnableDisableAccount.All + User.Read.All は、このプロパティを更新するために必要な最小限の権限の組み合わせです。
    - 委任されたシナリオでは、 特権認証管理者 は、テナント内のすべての管理者に対してこのプロパティを更新できる最小特権ロールです。
  4. アプリの登録に必要なアクセス許可があるかどうかを確認します。

    1. Azure portal でアプリの登録を見つけます。

    2. Manage セクションで、API アクセス許可を選択します

    3. 構成されている API アクセス許可を確認します。 この場合、アプリの登録には、問題の根本原因である User.EnableDisableAccount.All アクセス許可がありません。

      API のアクセス許可の確認を示すスクリーンショット。

  5. アクセス許可の追加を選択してUser.EnableDisableAccount.Allをアプリ登録に追加します。

  6. また、アクセス許可 既定のディレクトリに対する管理者の同意 を選択する必要があります。 管理者の同意を付与することを確認するには、[はい] を選択します。

  7. PATCH 要求を送信してユーザーを無効にします。 要求が成功した場合は、 204 No Content 応答を受け取ります。

サードパーティの情報に関する免責事項

この資料に記載されているサードパーティ製品は、マイクロソフトと関連のない他社の製品です。 明示的か黙示的かにかかわらず、これらの製品のパフォーマンスや信頼性についてマイクロソフトはいかなる責任も負わないものとします。

お問い合わせはこちらから

質問がある場合やヘルプが必要な場合は、サポート要求を作成するか、Azure コミュニティ サポートにお問い合わせください。 Azure フィードバック コミュニティに製品フィードバックを送信することもできます。