階段 2:MSAL 先決條件與設定

Intune App SDK 會針對其驗證和條件式啟動案例使用 Microsoft 驗證程式庫。 它還依賴 MSAL 向 MAM 服務註冊使用者身分識別,以便在沒有裝置註冊案例的情況下進行管理。

注意事項

本指南分為幾個不同的階段。 首先檢閱 階段 1:規劃整合

階段目標

  • 使用 Microsoft Entra ID 註冊您的應用程式。
  • 將 MSAL 整合至您的 iOS 應用程式。
  • 確認您的應用程式可以取得授與受保護資源存取權的權杖。

設定 Microsoft Entra 應用程式註冊

MSAL 需要應用程式向 Microsoft Entra ID 註冊,並建立唯一的用戶端識別碼和重新導向 URI,以確保授與應用程式的權杖安全性。 如果您的應用程式已經使用 MSAL 進行自己的驗證,則應該已經有與應用程式相關聯的 Microsoft Entra 應用程式註冊/用戶端識別碼/重新導向 URI。

如果您的應用程式尚未使用 MSAL,您必須在 Microsoft Entra ID 中設定應用程式註冊,並指定 Intune SDK 應該使用的用戶端識別碼和重新導向 URI。

如果您的應用程式目前使用 ADAL 來驗證使用者,請參閱將應用程式從 ADAL 移轉至 MSAL 的詳細資訊,將 應用程式移轉至 iOS 和 macOS 版 MSAL

建議您的應用程式連結至最新版本的 MSAL

請遵循 安裝 區段,將 MSAL 二進位檔放入您的應用程式中。

設定 MSAL

請遵循 設定 區段來設定 MSAL。 請務必依照組態區段中的所有步驟執行。 如果您的應用程式已在 Microsoft Entra ID 中註冊,請忽略步驟 1。

以下幾點包含設定 MSAL 並連結至它的額外資訊。 如果它們適用於您的申請,請遵循這些內容。

  • 如果您的應用程式未定義任何鑰匙圈存取群組,請將應用程式的套件識別碼新增為第一個群組。
  • 新增到鑰匙圈存取群組,啟用 com.microsoft.adalcache MSAL 單一登入 (SSO) 。
  • 如果您明確設定 MSAL 共用快取鑰匙圈群組,請確定它已設定為 <appidprefix>.com.microsoft.adalcache。 除非您覆寫它,否則 MSAL 會為您設定此設定。 如果您想要指定要取代 com.microsoft.adalcache的自訂鑰匙圈群組,請在 Info.plist 檔案中的 IntuneMAMSettings 下,使用機碼 ADALCacheKeychainGroupOverride

設定 Intune App SDK 的 MSAL 設定

在 Microsoft Entra ID 中為您的應用程式設定應用程式註冊之後,您可以設定 Intune App SDK,在針對 Microsoft Entra ID 驗證期間使用應用程式註冊中的設定。 如需填入下列設定的相關資訊,請參閱 Intune App SDK 的設定

  • ADALClientId
  • ADALAuthority
  • ADALRedirectUri
  • ADALRedirectScheme
  • ADALCacheKeychainGroupOverride

需要下列設定:

  1. 在專案的 Info.plist 檔案中,在具有機碼名稱ADALClientIdIntuneMAMSettings 字典底下,指定要用於 MSAL 呼叫的用戶端識別碼。

  2. 如果對應至步驟 1 中設定之用戶端識別碼的 Microsoft Entra 應用程式註冊已設定為僅在單一 Microsoft Entra 租用戶中使用,請在應用程式的 Info.plist 檔案內,在 IntuneMAMSettings 字典下設定ADALAuthority金鑰。 指定 MSAL 要用來取得 Intune 行動應用程式管理服務權杖的 Microsoft Entra 授權單位。

  3. 同樣在具有機碼名稱ADALRedirectUriIntuneMAMSettings 字典下,指定要用於 MSAL 呼叫的重新導向 URI。 或者,如果應用程式的重新導向 URI 採用格式 scheme://bundle_id,您可以改為指定ADALRedirectScheme

    或者,應用程式可以在執行階段覆寫這些 Microsoft Entra 設定。 若要這麼做,只要在類別上IntuneMAMSettings設定 aadAuthorityUriOverrideaadClientIdOverrideaadRedirectUriOverride屬性即可。

  4. 請確保已遵循步驟,將 iOS 應用程式權限授予 Intune 行動裝置應用程式管理 (MAM) 服務。 使用 Intune SDK 入門指南中的指示,在 授與應用程式 Intune Mobile App 管理服務的存取權下。

    注意事項

    如果應用程式防護原則與受管理裝置相關,則還需要建立整合 Intune 之應用程式的應用程式組態設定檔。

    建議針對所有靜態且不需要在執行階段判斷的設定使用 Info.plist 方法。 在執行階段指派給 IntuneMAMSettings 類別屬性的值優先於 Info.plist 中指定的任何對應值,而且即使應用程式重新啟動後,系統仍會保留。 SDK 會繼續使用它們進行原則簽入,直到取消使用者註冊或清除或變更值為止。

使用 MSAL 進行應用程式啟動驗證時的特殊考量

建議應用程式不要使用 SFSafariViewController、SFAuththenticationSession 或 ASWebAuthenticationSession,作為其 Web 檢視,用於任何應用程式啟動的 MSAL 互動式驗證作業。 根據預設,MSAL 會使用 ASWebAuthenticationSession,因此應用程式開發人員應該 明確地將 Web 檢視類型設定 為 WKWebView。 如果由於某種原因,您的應用程式必須使用 WKWebView 以外的 Web 檢視類型來執行任何互動式 MSAL 驗證作業,則它也必須設定 SafariViewControllerBlockedOverridetrue 應用程式 Info.plist 中的字典底下 IntuneMAMSettings

警告

這會關閉 Intune 的 SafariViewController 勾點,以啟用驗證工作階段。 如果應用程式使用 SafariViewController 來檢視公司資料,這確實有資料在應用程式其他位置洩漏的風險,因此應用程式不應以任何這些 Web 檢視類型顯示公司資料。

結束準則

  • 您是否已在 Microsoft Entra 應用程式註冊頁面上註冊您的應用程式?
  • 您是否已將 MSAL 整合至您的應用程式?
  • 您是否已產生重新導向 URI 並在 MSAL 設定檔中設定,以啟用代理人驗證?
  • 您是否確認 IntuneMAMSettings 字典中 MSAL 的必要設定資訊與 Microsoft Entra 應用程式註冊中的設定資訊相符?

常見問題集

ADAL 呢?

Microsoft 先前的驗證程式庫 Azure Active Directory 驗證程式庫 (ADAL) 棄用

如果您的應用程式已整合 ADAL,請參閱 更新您的應用程式以使用Microsoft驗證程式庫 (MSAL) 。 若要將您的應用程式從 ADAL 移轉至 MSAL,請參閱 將應用程式移轉至適用於 iOS 和 macOS 的 MSAL

建議在整合 Intune App SDK 之前,先從 ADAL 移轉至 MSAL。

後續步驟

完成上述所有結束準則之後,請繼續進行階段 3:將 Intune SDK 整合到 iOS 應用程式。