適用於:所有 API 管理 層
本文將引導您完成在 Azure API 管理 內建立 Microsoft Graph API 的 受控連線 所需的步驟。 使用 Microsoft Entra 身份提供者來呼叫 Microsoft Graph API。 此範例使用授權碼授予類型。
您將學習如何:
- 建立 Microsoft Entra 應用程式
- 在 API 管理 中建立和設定認證提供者
- 設定連線
- 在 API 管理 中建立 Microsoft Graph API 並設定原則
- 在 API 管理 中測試您的 Microsoft Graph API
先決條件
存取您有權建立應用程式註冊並授與管理員同意應用程式權限的 Microsoft Entra 租用戶。 若要深入瞭解,請參閱 限制誰可以建立應用程式。
如果您想要建立自己的開發者租戶,可以註冊加入Microsoft 365 開發者計劃。
正在運行的 API 管理執行個體。 如果您沒有,請參閱 建立新的 Azure API 管理 實例。
在 API 管理 實例中啟用 系統指派的受控識別 。
步驟 1:建立 Microsoft Entra 應用程式
建立 API 的 Microsoft Entra 應用程式,並為其提供您要呼叫之要求的適當許可權。
使用具有足夠許可權的帳戶登入租戶中的 Azure 入口網站。
搜尋並選取 Microsoft Entra ID。
在側邊欄選單的 管理 選項中,選擇 應用程式註冊,然後選擇 + 新註冊。
在 「註冊申請」中,輸入你的申請註冊設定:
在 [ 名稱] 中,輸入應用程式有意義的名稱,例如 MicrosoftGraphAuth。
在 [支援的帳戶類型] 中,選取適合您案例的選項,例如,僅限此組織目錄中的帳戶 (單一租用戶)。
將 [ 重新導向 URI ] 設定為 Web,然後輸入
https://authorization-manager.consent.azure-apim.net/redirect/apim/<YOUR-APIM-SERVICENAME>,以取代您要設定認證提供者的 API 管理 服務名稱。選取 註冊。
在側邊欄選單中,選擇 管理>API 權限。 確保已經加入了類型為 Delegated 的 User.Read 權限。
選取 + 新增權限。
- 選擇 Microsoft Graph,然後選擇 委派權限。
- 輸入 Team,展開 Team 選項,然後選擇 Team.ReadBasic.All。 選取新增權限。
- 接下來,選取 [授與預設目錄的系統管理員同意]。 權限的狀態會變更為 [已授予預設目錄]。
在側邊欄功能表中,選取概觀。 在 概覽中,找到 應用程式(客戶端)的 ID 值並記錄,供步驟 2 使用。
在側邊欄選單中,選擇 管理>憑證與秘密,然後選擇 + 新客戶端秘密。
- 輸入 描述。
- 選取 Expires 的選項。
- 選取 ,然後新增。
- 在離開頁面之前,複製用戶端密碼的 值 。 您在步驟 2 中需要它。
步驟 2:在 API 管理 中設定認證提供者
移至您的 API 管理實例。
在側邊欄選單的 API ,選擇 憑證管理器,然後選擇 + 建立。
在 建立憑證提供者時,輸入以下設定,然後選擇 建立:
設定 價值觀 認證提供者名稱 您選擇的名稱,例如 MicrosoftEntraID-01 身分識別提供者 選取 [Azure Active Directory v1] 撥款類型 選取 [授權碼] 授權 URL Microsoft Entra 識別提供者的選用項目。 預設值為 https://login.microsoftonline.com。用戶端識別碼 貼上您先前從應用程式註冊複製的值 客戶端密碼 貼上您先前從應用程式註冊複製的值 資源網址 https://graph.microsoft.com租用戶標識碼 Microsoft Entra 識別提供者的選用項目。 預設值為 Common。 範圍 Microsoft Entra 識別提供者的選用項目。 自動從 Microsoft Entra 應用程式的 API 許可權配置。 選取 ,創建。
出現提示時,請檢閱顯示的 OAuth 重新導向 URL,然後選取 [ 是 ] 以確認它符合您在應用程式註冊中輸入的 URL。
步驟 3:設定連線
在 [連線] 索引標籤上,完成連線至提供者的步驟。
備註
當您設定連線時,API 管理 預設會設定 存取原則 ,以啟用執行個體系統指派的受控識別的存取。 此存取權對於此範例來說已經足夠了。 您可以視需要新增更多存取原則。
- 輸入 連線名稱,然後選取 儲存。
- 在 [步驟 2:登入連線 (針對授權碼授與類型)] 下,選取 [登入] 按鈕。 完成與身份驗證提供者授權存取的操作,並返回 API 管理介面。
- 在 [ 步驟 3:判斷誰將有權存取此連線 (存取原則)] 底下,會列出受控識別成員。 新增其他成員是選擇性的,視您的案例而定。
- 選取 [完成]。
新連線會出現在連線清單中,並顯示「 已連線」狀態。 如果您想要為認證提供者建立另一個連線,請完成上述步驟。
小提示
使用入口網站隨時新增、更新或刪除與認證提供者的連線。 如需詳細資訊,請參閱 設定多個連線。
備註
如果您在此步驟之後更新 Microsoft Graph 權限,則需要重複步驟 2 和 3。
步驟 4:在 API 管理 中建立 Microsoft 圖形 API 並設定原則
在側邊欄功能表的 [API] 底下,選取 [API]。
選取 [HTTP ] 並輸入下列設定。 然後選擇 [建立]。
Setting 價值觀 顯示名稱 MSGRAPH Web 服務 URL https://graph.microsoft.com/v1.0API URL 尾碼 MSGRAPH 流覽至新建立的 API,然後選取 [+ 新增作業]。 輸入下列設定,然後選取 [儲存]。
Setting 價值觀 顯示名稱 取得個人資料 GET 的 URL /我 請依照上述步驟,使用下列設定新增另一個作業。
Setting 價值觀 顯示名稱 getJoinedTeams GET 的 URL /我/加入的團隊 選取 所有作業。 在 [傳入處理 ] 區段中,選取 </> (程式碼編輯器) 圖示。
複製並貼上下列程式碼片段。
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>- 請將您的認證提供者名稱替換為
上述原則定義包含兩部分:
- get-authorization-context 程式會參照您先前建立的認證提供者和連線,以取得授權憑證。
- set-header 原則會使用擷取的存取權杖建立 HTTP 標頭。
步驟 5:測試 API
在 [測試 ] 索引標籤上,選取您設定的一個作業。
選擇 傳送。
成功的回應會從 Microsoft Graph 傳回使用者資料。