Azure App Service 中行動應用程式的驗證和授權 \(部分機器翻譯\)

本文說明使用App Service 後端開發原生行動應用程式時,驗證和授權的運作方式。 App Service 提供整合式驗證和授權,讓您的行動應用程式可以在不變更 App Service 中的任何程式代碼的情況下登入使用者。 它提供簡單的方法來保護您的應用程式,並使用每個用戶的數據。

警告

本文涵蓋 Azure Mobile Apps 用戶端 SDK 的 v4.2.0。 目前的版本會使用新的驗證機制,而且不支援以相同方式 Azure App 服務 驗證和授權。

如需 App Service 中驗證和授權運作方式的相關信息,請參閱 Azure App 服務 中的驗證和授權。

使用提供者 SDK 進行驗證

在 App Service 中設定所有項目之後,您可以修改行動用戶端以使用 App Service 登入。 這裡有兩種方法:

  • 使用指定識別提供者發佈的 SDK 來建立身分識別,然後取得 App Service 的存取權。
  • 使用單行程式代碼,讓Mobile Apps用戶端 SDK 可以登入使用者。

提示

大部分的應用程式都應該使用提供者 SDK,讓使用者登入時獲得更一致的體驗、使用令牌重新整理支援,以及取得提供者所指定的其他優點。

當您使用提供者 SDK 時,使用者可以登入與應用程式執行所執行之作業系統更緊密整合的體驗。 這個方法也會提供您用戶端上的提供者令牌和一些用戶資訊,這可讓您更輕鬆地取用圖形 API 並自定義用戶體驗。 這個方法稱為「用戶端流程」或「用戶端導向流程」,因為用戶端上的程式代碼登入使用者。

取得提供者令牌之後,必須傳送至 App Service 進行驗證。 Azure App 服務 驗證令牌。 服務接著會為用戶端建立新的令牌。 Mobile Apps 用戶端 SDK 有協助程式方法來管理此交換,並將令牌自動附加至應用程式後端的所有要求。 您也可以保留提供者令牌的參考。

注意

某些平臺,例如 Windows (WPF),只能使用用戶端導向的流程。 其他伺服器和用戶端流程的運作方式同樣良好。 如果平臺僅適用於客戶端導向流程,快速入門指南將會顯示此內容。

如需驗證流程的詳細資訊,請參閱 App Service 驗證流程

沒有提供者 SDK 的驗證

如果您不想設定提供者 SDK,您可以允許 Azure App 服務 為您處理登入。 Azure Mobile Apps 用戶端 SDK 會開啟網頁檢視給您選擇的提供者,並登入使用者。 這個方法稱為「伺服器流程」或「伺服器導向流程」,因為伺服器會管理登入用戶的程式。 用戶端 SDK 永遠不會收到提供者令牌。

從客戶端導向流程提交令牌

使用客戶端導向流程時,請先取得 Azure App 服務 驗證令牌所需的相關信息。 在大部分情況下,令牌會是存取令牌。 如需詳細資訊,請參閱 Azure App 服務 檔

然後,您可以建置適當的 JSON 物件。 例如,如果您使用 MSAL 在 WPF 應用程式中的 .NET 上執行客戶端導向流程,您可以使用下列程式代碼:

var requestBody = new JObject(new JProperty("access_token", authResult.AccessToken));
var userInfo = await mobileClient.login("aad", requestBody);

要求本文必須符合檔中所規定的預期。