本教學課程說明如何開始建置 ASP.NET Web API、將它裝載於 Azure Web Apps、啟用 Azure Active Directory 驗證,然後在 PowerApps 中註冊 ASP.NET Web API。 註冊 API 之後,您可以與它連線,然後從您的應用程式呼叫它。

必要條件

建立 ASP.NET Web API 並將它部署至 Azure

  1. 在 Visual Studio 中,按一下 [檔案] > [新增專案] 以建立新的 C# ASP.NET Web 應用程式。

    新的 Web 應用程式

  2. 選取 Web API 範本。 保持 [雲端中的主機] 勾選。 按一下 [變更驗證]。

    新的 Web 專案範本

  3. 選取 [不需要驗證],然後按一下 [確定]。

    不需要驗證

  4. 按一下 [新增 ASP.NET 專案] 對話方塊上的 [確定]。 [設定 Microsoft Azure Web 應用程式] 對話方塊隨即顯示。

    設定 Microsoft Azure Web 應用程式 ]

    選取您的 Azure 帳戶,輸入 Web 應用程式名稱 (或保留預設值),然後選取您的 Azure 訂用帳戶。 選取或建立 App Service 方案 (訂用帳戶的 Web 應用程式集合)。 選取或建立資源群組 (訂用帳戶的 Azure 資源群組)。 選取應該部署 Web 應用程式所在的區域。 如果您的 Web API 有需要,選取或建立 Azure 資料庫伺服器。 最後,按一下 [確定]。

  5. 建置 Web API。

    注意︰如果您還沒有準備好 Web API 的程式碼,請嘗試開始使用 ASP.NET Web API 2 (C#) (英文) 教學課程。

  6. 若要將 Web API 連線至 PowerApps,則需要可描述其作業的 OpenAPI 檔案。 您可以使用線上編輯器撰寫自己的 OpenAPI,但是在本教學課程中,您將使用名為 Swashbuckle 的開放原始碼工具。 在您的 Visual Studio 專案中安裝 Swashbuckle Nuget 套件,方法是按一下 [工具] > [NuGet 套件管理員] > [套件管理員主控台],然後在 [套件管理員主控台] 中輸入命令 Install-Package Swashbuckle

    安裝套件 Swashbuckle

    秘訣:當您在安裝 Swashbuckle 之後執行 Web API 應用程式時,OpenAPI 檔案現在會在 URL http://<your root URL>/swagger/docs/v1 產生。 產生的使用者介面也可以在 http://<your root URL>/swagger 使用。

  7. 當您的 Web API 準備就緒時,請將它發佈到 Azure。 若要從 Visual Studio 發佈,以滑鼠右鍵按一下 [方案總管] 中的 Web 專案,按一下 [發佈...],然後依照 [發佈] 對話方塊中的提示進行。

  8. 藉由瀏覽至 https://<azure-webapp-url>/swagger/docs/v1 來擷取 OpenAPI JSON。 將內容儲存為 JSON 檔案。 根據您的瀏覽器而定,您可能需要複製文字並將其貼到空白文字檔。

    重要:具有重複作業識別碼的 OpenAPI 文件無效。 如果您使用範例 C# 範本,作業識別碼 Values_Get 會重複兩次。 您可以藉由將某個執行個體變更為 Value_Get 然後重新發佈,來修正這個問題。 您也可以從本教學課程下載範例 OpenAPI 檔案。 在使用它之前請務必移除註解 (開頭為 //)。

設定 Azure Active Directory 驗證

您現在會在 Azure 中建立兩個 Azure Active Directory (AAD) 應用程式。 如需如何執行這項作業的範例,請參閱 Azure Resource Manager 教學課程

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

第一個 AAD 應用程式︰保護 Web API

第一個 AAD 應用程式是用來保護 Web API。 將其命名為 webAPI。 遵循上方連結的教學課程步驟 (只有標題為<在 Azure Active Directory 中啟用驗證>的章節),具有下列值︰

  • 登入 URL:https://login.windows.net
  • 回覆 URL:https://<your-root-url>/.auth/login/aad/callback
  • 不需要用戶端金鑰。
  • 不需要委派任何權限。
  • 重要:請記下應用程式識別碼。 您稍後需要它。

第二個 AAD 應用程式︰保護自訂連接器和委派的存取權

第二個 AAD 應用程式是用來保護自訂連接器註冊,並取得第一個應用程式保護的 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 AAD 應用程式。

您現在應該能夠使用 AAD 驗證 Web 應用程式。

將自訂連接器新增至 PowerApps

  1. 修改您的 OpenAPI 檔案以新增用於 Web 應用程式的 securityDefintions 物件和 AAD 驗證。 您的 OpenAPI 檔案區段 (具有 host 屬性) 應該會如下所示:
// File header should be above here...

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

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

  2. 上傳 OpenAPI 檔案之後,精靈會自動偵測您是針對 Web API 使用 AAD 驗證。

  3. 針對自訂連接器設定 AAD 驗證。

    • 用戶端識別碼:webAPI-CustomAPI 的用戶端識別碼
    • 密碼:webAPI-CustomAPI 的用戶端金鑰
    • 登入 URLhttps://login.windows.net
    • ResourceUri:webAPI 的用戶端識別碼
  4. 按一下 [建立],然後建立自訂連接器的連線。

後續步驟

逐步解說 Azure Resource Manager 自訂連接器教學課程