設定認證管理員:Microsoft Graph API

適用於:所有 API 管理 層

本文將引導您完成在 Azure APIM 中建立 Microsoft Graph API 的受控連線所需的步驟。 此範例會使用授權碼授與類型。

您將學習如何:

  • 建立 Microsoft Entra 應用程式
  • 在 APIM 中建立和設定認證提供者
  • 設定連線
  • 在 APIM 中建立 Microsoft Graph API 並設定原則
  • 在 APIM 中測試 Microsoft Graph API

必要條件

步驟 1:建立 Microsoft Entra 應用程式

為 API 建立 Microsoft Entra 應用程式,並為其提供您要呼叫之要求的適當權限。

  1. 使用在租用戶中具有足夠權限的帳戶登入 Azure 入口網站

  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>,取代您將設定認證提供者的 APIM 服務名稱。

    4. 選取註冊

      在入口網站中建立 Microsoft Entra 應用程式註冊的螢幕快照。

  5. 在左側功能表中,選取 [API 權限],然後選取 [+ 新增權限]在入口網站中新增 API 許可權的螢幕快照。

    1. 選取 [Microsoft Graph],然後選取 [委派的權限]

      注意

      確定已新增類型為已委派User.Read 權限。

    2. 輸入 Team、展開 [Team] 選項,然後選取 [Team.ReadBasic.All]。 選取新增權限
    3. 接下來,選取 [針對預設目錄授與管理員同意]。 權限的狀態會變更為 [已針對預設目錄授與]
  6. 在左側功能表上選取 [概觀]。 在 [概觀] 頁面上,尋找 [應用程式 (用戶端) 識別碼] 值並將其記下供步驟 2 使用。

  7. 在左側功能表中選取 [憑證和祕密],然後選取 [+ 新增用戶端密碼]
    在入口網站中建立應用程式秘密的螢幕快照。

    1. 輸入說明
    2. 為 [到期] 選取選項。
    3. 選取 [新增]。
    4. 離開此頁面之前,請複製用戶端密碼的。 在步驟 2 時即會用到此資訊。

步驟 2:在 APIM 中設定認證提供者

  1. 登入入口網站,並瀏覽至您的 APIM 執行個體。

  2. 在左側功能表上選取 [認證管理員],然後選取 [+ 建立]
    在入口網站中建立 API 認證的螢幕快照。

  3. 在 [建立認證提供者] 頁面上輸入下列設定,然後選取 [建立]

    設定
    認證提供者名稱 您選擇的名稱,例如 MicrosoftEntraID-01
    識別提供者 選取 [Azure Active Directory v1]
    授與類型 選取 [授權碼]
    授權 URL Microsoft Entra 識別提供者的選用項目。 預設值為 https://login.microsoftonline.com
    用戶端識別碼 貼上先前在應用程式註冊所複製的值
    用戶端密碼 貼上先前在應用程式註冊所複製的值
    資源 URL https://graph.microsoft.com
    租用戶識別碼 Microsoft Entra 識別提供者的選用項目。 預設值為 Common
    範圍 Microsoft Entra 識別提供者的選用項目。 從 Microsoft Entra 應用程式的 API 權限自動設定。

步驟 3:設定連線

在 [連線] 索引標籤上,完成與提供者連線的步驟。

注意

設定連線時,APIM 預設會設定存取原則,以允許透過執行個體的系統指派受控識別進行存取。 在此範例中,此存取權已足夠。 您可以視需要新增其他存取原則。

  1. 輸入連線名稱,然後選取 [儲存]
  2. 在 [步驟 2: 登入您的連線] (適用於授權碼授與類型) 底下,選取登入認證提供者的連結。 完成該處授權存取的步驟,然後返回 APIM。
  3. 在 [步驟 3: 判斷誰可以存取此連線 (存取原則)] 底下,會列出受控識別成員。 新增其他成員是選用步驟,視您的案例而定。
  4. 選取 [完成]。

新的連線會出現在連線清單中,並顯示 [已連線] 狀態。 如果您想要為認證提供者建立另一個連線,請完成上述步驟。

提示

您可以隨時使用入口網站來新增、更新或刪除認證提供者的連線。 如需詳細資訊,請參閱設定多個連線

注意

如果您在此步驟之後更新 Microsoft Graph 權限,則必須重複執行步驟 2 和 3。

步驟 4:在 APIM 中建立 Microsoft Graph API 並設定原則

  1. 登入入口網站,並瀏覽至您的 APIM 執行個體。

  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>
    

上述原則定義包含兩個部分:

  • get-authorization-context 原則會參考您稍早建立的認證提供者和連線來擷取授權權杖。
  • set-header 原則會使用擷取的存取權杖來建立 HTTP 標頭。

步驟 5:測試 API

  1. 在 [測試] 索引標籤上,選取您設定的一個作業。

  2. 請選取傳送

    在入口網站中測試圖形 API 的螢幕快照。

    成功的回應會從 Microsoft Graph 傳回使用者資料。