資格情報マネージャーの構成 - 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 のテスト
前提条件
アプリの登録を作成し、アプリのアクセス許可に対する管理者の同意を付与するためのアクセス許可を持つ Microsoft Entra テナントへのアクセス。 詳細情報
独自の開発者テナントを作成する場合は、Microsoft 365 開発者プログラムにサインアップできます。
実行中の API Management インスタンス。 必要に応じて、Azure API Management インスタンスを作成します。
API Management インスタンスで API Management 用のシステム割り当てマネージド ID を有効にします。
手順 1: Microsoft Entra アプリケーションを作成する
API 用の Microsoft Entra アプリケーションを作成し、呼び出す要求に関する適切なアクセス許可を付与します。
テナント内の十分なアクセス許可を持つアカウントを使用して Azure portal にサインインします。
Azure サービスで、Microsoft Entra ID を検索します。
左のメニューで [アプリの登録] を選択し、[+ 新規登録] を選択します。
[アプリケーションの登録] ページで、アプリケーションの登録の設定を入力します。
[名前] に、アプリのユーザーに表示されるわかりやすい名前 ("MicrosoftGraphAuth" など) を入力します。
[サポートされているアカウントの種類] で、実際のシナリオに適したオプションを選択します。たとえば、[この組織ディレクトリのみに含まれるアカウント (シングル テナント)] を選択します。
[リダイレクト URI] を [Web] に設定し、「
https://authorization-manager.consent.azure-apim.net/redirect/apim/<YOUR-APIM-SERVICENAME>
」と入力します。これにより、資格情報プロバイダーを構成する API Management サービスの名前を置き換えます。[登録] を選択します。
左側のメニューで [API のアクセス許可] を選択してから、[+アクセス許可の追加] を選択します。
- [Microsoft Graph] を選択してから、[委任されたアクセス許可] を選択します。
Note
種類が [委任済み] のアクセス許可 [User.Read] が既に追加されていることを確認してください。
- 「Team」と入力して [Team](チーム) オプションを展開し、[Team.ReadBasic.All] を選択します。 [アクセス許可の追加] を選択します.
- 次に、[既定のディレクトリに管理者の同意を与えます] を選択します。 アクセス許可の状態が、[既定のディレクトリに付与されました] に変わります。
- [Microsoft Graph] を選択してから、[委任されたアクセス許可] を選択します。
左側のメニューで [概要] を選択します。 [概要] ページで [アプリケーション (クライアント) ID] の値を見つけ、手順 2 で使用するために記録します。
左のメニューで [証明書とシークレット] を選択し、[+ 新しいクライアント シークレット] を選択します。
- [Description](説明) を入力します。
- [有効期限] のオプションを選択します。
- [追加] を選択します。
- ページから離れる前に、クライアント シークレットの値をコピーします。 手順 2 で必要になります。
手順 2: API Management で資格情報プロバイダーを構成する
portal にサインインし、API Management インスタンスに移動します。
左側のメニューで、[資格情報マネージャー] を選択し、[+ 作成] を選択します。
[資格情報プロバイダーの作成] ページで次の設定を入力し、[作成] を選択します。
設定 値 資格情報プロバイダー名 任意の名前 (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 によるアクセスを有効にするアクセス ポリシーを設定します。 この例では、このアクセスで十分です。 必要に応じて、追加のアクセス ポリシーを追加できます。
- 接続名を入力し、[保存]を選択します。
- 手順 2: 接続にログインする (承認コード許可の種類の場合) で、資格情報プロバイダーにログインするためのリンクを選択します。 アクセスを承認し、API Management に戻る手順を完了します。
- 手順 3: この接続 (アクセス ポリシー) へのアクセス権を持つユーザーを決定で、マネージド ID メンバーが一覧表示されます。 シナリオによっては、他のメンバーの追加は省略可能です。
- 完了を選択します。
新しい接続が接続のリストに表示され、[接続済み]の状態が表示されます。 資格情報プロバイダー用に別の接続を作成する場合は、前述の手順を実行します。
ヒント
ポータルを使用して、資格情報プロバイダーへの接続をいつでも追加、更新、または削除できます。 詳細については、「複数の接続を構成する」を参照してください。
Note
この手順の後に Microsoft Graph のアクセス許可を更新する場合は、手順 2 と 3 を繰り返す必要があります。
手順 4: API Management で Microsoft Graph API を作成し、ポリシーを構成する
ポータルにサインインし、API Management インスタンスに移動します。
左側のメニューで、[API] > [+ API の追加] を選択します。
[HTTP] を選択し、以下の設定値を入力します。 [作成] を選択します。
設定 値 表示名 msgraph [Web サービスの URL] https://graph.microsoft.com/v1.0
API URL サフィックス msgraph 新しく作成した API に移動し、[操作の追加] を選択します。 以下の設定値を入力し、[保存] を選択します。
設定 値 表示名 getprofile GET の URL /me 前の手順に従って、次の設定で別の操作を追加します。
設定 値 表示名 getJoinedTeams GET の URL /me/joinedTeams [すべての操作] を選択します。 [受信処理] セクションで、(</>) (コード エディター) アイコンを選択します。
次のスニペットをコピーして貼り付けます。 前の手順で構成した資格情報プロバイダーと接続の名前で
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 つ選択します。
[Send] を選択します。
応答が成功すると、Microsoft Graph からユーザー データが返されます。
関連するコンテンツ
- Azure API Management での 認証ポリシーと承認ポリシーの詳細について説明します。
- Microsoft Entra ID でのスコープとアクセス許可の詳細を参照してください。