資格情報マネージャーの構成 - Microsoft Graph API

適用対象: すべての API Management レベル

この記事では、Azure API Management 内で Microsoft Graph API へのマネージド接続を作成するために必要な手順について説明します。 この例では、認可コードの付与タイプを使用します。

以下の方法について説明します。

  • Microsoft Entra アプリケーションを作成する
  • API Management で資格情報プロバイダーを作成して構成する
  • 接続の構成
  • API Management での Microsoft Graph API の作成と、ポリシーの構成
  • API Management での Microsoft Graph API のテスト

前提条件

手順 1: Microsoft Entra アプリケーションを作成する

API 用の Microsoft Entra アプリケーションを作成し、呼び出す要求に関する適切なアクセス許可を付与します。

  1. テナント内の十分なアクセス許可を持つアカウントを使用して Azure portal にサインインします。

  2. Azure サービスで、Microsoft Entra ID を検索します。

  3. 左のメニューで [アプリの登録] を選択し、[+ 新規登録] を選択します。

  4. [アプリケーションの登録] ページで、アプリケーションの登録の設定を入力します。

    1. [名前] に、アプリのユーザーに表示されるわかりやすい名前 ("MicrosoftGraphAuth" など) を入力します。

    2. [サポートされているアカウントの種類] で、実際のシナリオに適したオプションを選択します。たとえば、[この組織ディレクトリのみに含まれるアカウント (シングル テナント)] を選択します。

    3. [リダイレクト URI][Web] に設定し、「https://authorization-manager.consent.azure-apim.net/redirect/apim/<YOUR-APIM-SERVICENAME>」と入力します。これにより、資格情報プロバイダーを構成する API Management サービスの名前を置き換えます。

    4. [登録] を選択します。

      ポータルで Microsoft Entra アプリの登録を作成するスクリーンショット。

  5. 左側のメニューで [API のアクセス許可] を選択してから、[+アクセス許可の追加] を選択します。 ポータルでの API アクセス許可の追加を示すスクリーンショット。

    1. [Microsoft Graph] を選択してから、[委任されたアクセス許可] を選択します。

      Note

      種類が [委任済み] のアクセス許可 [User.Read] が既に追加されていることを確認してください。

    2. Team」と入力して [Team](チーム) オプションを展開し、[Team.ReadBasic.All] を選択します。 [アクセス許可の追加] を選択します.
    3. 次に、[既定のディレクトリに管理者の同意を与えます] を選択します。 アクセス許可の状態が、[既定のディレクトリに付与されました] に変わります。
  6. 左側のメニューで [概要] を選択します。 [概要] ページで [アプリケーション (クライアント) ID] の値を見つけ、手順 2 で使用するために記録します。

  7. 左のメニューで [証明書とシークレット] を選択し、[+ 新しいクライアント シークレット] を選択します。
    ポータルでのアプリ シークレットの作成を示すスクリーンショット。

    1. [Description](説明) を入力します。
    2. [有効期限] のオプションを選択します。
    3. [追加] を選択します。
    4. ページから離れる前に、クライアント シークレットのをコピーします。 手順 2 で必要になります。

手順 2: API Management で資格情報プロバイダーを構成する

  1. portal にサインインし、API Management インスタンスに移動します。

  2. 左側のメニューで、[資格情報マネージャー] を選択し、[+ 作成] を選択します。
    ポータルで API 資格情報を作成するスクリーンショット。

  3. [資格情報プロバイダーの作成] ページで次の設定を入力し、[作成] を選択します。

    設定
    資格情報プロバイダー名 任意の名前 (Microsoft Entra ID-01 など)
    ID プロバイダー [Azure Active Directory v1] を選択します
    [付与タイプ] [承認コード] を選択します
    Authorization URL (承認 URL) Microsoft Entra ID プロバイダーの場合は省略可能です。 既定値は https://login.microsoftonline.com です。
    クライアント ID 前にアプリの登録からコピーした値を貼り付けます
    クライアント シークレット 前にアプリの登録からコピーした値を貼り付けます
    リソース URL https://graph.microsoft.com
    テナント ID Microsoft Entra ID プロバイダーの場合は省略可能です。 既定値は Common です。
    スコープ Microsoft Entra ID プロバイダーの場合は省略可能です。 Microsoft Entra アプリの API アクセス許可から自動的に構成されます。

手順 3: 接続を構成する

[接続] タブで、プロバイダーへの接続の手順を完了します。

Note

接続を構成すると、API Management は既定で、インスタンスのシステム割り当てマネージド ID によるアクセスを有効にするアクセス ポリシーを設定します。 この例では、このアクセスで十分です。 必要に応じて、追加のアクセス ポリシーを追加できます。

  1. 接続名を入力し、[保存]を選択します。
  2. 手順 2: 接続にログインする (承認コード許可の種類の場合) で、資格情報プロバイダーにログインするためのリンクを選択します。 アクセスを承認し、API Management に戻る手順を完了します。
  3. 手順 3: この接続 (アクセス ポリシー) へのアクセス権を持つユーザーを決定で、マネージド ID メンバーが一覧表示されます。 シナリオによっては、他のメンバーの追加は省略可能です。
  4. 完了を選択します。

新しい接続が接続のリストに表示され、[接続済み]の状態が表示されます。 資格情報プロバイダー用に別の接続を作成する場合は、前述の手順を実行します。

ヒント

ポータルを使用して、資格情報プロバイダーへの接続をいつでも追加、更新、または削除できます。 詳細については、「複数の接続を構成する」を参照してください。

Note

この手順の後に Microsoft Graph のアクセス許可を更新する場合は、手順 2 と 3 を繰り返す必要があります。

手順 4: API Management で Microsoft Graph API を作成し、ポリシーを構成する

  1. ポータルにサインインし、API Management インスタンスに移動します。

  2. 左側のメニューで、[API] > [+ API の追加] を選択します。

  3. [HTTP] を選択し、以下の設定値を入力します。 [作成] を選択します。

    設定
    表示名 msgraph
    [Web サービスの URL] https://graph.microsoft.com/v1.0
    API URL サフィックス msgraph
  4. 新しく作成した API に移動し、[操作の追加] を選択します。 以下の設定値を入力し、[保存] を選択します。

    設定
    表示名 getprofile
    GET の URL /me
  5. 前の手順に従って、次の設定で別の操作を追加します。

    設定
    表示名 getJoinedTeams
    GET の URL /me/joinedTeams
  6. [すべての操作] を選択します。 [受信処理] セクションで、(</>) (コード エディター) アイコンを選択します。

  7. 次のスニペットをコピーして貼り付けます。 前の手順で構成した資格情報プロバイダーと接続の名前で get-authorization-context ポリシーを更新し、[保存] を選択します。

    • 資格情報プロバイダー名を provider-id の値に置き換える
    • 接続名を authorization-id の値に置き換える
    <policies>
        <inbound>
            <base />
            <get-authorization-context provider-id="MicrosoftEntraID-01" authorization-id="first-connection" context-variable-name="auth-context" identity-type="managed" ignore-error="false" />
           <set-header name="Authorization" exists-action="override">
               <value>@("Bearer " + ((Authorization)context.Variables.GetValueOrDefault("auth-context"))?.AccessToken)</value>
           </set-header>
        </inbound>
        <backend>
            <base />
        </backend>
        <outbound>
            <base />
        </outbound>
        <on-error>
            <base />
        </on-error>
    </policies>
    

上記のポリシー定義は、次の 2 つの部分で構成されています。

  • get-authorization-context ポリシーは、以前作成した資格情報プロバイダーと接続を参照して、承認トークンをフェッチします。
  • set-header ポリシーは、フェッチされたアクセス トークンを使用して HTTP ヘッダーを作成します。

手順 5: API をテストする

  1. [テスト] タブで、構成した操作を 1 つ選択します。

  2. [Send] を選択します。

    ポータルでの Graph API のテストを示すスクリーンショット。

    応答が成功すると、Microsoft Graph からユーザー データが返されます。