建立 Web API 的自訂連接器

本教學課程會告訴您如何開始建立 ASP.NET Web API、將它託管在 Azure App Service 的Azure Web Apps 功能上、啟用 Microsoft Entra 識別碼驗證,然後在 Power Automate 中註冊 ASP.NET Web API。 註冊 API 之後,您可以與之連線,並從您的流程呼叫它。 您也可以從 Power Apps 或 Azure Logic Apps 註冊及呼叫 API。

先決條件

建立和部署 ASP.NET Web 應用程式至 Azure

在此教學課程中,建立 Visual C# ASP.NET Web 應用程式。

  1. 開啟 Visual Studio,然後選取檔案 > 新專案

    1. 展開已安裝,移至範本 > Visual C# > Web,然後選取 ASP.NET Web 應用程式

    2. 輸入應用程式的專案名稱、位置和解決方案名稱,然後選取確定

    顯示 [新增 Visual C# ASP.NET Web 應用程式] 的螢幕擷取畫面。

  2. 新增 ASP.NET Web 應用程式方塊中,選取 Web API 範本,確定已選取在雲端中託管核取方塊,然後選取變更驗證

    顯示 [新增 ASP.NET Web 應用程式] 對話方塊的螢幕擷取畫面。

  3. 選取不進行驗證,然後選取確定。 您可以稍後設定驗證。

    選取 [不進行驗證]。

  4. 新增 ASP.NET Web應用程式方塊再次顯示時,請選取確定

  5. 建立 App Service 方塊中,查看以下表格中所描述的託管設定,進行想要的變更,然後選取建立

    App Service 方案表示在您的 Azure 訂閱中用於託管應用程式的實體資源集合。 了解 App Service

    建立 App Service。

    設定 建議的值 名描述
    您的 Azure 公司或學校帳戶,或您的個人 Microsoft 帳戶 您的-使用者-帳戶 選取您的使用者客戶。
    Web 應用程式名稱 自訂-web-api-應用程式-名稱或預設名稱 輸入在您的應用程式 URL 中所用的 Web API 應用程式的名稱,例如: http://web-api-應用程式-名稱
    訂閱 Azure-訂閱-名稱 選取您要使用的 Azure 訂用帳戶。
    資源群組 Azure-資源-群組-名稱 選取現有的 Azure 資源群組,或者如果您尚未建立資源群組,請建立資源群組。

    注意:Azure 資源群組會組織您 Azure 訂用帳戶中的 Azure 資源。

    App Service 方案 App-Service-方案-名稱 選取現有的 App Service 方案,或者,如果您還沒有方案,請建立方案。

    如果您建立 App Service 方案,請指定以下項目。

    設定 建議的值 名描述
    Location 部署-區域 選取部署應用程式的區域。
    大小 App-Service-方案-大小 選取您的方案大小,這會決定服務方案的成本與計算資源容量。

    若要設定應用程式所需的任何其他資源,請選取探索其他 Azure 服務

    設定 建議的值 描述
    資源類型 Azure-資源-類型 選取並設定應用程式所需的任何其他資源。
  6. Visual Studio 部署專案之後,請為您的應用程式建立程式碼。

建立描述您 WEB API 的 OpenAPI (Swagger) 檔案

若要將您的 Web API 應用程式連線到 Power Automate、Power Apps 或 Logic Apps,您需要一個描述 API 作業的 OpenAPI (以前稱為 Swagger) 檔案。 您可以使用 Swagger 線上編輯器為您的 API 撰寫自己的 OpenAPI 定義,但本教學課程使用名為 Swashbuckle 的開放原始碼工具。

  1. 如果尚未安裝,請在 Visual Studio 專案中安裝 Swashbuckle Nuget 套件:

    1. 在 Visual Studio 中,選取工具 > NuGet 套件管理員 > 套件管理器主控台

    2. 套件管理器主控台中,如果您尚未在應用程式的專案目錄則請移至那裡 (執行 Set-Location "project-path"),並執行此 PowerShell Cmdlet:

      Install-Package Swashbuckle

      顯示 [使用套件管理器主控台安裝 Swashbuckle] 的螢幕擷取畫面。

    提示

    如果您在安裝 Swashbuckle 之後執行應用程式,Swashbuckle 會在此 URL 處產生 OpenAPI 檔案:

      http://{your-web-api-app-root-URL}/swagger/docs/v1

    Swashbuckle 也會在此 URL 處產生使用者介面:

      http://{your-web-api-app-root-URL}/swagger

  2. 當您準備好時,就可將 Web API 應用程式發佈至 Azure 了。 若要從 Visual Studio 發行,請在方案總管中以滑鼠右鍵按一下 Web 專案,然後選取發佈,然後遵循提示進行。

    重要

    如果 OpenAPI 文件包含重複的作業識別碼會讓,則該文件無效。 範本 C# 範例重複作業識別碼 Values_Get

    如果您使用的是 C# 範本範例,可將一個作業識別碼執行個體變更為 Value_Get,然後將其重新發佈以修正此問題。

  3. 瀏覽至此位置以取得 OpenAPI 文件:

    http://{your-web-api-app-root-URL}/swagger/docs/v1

    您也可以從本教學課程下載範例 OpenAPI 文件。 在您使用文件之前,請務必移除以 // 為開頭的評論。

  4. 將內容儲存為 JSON 檔案。 根據您的瀏覽器,您可能需要複製文字並將其貼到空白文字檔。

設定 Microsoft Entra 識別碼驗證

您現在將在 Azure 中建立兩個 Microsoft Entra 識別碼應用程式。 若要瞭解更多資訊,請移至將應用程式與 Microsoft Entra 識別碼整合

重要

這兩個應用程式必須在相同的目錄中。

第一個 Microsoft Entra 識別碼應用程式︰保護 Web API

第一個 Microsoft Entra 識別碼應用程式是用來保護 Web API。 將它命名為 webAPI。 您可以執行這些步驟並使用下列值,在您的 webAPI 上啟用 Microsoft Entra 識別碼驗證:

  • 登入 URL:https://login.windows.net
  • 回覆 URL:https://<your-root-url>/.auth/login/aad/callback
  • 您不需要用戶端索引鍵。
  • 您不需要委派任何權限。
  • 複製應用程式識別碼,因為您稍後需要它。

第二個 Microsoft Entra 識別碼應用程式︰保護自訂連接器和委派的存取權

第二個 Microsoft Entra 識別碼應用程式是用來保護自訂連接器註冊,並取得第一個應用程式所保護的 Web API 的委派存取權。 將它命名為 webAPI-customAPI

  • 登入 URL:https://login.windows.net
  • 回覆 URL:https://msmanaged-na.consent.azure-apim.net/redirect
  • 新增具有 Web API 委派存取權的權限。
  • 複製應用程式識別碼,因為您稍後需要它。
  • 產生用戶端金鑰並加以複製,因為您稍後需要它。

新增 Azure Web 應用程式的驗證

  1. 登入 Azure 入口網站,然後找到您在第一個區段中部署的 Web 應用程式。

  2. 選取設定,然後選取驗證/授權

  3. 開啟 App Service 驗證,然後選取 Azure Active Directory。 在下一個刀鋒視窗上,選取 快速

  4. 選取選取現有的 AD 應用程式,然後選取您稍早建立的 webAPI Microsoft Entra 識別碼應用程式。

您現在應該可以使用 Microsoft Entra 識別碼來驗證 Web 應用程式。

新增自訂連接器至 Power Automate

  1. 修改您的 OpenAPI 以新增用於 Web 應用程式的 securityDefintions 物件和 Microsoft Entra 識別碼驗證。 具有 host 屬性的 OpenAPI 區段應該如下:
// File header should be above here...

"host": "<your-root-url>",
"schemes": [
    "https"      //Make sure this is https!
],
"securityDefinitions": {
    "Microsoft Entra ID": {
        "type": "oauth2",
        "flow": "accessCode",
        "authorizationUrl": "https://login.windows.net/common/oauth2/authorize",
        "tokenUrl" : "https://login.windows.net/common/oauth2/token",
        "scopes": {}
    }
},

// The rest of the OpenAPI follows...
  1. 瀏覽至 Power Automate,並如在 Power Automate 中使用自訂連接器中所述來新增自訂連接器。

  2. 上傳 OpenAPI 之後,精靈會自動偵測您是否對 Web API 使用 Microsoft Entra 識別碼驗證。

  3. 設定自訂連接器的 Microsoft Entra 識別碼驗證。

  • 用戶端識別碼webAPI-CustomAPI 的用戶端識別碼
  • 密碼webAPI-CustomAPI 的用戶端密碼
  • 登入 URLhttps://login.windows.net
  • ResourceUriwebAPI 的用戶端識別碼
  1. 選取建立,以建立與自訂連接器的連線。

另請參閱

進一步了解 Microsoft Entra 識別碼驗證

提供意見反應

非常感謝您提供有關連接器平台問題,或新功能構想的意見反應。 若要提供意見反應,請移至提交問題或取得連接器說明,然後選取您的意見反應類型。