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