分享方式:


使用原生驗證在範例 iOS (Swift) 行動應用程式中登入使用者

本指南示範如何執行示範使用 Microsoft Entra 外部 ID 來註冊、登入、登出和重設密碼案例的 iOS 範例應用程式。

在本文中,您將學會如何:

  • 在外部租用戶中註冊應用程式。
  • 啟用公用用戶端和原生驗證流程。
  • 在外部租用戶中建立使用者流程。
  • 將您的應用程式與使用者流程產生關聯。
  • 更新範例原生 iOS 行動應用程式,以使用您自己的外部租用戶詳細資料。
  • 執行和測試範例原生 iOS 行動應用程式。

必要條件

註冊應用程式

若要讓應用程式能夠使用 Microsoft Entra 登入使用者,Microsoft Entra 外部 ID 必須能辨識您建立的應用程式。 應用程式註冊會在應用程式與 Microsoft Entra 之間建立信任關係。 註冊應用程式時,外部 ID 會產生稱為應用程式 (用戶端) 識別碼的唯一識別碼,該值可在建立驗證要求時用來識別您的應用程式。

下列步驟示範如何在 Microsoft Entra 系統管理中心註冊您的應用程式:

  1. 以至少應用程式開發人員的身分登入 Microsoft Entra 系統管理中心

  2. 如果您有多個租用戶的存取權,請使用頂端功能表中的 [設定] 圖示 ,從 [目錄 + 訂用帳戶] 功能表切換至您的外部租用戶。

  3. 瀏覽至 [身分識別]> [應用程式]> [應用程式註冊]

  4. 選取 + 新增註冊

  5. 在出現的 [註冊應用程式] 頁面中;

    1. 輸入向應用程式使用者顯示的有意義應用程式名稱,例如 ciam-client-app
    2. 在 [支援的帳戶類型] 底下,選取 [僅在此組織目錄中的帳戶]
  6. 選取註冊

  7. 應用程式的 [概觀] 窗格會在成功註冊時顯示。 記錄要用於您的應用程式原始程式碼的應用程式 (用戶端) 識別碼

啟用公用用戶端和原生驗證流程

若要指定此應用程式是公用用戶端且可以使用原生驗證,請啟用公用用戶端和原生驗證流程:

  1. 從 [應用程式註冊] 頁面中,選取您要啟用公用用戶端和原生驗證流程的應用程式註冊。
  2. 在 [管理] 底下,選取 [驗證]
  3. 在 [進階設定] 底下,允許公用用戶端流程:
    1. 針對 [啟用下列行動裝置與桌面流程],選取 [是]
    2. 針對 [啟用原生驗證],選取 [是]
  4. 選取 [儲存] 按鈕。
  1. 從 [應用程式註冊] 頁面中,選取您建立的應用程式 (例如 ciam-client-app),以開啟其 [概觀] 頁面。

  2. 「管理」下方選取 [API 權限]。 從 [設定的權限] 清單中,您的應用程式已獲指派 User.Read 權限。 不過,由於租用戶是外部租用戶,因此取用者使用者本身無法同意此權限。 身為系統管理員的您,必須代表租用戶中的所有使用者同意此權限:

    1. 選取 [代表<您的租用戶名稱>授與管理員同意],接著選取 [是]
    2. 選取 [重新整理],然後驗證 [代表<您的租用戶名稱>授與] 出現在這兩個範圍的 [狀態] 下方。

建立使用者流程

請遵循這些步驟來建立使用者流程。

  1. 以至少應用程式開發人員的身分登入 Microsoft Entra 系統管理中心

  2. 如果您有多個租用戶的存取權,請務必使用包含您的外部租用戶的目錄:

    1. 選取工具列中的 [目錄 + 訂用帳戶] 圖示。
    2. 接著,在 [入口網站設定] | [目錄 + 訂用帳戶] 頁面上,於 [目錄名稱] 清單中找出您的外部租用戶目錄,然後選取 [切換]
  3. 在側邊欄功能表上,選取 [身分識別]

  4. 選取 [外部身分識別]> [使用者流程]

  5. 選取 [+ 新增使用者流程]

  6. 在 [建立] 頁面上:

    1. 輸入使用者流程的名稱,例如 SignInSignUpSample

    2. 在 [識別提供者] 清單中,選取 [電子郵件帳戶]。 此識別提供者可讓使用者使用其電子郵件地址來登入或註冊。

    3. 在 [電子郵件帳戶] 下方,您可以選取兩個選項之一。 在本教學課程中,選取 [電子郵件一次性密碼]

      • 電子郵件和密碼:可讓新使用者使用電子郵件地址作為登入名稱,並使用密碼作為其第一個要素認證來註冊和登入。
      • 電子郵件一次性密碼:可讓新使用者使用電子郵件地址作為登入名稱,並使用電子郵件一次性密碼作為其第一個要素認證來註冊和登入。 若要在使用者流程層級使用此選項,請確定您在租用戶層級啟用電子郵件一次性密碼 (OTP) (選取 [所有識別提供者],然後針對 [電子郵件一次性密碼] 選取 [已設定],選取 [是] 選項,然後選取 [儲存])。
    4. 在 [使用者屬性] 下方,您可以選擇要在註冊時向使用者收集的屬性。 針對本指南,選取 [國家/地區] 和 [城市]

  7. 選取 建立。 新的使用者流程會出現在 [使用者流程] 清單中。 如有需要,請重新整理頁面。

將應用程式與使用者流程產生關聯

雖然許多應用程式可以與您的使用者流程相關聯,但單一應用程式只能與一個使用者流程相關聯。 使用者流程允許為特定應用程式設定使用者體驗。 例如,您可以設定使用者流程,要求使用者使用電子郵件地址來登入或註冊。

  1. 在側邊欄功能表上,選取 [身分識別]

  2. 選取 [外部身分識別],然後選取 [使用者流程]

  3. 在 [使用者流程] 頁面中,選取您稍早建立的使用者流程名稱,例如 SignInSignUpSample

  4. 在 [使用] 下方,選取 [應用程式]

  5. 選取新增應用程式

  6. 從清單中選取應用程式,例如 ciam-client-app,或使用搜尋方塊來尋找應用程式並選取。

  7. 選擇選取

複製範例 iOS 行動應用程式

  1. 開啟 [終端機],然後瀏覽至您要保留程式碼的目錄。

  2. 執行下列命令,從 GitHub 複製 iOS 行動應用程式:

    git clone https://github.com/Azure-Samples/ms-identity-ciam-native-auth-ios-sample.git
    
  3. 瀏覽至複製存放庫的目錄:

    cd ms-identity-ciam-native-auth-ios-sample
    

設定範例 iOS 行動應用程式

  1. 在 Xcode 中,開啟 NativeAuthSampleApp.xcodeproj 專案。

  2. 開啟 NativeAuthSampleApp/Configuration.swift 檔案。

  3. 尋找預留位置:

    • Enter_the_Application_Id_Here 並將它取代為您稍早註冊的應用程式所使用的應用程式 (用戶端) 識別碼
    • Enter_the_Tenant_Subdomain_Here 並將它取代為目錄 (租用戶) 子網域。 例如,如果您的租用戶主要網域是 contoso.onmicrosoft.com,請使用 contoso。 如果您不知道租用戶子網域,請了解如何讀取租用戶詳細資料

注意

請記得選取要建置的配置,以及要在其中執行所建置產品的目的地。 每個配置都包含代表可用目的地的實際或模擬裝置清單。

執行和測試範例 iOS 行動應用程式

若要建置和執行您的程式碼,請從 Xcode 中的 [產品] 功能表選取 [執行]。 成功建置之後,Xcode 會在模擬器中啟動範例應用程式。

提示使用者在 iOS 應用程式中輸入電子郵件的螢幕擷取畫面。

本指南會測試電子郵件一次性密碼使用量。 輸入有效的電子郵件地址,選取 [註冊],然後啟動提交代碼畫面:

提示使用者在 iOS 應用程式中輸入一次性密碼 (OTP) 的螢幕擷取畫面。

在上一個畫面上輸入您的電子郵件地址之後,應用程式會傳送驗證碼給它。 提交收到的代碼之後,應用程式會將您帶回上一個畫面,並自動將您登入。

此範例支援的其他案例

範例應用程式支援下列流程:

  • [電子郵件 + 密碼] 涵蓋使用電子郵件和密碼的登入或註冊流程。
  • [電子郵件 + 密碼註冊搭配使用者屬性] 涵蓋使用電子郵件和密碼註冊,以及提交使用者屬性。
  • [密碼重設] 涵蓋自助式密碼重設 (SSPR)。
  • [存取受保護的 API] 涵蓋在使用者成功註冊或登入並取得存取權杖之後呼叫受保護的 API。
  • [後援至網頁瀏覽器] 涵蓋當使用者因任何原因無法透過原生驗證完成驗證時,使用瀏覽器型驗證作為後援機制。

測試電子郵件和密碼流程

在本節中,您會測試電子郵件和密碼流程,使用其變體,例如,電子郵件和密碼登入註冊搭配使用者屬性和 SSPR:

  1. 使用建立使用者流程中的步驟來建立新的使用者流程,但這次選取 [電子郵件和密碼] 作為驗證方法。 您必須將 [國家/地區] 和 [城市] 設定為使用者屬性。 或者,您可以修改現有的使用者流程以使用 [電子郵件和密碼] (選取 [外部身分識別]> [使用者流程]> [SignInSignUpSample]> [識別提供者]> [電子郵件和密碼]> [儲存])。

  2. 使用將應用程式與新使用者流程建立關聯中的步驟,將應用程式新增至新使用者流程。

  3. 執行範例應用程式,然後選取省略符號功能表 (...) 以開啟更多選項。

  4. 選取您想要測試的案例,例如 [電子郵件 + 密碼] 或 [電子郵件 + 密碼註冊搭配使用者屬性] 或 [密碼重設],然後遵循提示。 若要測試密碼重設,您必須先註冊使用者,並為租用戶中的所有使用者啟用電子郵件一次性密碼

測試呼叫受保護的 API 流程

使用使用原生驗證在範例 iOS 行動應用程式中呼叫受保護的 Web API 中的步驟,從範例 Android 行動應用程式呼叫受保護的 Web API。

下一步