分享方式:


針對 Apple 裝置上的 Microsoft Enterprise SSO 擴充功能外掛程式進行疑難排解

本文提供系統管理員用來解決部署和使用 Enterprise SSO 外掛程式的問題疑難排解指引。 可以將 Apple SSO 擴充功能部署到 iOS/iPadOS 和 macOS。

組織可以選擇將 SSO 部署到其公司裝置,為終端使用者提供更好的體驗。 在 Apple 平台上,此程式牽涉到透過主要重新整理權杖實作單一登入 (SSO)。 SSO 可減輕最終使用者頻繁接收驗證提示的負擔。

Microsoft已實作以 Apple SSO 架構為基礎建置的外掛程式,可為與 Microsoft Entra ID 整合的應用程式提供代理驗證。 如需詳細資訊,請參閱適用於 Apple 裝置的 Microsoft Enterprise SSO 外掛程式一文 (英文)。

擴充功能類型

Apple 支援兩種屬於其架構的 SSO 擴充功能類型:重新導向認證。 Microsoft Enterprise SSO 外掛程式已實作為重新導向類型,最適合為 Microsoft Entra ID 代理驗證。 下表比較兩種類型的擴充功能。

擴充功能類型 最適合 運作方式 主要差異
重新導向 OpenID Connect、OAUTH2 和 SAML (Microsoft Entra ID) 等新式驗證方法 作業系統會將驗證要求從應用程式攔截到擴功能 MDM 組態設定檔中定義的識別提供者 URL。 重新導向擴充功能接收:URL、標頭和本文。 在要求資料之前要求認證。 在 MDM 組態設定檔中使用 URL。
認證 挑戰和響應驗證類型,例如 Kerberos (內部部署 Active Directory 網域服務) 要求會從應用程式傳送到驗證伺服器 (AD 域控制器)。 認證擴充功能是使用 MDM 組態設定檔中的 HOSTS 進行設定的。 如果驗證伺服器傳回符合設定檔中所列主機的挑戰,作業系統會將挑戰路由傳送至擴充功能。 擴充功能可以選擇處理或拒絕挑戰。 如果已處理,擴充功能會傳回授權標頭以完成要求,而驗證伺服器會傳回對呼叫者的回應。 然後查阅要求资料以进行驗證。 在 MDM 組態設定檔中使用 HOST。

Microsoft 具有下列用戶端作業系統的代理驗證實作:

OS 驗證代理程式
Windows Web 帳戶管理員 (WAM)
iOS/iPadOS Microsoft 驗證器
Android Microsoft Authenticator 或 Microsoft Intune 公司入口網站
macOS Microsoft Intune 公司入口網站 (透過 SSO 擴展功能)

所有 Microsoft 訊息代理應用程式都會使用稱為「主要重新整理權杖」 (PRT) 的密鑰成品,這是 JSON Web 權杖 (JWT),用來取得使用 Microsoft Entra ID 保護的應用程式和 Web 資源的存取權杖。 透過 MDM 部署時,適用於 macOS 或 iOS 的企業 SSO 擴充功能會取得 PRT,類似於 Web 帳戶管理員 (WAM) 在 Windows 裝置上使用的 PRT。 如需詳細資訊,請參閱什麼是主要重新整理權杖?一文 (英文)。

針對模型進行疑難排解

下列流程圖概述一個邏輯流程,以針對 SSO 擴充功能進行疑難排解。 本文的其餘部分會詳細說明此流程圖中所述的步驟。 疑難排解可分成兩個不同的焦點區域:部署應用程式驗證流程

在 macOS 上選擇退出平台 SSO 的步驟

若要退出宣告錯誤啟用的 PSSO,系統管理員應該從裝置移除已啟用 PSSO 的 SSO 擴充功能設定檔,並部署已停用/移除 PSSO 旗標的新 SSO 擴充功能設定檔。

  1. 拿掉已啟用 PSSO 的 SSO 設定檔目標
  2. 起始裝置同步處理,以從裝置移除已啟用 PSSO 的 SSO 配置檔
  3. 以已停用 PSSO 的新 SSO 配置檔為目標的裝置
  4. 起始裝置同步處理以取得裝置上安裝的新配置檔

重要

注意:在 PSSO 註冊完成之後,更新裝置上現有的 SSO 配置檔不會協助停用 PSSO。 只有從裝置完整移除 SSO 配置檔,才會從裝置移除 PSSO 狀態。

內容:

在兩個案例中,使用者將會開始在 macOS 13+ 裝置上看到 PSSO 註冊通知:

  1. 如果裝置已經有支援 PSSO 的 Intune 公司入口網站版本,且系統管理員部署已啟用 PSSO 的新 SSO 擴充原則
  2. 如果使用者已經將目標設為已啟用 PSSO 的 SSO 擴充原則,且更新版本已在裝置上安裝支援 PSSO 的 Intune 公司入口網站版本。

警告

除非已測試並準備好部署 PSSO,否則系統管理員不應將 SSO 擴充原則設為目標使用者,因為這可能會中斷現有使用者及其合規性條件

重要

注意:對於完成 PSSO 註冊的使用者,將會從金鑰鏈中移除舊版 WPJ 註冊。 如果無意中完成了 PSSO 註冊,一旦系統管理員移除具有 PSSO 的 SSO 設定檔並安裝不含 PSSO 的新設定檔,則應該再次完成舊版 WPJ 註冊,讓裝置合規性能夠運作。

部署疑難排解

客戶遇到的大部分問題都源於 SSO 擴充功能設定檔的行動裝置管理 (MDM) 組態不當,或 Apple 裝置無法從 MDM 接收組態設定檔。 本節介紹您可以採取哪些步驟來確保 MDM 設定檔已部署至 Mac 且其設定正確。

部署需求

檢查 macOS 作業系統版本

使用下列步驟來檢查 macOS 裝置上的作業系統 (OS) 版本。 Apple SSO 擴充功能設定檔只會部署到執行 macOS 10.15 (Catalina) 或更新版本之裝置。 您可以從使用者介面終端機檢查 macOS 版本。

使用者介面
  1. 從 macOS 裝置中,選取左上角的 Apple 圖示,然後選取 [關於此 Mac]

  2. 作業系統版本會列在 macOS 旁邊。

終端機
  1. 從 macOS 裝置中,按兩下 [應用程式] 資料夾,然後按兩下 [公用程式] 資料夾。

  2. 按兩下 [終端機] 應用程式。

  3. 當終端機開啟時,在提示字元中輸入 sw_vers,尋找如下所示的結果:

    % sw_vers
    ProductName: macOS
    ProductVersion: 13.0.1
    BuildVersion: 22A400
    

檢查 iOS 作業系統版本

使用下列步驟來檢查 iOS 裝置上的作業系統 (OS) 版本。 Apple SSO 擴充功能設定檔只會部署到執行 iOS 13 或更新版本之裝置。 您可以從 [設定] 應用程式中檢查 iOS 版本。 開啟 [設定] 應用程式:

顯示 iOS 設定應用程式圖示的螢幕擷取畫面。

流覽至 [一般] 和 [關於]。 此畫面會列出裝置的相關信息,包括 iOS 版本號碼:

顯示 [設定] 應用程式中 iOS 版本的螢幕快照。

SSO 擴充功能組態設定檔的 MDM 部署

請與您的 MDM 系統管理員 (或裝置管理小組) 合作,確保擴充功能組態設定檔已部署至 Apple 裝置。 可以從任何支援 macOS 或 iOS 裝置的 MDM 部署擴充功能設定檔。

重要

Apple 要求將裝置註冊到 MDM,才能部署 SSO 擴充功能。

下表根據您要部署擴充功能的作業系統,提供特定的 MDM 安裝指引:

重要

雖然任何 MDM 都支援部署 SSO 擴充功能,但許多組織會藉由評估 MDM 合規性原則來實作裝置型條件式存取原則。 如果使用第三方 MDM,如果您想要使用裝置型條件式存取原則,請確定 MDM 廠商支援 Intune 合作夥伴合規性。 透過 Intune 或支援 Intune 合作夥伴合規性的 MDM 提供者部署 SSO 擴充功能時,擴充功能可以將裝置憑證傳遞至 Microsoft Entra ID,以便能夠完成裝置驗證。

在 macOS 裝置上驗證網路設定

Apple 的 SSO 擴充功能架構以及據此建置的 Microsoft Enterprise SSO 擴充功能要求某些網域免於 TLS 攔截/檢查 (也稱為中斷和檢查 Proxy)。 下列網域不得接受 TLS 檢查:

  • app-site-association.cdn-apple.com
  • app-site-association.networking.apple
檢查 SSO 設定是否因為 TLS 檢查而中斷

您可以從受影響的裝置上的終端機應用程式執行 sysdiagnose,以驗證 TLS 檢查是否會影響您的 SSO 設定:

sudo sysdiagnose -f ~/Desktop/

sysdiagnose 會作為 tar.gz 封存儲存到您的桌面。 擷取封存,然後開啟 system_logs.logarchive 檔案。 這會在主控台應用程式中開啟。 搜尋 com.apple.appsso,將篩選器變更為 SUBSYSTEM

顯示 sysdiagnose 的螢幕擷取畫面。

搜尋表明存在相關網域失敗的事件,特別是與 Microsoft 網域相關的事件,例如 login.microsoftonline.com。 這些事件可能表示 TLS 檢查問題,這會導致 SSO 擴充功能無法正常運作。 即使不支援的 TLS 檢查設定影響了 Apple 網域,Apple 網域也不會出現在 sysdiagnose 記錄中。

驗證 TLS 檢查設定

Apple 提供了一個名為 Mac Evaluation Utility 的 macOS 工具,可用於檢查常見設定問題。 可從 AppleSeed for IT 下載此工具。. 如果您有 AppleSeed for IT 的存取權,請從 [資源] 區域下載 Mac Evaluation Utility。 安裝應用程式之後,請執行評估。 評估完成後,瀏覽至 [HTTPS 攔截] -->[其他內容] --> 並檢查下列兩個專案:

顯示 Mac 評估公用程式的螢幕擷取畫面。

如果這些檢查有警告或錯誤,則裝置上可能會發生 TLS 檢查。 請與您的網路小組協作,為 *.cdn-apple.com 和 *.networking.apple 免除 TLS 檢查。

輸出詳細的 swcd 記錄

Apple 提供稱為 swcutil 的命令列公用程式,可用於監視相關聯網域驗證的進度。 您可以使用下列命令來監視任何相關聯的網域錯誤:

sudo swcutil watch --verbose

在記錄中找出下列專案,並檢查其是否已標示為已核准,或是否有任何錯誤:


    ```
    Entry s = authsrv, a = UBF8T346G9.com.microsoft.CompanyPortalMac, d = login.microsoftonline.com
    ```

清除 macOS TLS 檢查快取

如果您遇到了與網域有關的問題,並且您的裝置上 TLS 檢查工具中包含列入允許清單的網域,則 Apple 相關聯的網域驗證快取可能需要一段時間才會失效。 不幸的是,在所有計算機上重新觸發相關聯網域重新驗證的步驟並不具備最終決定性,但有一些可以嘗試的步驟。

您可以執行下列命令來重設裝置的快取:

pkill -9 swcd
sudo swcutil reset
pkill -9 AppSSOAgent

重設快取之後,重新測試 SSO 擴充功能組態。

有時候此命令還不夠,而且不會完全重設快取。 在這些情況下,您可以嘗試下列各種方法:

  • 移除 Intune 公司入口網站應用程式將將其至垃圾桶,然後重新啟動您的裝置。 重新啟動完成後,您可以嘗試重新安裝公司入口網站應用程式。
  • 重新註冊裝置。

如果上述方法都無法解決您的問題,您的環境中可能有其他情況妨礙了相關網域驗證。 如果發生這種情況,請連絡 Apple 支援以取得進一步的疑難排解。

在 macOS 裝置上驗證 SSO 組態設定檔

假設 MDM 系統管理員已遵循上一節 SSO 擴充功能設定檔的 MDM 部署中的步驟,下一步是確認設定檔是否已成功部署至裝置。

尋找 SSO 擴充功能 MDM 組態設定檔
  1. 從 macOS 裝置中,選取 [系統設定]。

  2. 當 [系統設定] 出現時,請輸入 [設定檔],然後按返回鍵。

  3. 此動作應該會顯示 [設定檔] 面板。

    顯示設定的螢幕擷取畫面。

    螢幕擷取畫面圖說文字 描述
    1 指出裝置位於 MDM 管理之下。
    2 可能有多個設定檔可供選擇。 在此範例中,Microsoft企業 SSO 擴充功能設定檔稱為 Extensible Single Sign On Profile-32f37be3-302e-4549-a3e3-854d300e117a

    注意

    根據使用的 MDM 類型,可能會列出數個設定檔,而且其命名配置是任意的,取決於 MDM 組態。 選取每一個,檢查 [設定] 資料列指出它是 [單一登入擴充功能]。

  4. 按兩下符合 [單一登入擴充功能] 的 [設定] 值的組態設定檔。

    顯示 SSO 擴充功能組態設定檔的螢幕擷取畫面。

    螢幕擷取畫面圖說文字 組態設定檔設定 描述
    1 Signed MDM 提供者的簽署授權單位。
    2 已安裝 顯示擴充功能安裝 (或更新) 時間的日期/時間戳。
    3 設定:單一登入擴充功能 指出此組態設定檔是 Apple SSO 擴充功能類型。
    4 副檔名 標識碼,對應執行 Microsoft Enterprise 擴充功能外掛程式 之應用程式的套件組合標識碼。 如果設定檔安裝在 macOS 裝置上,標識碼必須一律設定為 com.microsoft.CompanyPortalMac.ssoextension,且小組標識碼必須顯示為 [UBF8T346G9]。 如果有任何值不同,則 MDM 無法正確叫用擴充功能。
    5 類型 [Microsoft Enterprise SSO 擴充功能] 必須一律設定為 [重新導向] 擴充功能類型。 如需詳細資訊,請參閱重新導向與認證擴充功能類型
    6 URL 屬於識別提供者 (Microsoft Entra ID) 的登入 URL。 請查看支援的 SDK 清單

    所有 Apple SSO 重新導向擴充功能都必須在元件設定檔中具有下列 MDM 承載元件:

    MDM 承載元件 描述
    擴充功能標識碼 同時包含 macOS 裝置上應用程式的套件組合識別碼和小組識別碼,並執行擴充功能。 注意:Microsoft Enterprise SSO 擴充功能應一律設定為:com.microsoft.CompanyPortalMac.ssoextension (UBF8T346G9),以通知 macOS 作業系統擴充功能用戶端程式代碼是 Intune 公司入口網站應用程式的一部分。
    類型 必須設定為 [重新導向] 以指定 [重新導向擴充功能] 類型。
    URL 身分識別提供者 (Microsoft Entra ID) 的端點 URL,其中作業系統會將驗證要求路由傳送至擴充功能。
    選擇性擴充功能特定組態 可做為組態參數的字典值。 在 Microsoft Enterprise SSO 擴充功能的內容中,這些組態參數稱為功能旗標。 請參閱功能旗標定義

    注意

    您可以在 Apple 裝置的可延伸單一登入 MDM 承載設定一文中參考 Apple SSO 擴充功能設定檔的 MDM 定義,Microsoft 已根據此架構實作我們的擴充功能。 請參閱適用於 Apple 裝置的 Microsoft 企業單一登入外掛程式

  5. 若要確認已安裝 Microsoft Enterprise SSO 擴充功能的正確設定檔,[擴充功能] 欄位應該相符:com.microsoft.CompanyPortalMac.ssoextension (UBF8T346G9)

  6. 請記下組態設定檔中的 [已安裝] 欄位,因為對組態進行變更後,此欄位的設定可能對於疑難排解很有幫助。

如果已驗證正確的組態設定檔,請繼續按照應用程式驗證流程疑難排解一節進行操作。

MDM 應用程式設定檔缺失

如果按照上一節進行操作之後,[設定檔] 欄位中仍未顯示 SSO 擴充功能組態設定檔,可能是 MDM 設定已啟用 [使用者/裝置目標],這實際上會篩選掉使用者或裝置,使其無法接收組態設定檔。 請洽詢 MDM 系統管理員,並收集下一節中找到的主控台記錄。

收集 MDM 特定主控台記錄
  1. 從 macOS 裝置中,按兩下 [應用程式] 資料夾,然後按兩下 [公用程式] 資料夾。

  2. 按兩下 [主控台] 應用程式。

  3. 按一下 [開始] 按鈕以啟用主控台追蹤記錄。

    此螢幕擷取畫面顯示主控台應用程式和正在按下的 [開始] 按鈕。

  4. 讓 MDM 系統管理員嘗試將組態設定檔重新部署至此 macOS 裝置/使用者,並強制同步處理週期。

  5. 搜尋列中輸入 subsystem:com.apple.ManagedClient,然後按下返回鍵。

    顯示主控台應用程式與子系統篩選條件的螢幕擷取畫面。

  6. 游標在搜尋列中顯示時,輸入 message:Extensible

    螢幕擷取畫面:顯示主控台在訊息欄位上進一步篩選。

  7. 您現在應該會看到已篩選在 [Extensible SSO] 組態設定檔活動上的 MDM 主控台記錄。 下列螢幕擷取畫面顯示記錄專案 [已安裝的組態設定檔],其中顯示已安裝組態設定檔。

應用程式驗證流程疑難排解

本節中的指引假設 macOS 裝置有正確部署的組態設定檔。 有關步驟,請參閱在 macOS 裝置上驗證 SSO 組態配置檔

部署了適用於 Apple 裝置的 Microsoft Enterprise SSO 擴充功能之後,每個應用程式類型都支援兩種類型的應用程式驗證流程。 進行故障排除時,請務必了解所使用的應用程式類型。

應用程式類型

應用程式類型 互動式驗證 無訊息驗證 描述 範例
原生 MSAL 應用程式 X X MSAL (Microsoft驗證連結庫) 是專為使用 Microsoft 身分識別平台 (Microsoft Entra ID) 建置應用程式而量身打造的應用程式開發人員架構。
基於 MSAL 1.1 版或更新版本建置的應用程式能夠與 Microsoft Enterprise SSO 擴充功能整合。
如果應用程式是 SSO 擴充功能 (代理人) 知道它會利用擴充功能,而不需要任何進一步的設定,如需詳細資訊,請參閱我們的 MSAL 開發人員範例檔
Microsoft To-Do
非 MSAL 原生/瀏覽器 SSO X 使用 Apple 網路技術或 Webviews 的應用程式可以設定為從 SSO 擴充功能取得共享認證
必須設定功能旗標,以確保允許每個應用程式的套件組合標識元取得共用認證 (PRT)。
Microsoft Word
Safari
Microsoft Edge
Visual Studio

重要

並非所有 Microsoft 第一方原生應用程式都使用 MSAL 架構。 在本文發表時,大部分 Microsoft Office macOS 應用程式仍依賴較舊的 ADAL 連結庫架構,因此依賴瀏覽器 SSO 流程。

如何在 macOS 上尋找應用程式的套件組合識別碼

  1. 從 macOS 裝置中,按兩下 [應用程式] 資料夾,然後按兩下 [公用程式] 資料夾。

  2. 按兩下 [終端機] 應用程式。

  3. 當終端機開啟時,在提示字元中輸入 osascript -e 'id of app "<appname>"'。 請參閱下列一些範例:

    % osascript -e 'id of app "Safari"'
    com.apple.Safari
    
    % osascript -e 'id of app "OneDrive"'
    com.microsoft.OneDrive
    
    % osascript -e 'id of app "Microsoft Edge"'
    com.microsoft.edgemac
    
  4. 既然已收集套件組合標識符,請遵循我們的指引來設定功能旗標,以確保非 MSAL 原生/瀏覽器 SSO 應用程式可以使用 SSO 擴充功能。 注意:對於功能旗標組態,所有套件組合標識碼都區分大小寫

警告

不使用 Apple 網路技術的應用程式 (例如 WKWebview 和 NSURLSession) 將無法從 SSO 擴充功能使用共用認證 (PRT)。 Google ChromeMozilla Firefox 都屬於這個類別。 即使已在 MDM 組態設定檔中設定,結果也會是瀏覽器中的一般驗證提示。

啟動

根據預設,只有 MSAL 應用程式會叫用 SSO 擴充功能,然後擴充功能會從 Microsoft Entra ID 取得共用認證 (PRT)。 不過,Safari 瀏覽器應用程式或其他非 MSAL 應用程式可以設定為取得 PRT。 請參閱允許使用者從不使用 MSAL 的應用程式和 Safari 瀏覽器登入 (英文)。 SSO 擴充功能取得 PRT 之後,它會將認證儲存在使用者登入金鑰鏈中。 接下來,請檢查以確定 PRT 存在於使用者的金鑰鏈中:

檢查 PRT 的金鑰鏈存取

  1. 從 macOS 裝置中,按兩下 [應用程式] 資料夾,然後按兩下 [公用程式] 資料夾。

  2. 按兩下 [金鑰鏈存取] 應用程式。

  3. 在 [預設密鑰鏈] 下,選取 [本機專案] (或選取 iCloud)。

    • 確定已選取 [所有專案]。
    • 在搜尋列中,於右側輸入 primaryrefresh (用於篩選)。

    顯示如何在金鑰鏈存取應用程式中尋找 PRT 的螢幕擷取畫面。

    螢幕擷取畫面圖說文字 金鑰鏈認證元件 描述
    1 所有項目 顯示跨金鑰鏈存取的所有認證類型
    2 金鑰鏈搜尋列 允許依認證進行篩選。 篩選 Microsoft Entra PRT 類型 primaryrefresh
    3 種類 請參閱認證的類型。 Microsoft Entra PRT 認證是 [應用程式密碼] 認證類型
    4 帳戶 顯示 Microsoft Entra 使用者帳戶,其 PRT 的格式為:UserObjectId.TenantId-login.windows.net
    5 其中 顯示認證的全名。 Microsoft Entra PRT 認證是以下列格式開頭:primaryrefreshtoken-29d9ed98-a469-4536-ade2-f981bc1d605 29d9ed98-a469-4536-ade2-f981bc1d605Microsoft Authentication Broker 服務的應用程式標識符,負責處理 PRT 取得要求
    6 修改日期 顯示上次更新認證的時間。 針對 Microsoft Entra PRT 認證,每當認證由互動式登入事件啟動或更新時,就會更新日期/時間戳
    7 Keychain 指出所選認證所在的金鑰鏈。 Microsoft Entra PRT 認證位於「本機專案」或「iCloud」金鑰鏈中。 在 macOS 裝置上啟用 iCloud 時,「本機專案」金鑰鏈會變成「iCloud」金鑰鏈
  4. 如果在 Keychain Access 中找不到 PRT,請根據應用程式類型執行下列動作:

    • 原生 MSAL:檢查應用程式開發人員是否已使用 MSAL 1.1 版或更新版本建置應用程式,是否已讓應用程式能夠感知訊息代理程式。 此外,請參閱部署疑難排解步驟,以排除任何部署問題。
    • 非 MSAL (Safari):檢查以確定功能旗標 browser_sso_interaction_enabled 已設定為 1,而不是 MDM 組態設定檔中的 0

啟動載入 PRT 之後的驗證流程

鑒於 PRT (共用認證) 已經過驗證,再進行更深入的疑難排解,了解每個應用程式類型的高階步驟,以及它與 Microsoft Enterprise SSO 擴充功能外掛程式 (訊息代理程式應用程式) 互動的方式,這些將很有幫助。 下列動畫和描述應該協助 macOS 系統管理員先了解案例,再查看任何記錄資料。

原生 MSAL 應用程式

案例:如果應用程式開發為使用 MSAL 並在 Apple 裝置上執行 (例如:Microsoft 待辦事項用戶端),必須以其 Microsoft Entra 帳戶登入使用者,才能存取 Microsoft Entra 受保護的服務(例如:Microsoft 待辦事項服務)。

GIF 動畫,顯示具有 PRT 之 MSAL 應用程式的驗證流程。

  1. MSAL 開發的應用程式會直接叫用 SSO 擴充功能,並將 PRT 傳送至 Microsoft Entra 權杖端點,以及應用程式要求 Microsoft Entra 受保護資源的權杖
  2. Microsoft Entra ID 會驗證 PRT 認證,並將應用程式特定的權杖傳回 SSO 擴充代理程式
  3. SSO 擴充訊息代理程式接著會將權杖傳遞至 MSAL 用戶端應用程式,然後將它傳送至 Microsoft Entra 受保護的資源
  4. 使用者現在已登入應用程式,且驗證程式已完成
非 MSAL/瀏覽器 SSO

案例:Apple 裝置上的使用者會開啟 Safari 網頁瀏覽器 (或任何支援 Apple 網路堆疊的非 MSAL 原生應用程式),以登入Microsoft Entra 保護的資源 (範例:https://office.com)。

動畫,顯示使用 SSO 擴充功能之非 MSAL 應用程式的高階驗證流程。

  1. 使用非 MSAL 應用程式 (範例:Safari),使用者嘗試登入 Microsoft Entra 整合式應用程式 (範例:office.com),並重新導向以從 Microsoft Entra ID 取得權杖
  2. 只要 MDM 承載設定中允許列出非 MSAL 應用程式,Apple 網路堆疊就會攔截驗證要求,並將要求重新導向至 SSO 擴充代理程式
  3. SSO 擴充功能收到攔截的要求之後,PRT 就會傳送至 Microsoft Entra 權杖端點
  4. Microsoft Entra ID 會驗證 PRT,並將應用程式特定的權杖傳回 SSO 擴充功能
  5. 應用程式特定的權杖會提供給非 MSAL 用戶端應用程式,而用戶端應用程式會傳送權杖來存取受 Microsoft Entra 保護的服務
  6. 使用者現在已完成登入,且驗證程式已完成

取得 SSO 擴充功能記錄

要針對 SSO 擴充功能的各種問題進行疑難排解,其中一個最有用工具是 Apple 裝置中的客戶端記錄。

從公司入口網站應用程式儲存 SSO 擴充功能記錄

  1. 從 macOS 裝置,按兩下 [應用程式 ] 資料夾。

  2. 按兩下 [公司入口網站] 應用程式。

  3. 當公司入口網站載入時,流覽至頂端功能表欄:[說明]->[儲存診斷報告]。 不需要登入應用程式。

    顯示如何瀏覽 [說明] 頂端功能表以儲存診斷報告的螢幕擷取畫面。

  4. 將公司入口網站記錄封存儲存到您選擇的位置 (例如:桌面)。

  5. 開啟 CompanyPortal.zip 封存,並使用任何文本編輯器開啟 SSOExtension.log 檔案。

提示

檢視記錄的便利方式是使用 Visual Studio Code 並安裝 記錄查看器 擴充功能。

使用終端機在 macOS 上追蹤 SSO擴充功能記錄

在疑難排解期間,在即時追蹤 SSOExtension 記錄時重現問題可能很有用:

  1. 從 macOS 裝置中,按兩下 [應用程式] 資料夾,然後按兩下 [公用程式] 資料夾。

  2. 按兩下 [終端機] 應用程式。

  3. 當終端機開啟時,請輸入:

    tail -F ~/Library/Containers/com.microsoft.CompanyPortalMac.ssoextension/Data/Library/Caches/Logs/Microsoft/SSOExtension/*
    

    注意

    尾端加上 /* 表示如果有任何記錄存在,就會追蹤多個記錄

    % tail -F ~/Library/Containers/com.microsoft.CompanyPortalMac.ssoextension/Data/Library/Caches/Logs/Microsoft/SSOExtension/*
    ==> /Users/<username>/Library/Containers/com.microsoft.CompanyPortalMac.ssoextension/Data/Library/Caches/Logs/Microsoft/SSOExtension/SSOExtension 2022-12-25--13-11-52-855.log <==
    2022-12-29 14:49:59:281 | I | TID=783491 MSAL 1.2.4 Mac 13.0.1 [2022-12-29 19:49:59] Handling SSO request, requested operation: 
    2022-12-29 14:49:59:281 | I | TID=783491 MSAL 1.2.4 Mac 13.0.1 [2022-12-29 19:49:59] Ignoring this SSO request...
    2022-12-29 14:49:59:282 | I | TID=783491 MSAL 1.2.4 Mac 13.0.1 [2022-12-29 19:49:59] Finished SSO request.
    2022-12-29 14:49:59:599 | I | Beginning authorization request
    2022-12-29 14:49:59:599 | I | TID=783491 MSAL 1.2.4 Mac 13.0.1 [2022-12-29 19:49:59] Checking for feature flag browser_sso_interaction_enabled, value in config 1, value type __NSCFNumber
    2022-12-29 14:49:59:599 | I | TID=783491 MSAL 1.2.4 Mac 13.0.1 [2022-12-29 19:49:59] Feature flag browser_sso_interaction_enabled is enabled
    2022-12-29 14:49:59:599 | I | TID=783491 MSAL 1.2.4 Mac 13.0.1 [2022-12-29 19:49:59] Checking for feature flag browser_sso_disable_mfa, value in config (null), value type (null)
    2022-12-29 14:49:59:599 | I | TID=783491 MSAL 1.2.4 Mac 13.0.1 [2022-12-29 19:49:59] Checking for feature flag disable_browser_sso_intercept_all, value in config (null), value type (null)
    2022-12-29 14:49:59:600 | I | Request does not need UI
    2022-12-29 14:49:59:600 | I | TID=783491 MSAL 1.2.4 Mac 13.0.1 [2022-12-29 19:49:59] Checking for feature flag admin_debug_mode_enabled, value in config (null), value type (null)
    
  4. 重現問題時,請讓 [終端機] 視窗保持開啟狀態,以觀察尾端 SSOExtension 記錄的輸出。

在 iOS 上匯出 SSO 擴充功能記錄

無法實時檢視 iOS SSO 擴充功能記錄,因為其位於 macOS 上。 iOS SSO 擴充功能記錄可以從 Microsoft Authenticator 應用程式導出,然後從另一部裝置檢閱:

  1. 開啟 Microsoft 驗證器應用程式:

    此螢幕擷取畫面顯示 iOS 上 Microsoft Authenticator 應用程式的圖示。

  2. 按左上方的選單按鈕:

    此螢幕擷取畫面顯示 Microsoft Authenticator 應用程式中功能表按鈕位置。

  3. 選擇 [傳送意見反應] 選項:

    此螢幕擷取畫面顯示 Microsoft Authenticator 應用程式中 [傳送意見反應] 選項的位置。

  4. 選擇 [遇到問題] 選項:

    此螢幕擷取畫面顯示 Microsoft Authenticator 應用程式中發生問題選項位置。

  5. 按 [檢視診斷資料] 選項:

    此螢幕擷取畫面顯示 Microsoft Authenticator 應用程式中檢視診斷資料按鈕。

    提示

    如果您正在使用 Microsoft 支援,在這個階段,您可以按 [傳送] 按鈕來傳送記錄以支援。 這會提供事件標識碼,您可以提供給 Microsoft 支持聯繫人。

  6. 按 [全部複製] 按鈕,將記錄複製到 iOS 裝置的剪貼簿。 然後,您可以儲存其他地方的記錄檔以供檢閱,或透過電子郵件或其他檔案共用方法傳送:

    此螢幕擷取畫面顯示 Microsoft Authenticator 應用程式中 [複製所有記錄] 選項。

了解 SSO 擴充功能記錄

分析 SSO 擴充功能記錄是針對將驗證要求傳送至 Microsoft Entra ID 的應用程式驗證流程進行疑難排解的絕佳方式。 叫用 SSO 擴充代理程式時,會產生一系列記錄活動結果,這些活動稱為「授權要求」。 記錄包含下列實用資訊可用於疑難排解:

  • 功能旗標組態
  • 授權要求類型
    • 原生 MSAL
    • 非 MSAL/瀏覽器 SSO
  • 與 macOS 金鑰鏈互動以進行認證重試/記憶體作業
  • Microsoft Entra 登入事件的相互關聯標識符
    • PRT 擷取
    • 裝置註冊

警告

SSO 擴充功能記錄非常詳細,尤其是在查看金鑰鏈認證作業時。 基於這個理由,最好先了解案例,再查看疑難排解期間的記錄。

記錄檔結構

SSO 擴充功能記錄會細分成資料行。 下列螢幕擷取畫面顯示記錄的資料行明細:

此螢幕擷取畫面顯示 SSO 擴充功能記錄資料行結構。

資料行 資料行名稱 描述
1 本機日期/時間 顯示的本機日期和時間
2 I-資訊
W-警告
E-Error
顯示資訊、警告或錯誤
3 執行緒 ID (TID) 顯示 SSO 擴充功能 Broker 應用程式的執行線程標識碼
4 MSAL 版本號碼 Microsoft Enterprise SSO 擴充功能 Broker 外掛程式是以 MSAL 應用程式的形式建置。 此資料行表示訊息代理程式應用程式正在執行的 MSAL 版本
5 macOS 版本 顯示 macOS 作業系統的版本
6 UTC 日期/時間 顯示的 UTC 日期和時間
7 相互關聯 ID 記錄中必須與 Microsoft Entra ID 或金鑰鏈作業相關的行,以相互關聯標識符擴充 UTC 日期/時間資料行
8 訊息 顯示記錄的詳細傳訊。 檢查此資料行即可找到大部分的疑難排解資訊

功能旗標組態

在 Microsoft Enterprise SSO 擴充功能的 MDM 設定期間,可傳送選擇性的擴充功能特定資料,以指示變更 SSO 擴充功能的行為。 這些組態特定指示稱為「功能旗標」。 功能旗標組態對於非 MSAL/Browser SSO 授權要求類型特別重要,因為套件組合標識符可以判斷是否叫用擴充功能。 請參閱功能旗標檔。 每個授權要求都是從功能旗標組態報告開始。 下列螢幕擷取畫面會逐步解說範例功能旗標組態:

此螢幕擷取畫面顯示Microsoft SSO 擴充功能的範例功能旗標組態。

圖說文字 功能旗標 描述
1 browser_sso_interaction_enabled 非 MSAL 或 Safari 瀏覽器可以啟動 PRT
2 browser_sso_disable_mfa (現已淘汰) 在啟動PRT認證期間,預設需要 MFA。 請注意,此組態會設定為 null,這表示會強制執行預設組態
3 disable_explicit_app_prompt 取代應用程式中的 prompt=login 驗證要求,以減少提示
4 AppPrefixAllowList SSO 擴充代理程式可以攔截和處理任何以 com.micorosoft. 開頭之套件組合標識碼的非 MSAL 應用程式

重要

功能旗標設定為 null 表示其預設組態已就緒。 如需詳細資訊,請參閱功能旗標檔

MSAL 原生應用程式登入流程

下一節將逐步解說如何檢查原生 MSAL 應用程式驗證流程的 SSO 擴充功能記錄。 在此範例中,我們會使用 MSAL macOS/iOS 範例應用程式作為用戶端應用程式,而應用程式會呼叫 Microsoft Graph API 來顯示登入使用者的資訊。

MSAL 原生:互動式流程逐步演練

應該針對成功的互動式登入執行下列動作:

  1. 使用者登入 MSAL macOS 範例應用程式。
  2. 會叫用 Microsoft SSO 擴充代理程式並處理要求。
  3. Microsoft SSO 擴充代理程式會經歷啟動載入程式,以取得已登入使用者的 PRT。
  4. 將 PRT 儲存在金鑰鏈中。
  5. 檢查 Microsoft Entra ID (WPJ) 中的裝置註冊物件是否存在。
  6. 傳回用戶端應用程式的存取權杖,以存取具有 User.Read 範圍的 Microsoft Graph。

重要

下列範例記錄檔代碼段已加上批註標頭 /,這些標頭不會顯示在記錄中。 可用於協助說明正在採取的特定行動。 我們已以這種方式記錄記錄代碼段,以協助複製和貼上作業。 此外,已修剪記錄範例,只顯示疑難排解的意義行。

使用者按兩下 [呼叫 Microsoft Graph API] 按鈕以叫用登入程式。

此螢幕擷取畫面顯示以 [呼叫 Microsoft Graph API] 按鈕啟動之 macOS 的 MSAL 範例應用程式。

//////////////////////////
//get_accounts_operation//
//////////////////////////
Handling SSO request, requested operation: get_accounts_operation
(Default accessor) Get accounts.
(MSIDAccountCredentialCache) retrieving cached credentials using credential query
(Default accessor) Looking for token with aliases (null), tenant (null), clientId 00001111-aaaa-2222-bbbb-3333cccc4444, scopes (null)
(Default accessor) No accounts found in default accessor.
(Default accessor) No accounts found in other accessors.
Completed get accounts SSO request with a personal device mode.
Request complete
Request needs UI
ADB 3.1.40 -[ADBrokerAccountManager allBrokerAccounts:]
ADB 3.1.40 -[ADBrokerAccountManager allMSIDBrokerAccounts:]
(Default accessor) Get accounts.
No existing accounts found, showing webview

/////////
//login//
/////////
Handling SSO request, requested operation: login
Handling interactive SSO request...
Starting SSO broker request with payload: {
    authority = "https://login.microsoftonline.com/common";
    "client_app_name" = MSALMacOS;
    "client_app_version" = "1.0";
    "client_id" = "00001111-aaaa-2222-bbbb-3333cccc4444";
    "client_version" = "1.1.7";
    "correlation_id" = "aaaa0000-bb11-2222-33cc-444444dddddd";
    "extra_oidc_scopes" = "openid profile offline_access";
    "instance_aware" = 0;
    "msg_protocol_ver" = 4;
    prompt = "select_account";
    "provider_type" = "provider_aad_v2";
    "redirect_uri" = "msauth.com.microsoft.idnaace.MSALMacOS://auth";
    scope = "user.read";
}

////////////////////////////////////////////////////////////
//Request PRT from Microsoft Authentication Broker Service//
////////////////////////////////////////////////////////////
Using request handler <ADInteractiveDevicelessPRTBrokerRequestHandler: 0x117ea50b0>
(Default accessor) Looking for token with aliases (null), tenant (null), clientId 11112222-bbbb-3333-cccc-4444dddd5555, scopes (null)
Attempting to get Deviceless Primary Refresh Token interactively.
Caching AAD Environements
networkHost: login.microsoftonline.com, cacheHost: login.windows.net, aliases: login.microsoftonline.com, login.windows.net, login.microsoft.com, sts.windows.net
networkHost: login.partner.microsoftonline.cn, cacheHost: login.partner.microsoftonline.cn, aliases: login.partner.microsoftonline.cn, login.chinacloudapi.cn
networkHost: login.microsoftonline.de, cacheHost: login.microsoftonline.de, aliases: login.microsoftonline.de
networkHost: login.microsoftonline.us, cacheHost: login.microsoftonline.us, aliases: login.microsoftonline.us, login.usgovcloudapi.net
networkHost: login-us.microsoftonline.com, cacheHost: login-us.microsoftonline.com, aliases: login-us.microsoftonline.com
Resolved authority, validated: YES, error: 0
[MSAL] Resolving authority: Masked(not-null), upn: Masked(null)
[MSAL] Resolved authority, validated: YES, error: 0
[MSAL] Start webview authorization session with webview controller class MSIDAADOAuthEmbeddedWebviewController: 
[MSAL] Presenting web view controller. 

記錄範例可以細分為三個區段:

區段 描述
get_accounts_operation 檢查快取中是否有任何現有的帳戶
- ClientID:此 MSAL 應用程式Microsoft Entra ID 中註冊的應用程式識別碼
ADB 3.1.40 指出Microsoft Enterprise SSO 擴充代理程式外掛程式的版本
login 代理程式會處理 Microsoft Entra ID 的要求:
- 處理互動式 SSO 要求...:表示互動式要求
- correlation_id:適用於與 Microsoft Entra 伺服器端登入記錄進行交叉參考
- scope:從 Microsoft Graph 要求的 User.Read API 權限範圍
- client_version:應用程式正在執行的 MSAL 版本
- redirect_uri:MSAL 應用程式會使用 msauth.com.<Bundle ID>://auth 格式
PRT 要求 啟動載入程式以互動方式取得PRT,並轉譯 Webview SSO 工作階段

Microsoft Authentication Broker 服務
- clientId:29d9ed98-a469-4536-ade2-f981bc1d605e
- 所有 PRT 要求都會 Microsoft Authentication 代理程式服務

SSO Webview 控制器隨即出現,並提示使用者輸入其 Microsoft Entra 登入名 (UPN/email)

顯示 Apple SSO 提示的螢幕擷取畫面,其中已輸入使用者資訊,以及詳細資訊圖說文字。

注意

按兩下 Webview 控制器左下角的i,會顯示 SSO 擴充功能的詳細資訊,以及已叫用它之應用程式的詳細資料。

此螢幕擷取畫面顯示來自提示 SSO 畫面之 SSO 擴充功能詳細信息。 使用者成功輸入其Microsoft Entra 認證之後,下列記錄專案會寫入 SSO 擴充功能記錄檔

SSOExtensionLogs
///////////////
//Acquire PRT//
///////////////
[MSAL] -completeWebAuthWithURL: msauth://microsoft.aad.brokerplugin/?code=(not-null)&client_info=(not-null)&state=(not-null)&session_state=(not-null)
[MSAL] Dismissed web view controller.
[MSAL] Result from authorization session callbackURL host: microsoft.aad.brokerplugin , has error: NO
[MSAL] (Default accessor) Looking for token with aliases (
    "login.windows.net",
    "login.microsoftonline.com",
    "login.windows.net",
    "login.microsoft.com",
    "sts.windows.net"
), tenant (null), clientId 29d9ed98-a469-4536-ade2-f981bc1d605e, scopes (null)
Saving PRT response in cache since no other PRT was found
[MSAL] Saving keychain item, item info Masked(not-null)
[MSAL] Keychain find status: 0
Acquired PRT.

///////////////////////////////////////////////////////////////////////
//Discover if there is an Azure AD Device Registration (WPJ) present //
//and if so re-acquire a PRT and associate with Device ID            //
///////////////////////////////////////////////////////////////////////
WPJ Discovery: do discovery in environment 0
Attempt WPJ discovery using tenantId.
WPJ discovery succeeded.
Using cloud authority from WPJ discovery: https://login.microsoftonline.com/common
ADBrokerDiscoveryAction completed. Continuing Broker Flow.
PRT needs upgrade as device registration state has changed. Device is joined 1, prt is joined 0
Beginning ADBrokerAcquirePRTInteractivelyAction
Attempting to get Primary Refresh Token interactively.
Acquiring broker tokens for broker client id.
Resolving authority: Masked(not-null), upn: auth.placeholder-61945244__domainname.com
Resolved authority, validated: YES, error: 0
Enrollment id read from intune cache : (null).
Handle silent PRT response Masked(not-null), error Masked(null)
Acquired broker tokens.
Acquiring PRT.
Acquiring PRT using broker refresh token.
Requesting PRT from authority https://login.microsoftonline.com/<TenantID>/oauth2/v2.0/token
[MSAL] (Default accessor) Looking for token with aliases (
    "login.windows.net",
    "login.microsoftonline.com",
    "login.windows.net",
    "login.microsoft.com",
    "sts.windows.net"
), tenant (null), clientId (null), scopes (null)
[MSAL] Acquired PRT successfully!
Acquired PRT.
ADBrokerAcquirePRTInteractivelyAction completed. Continuing Broker Flow.
Beginning ADBrokerAcquireTokenWithPRTAction
Resolving authority: Masked(not-null), upn: auth.placeholder-61945244__domainname.com
Resolved authority, validated: YES, error: 0
Handle silent PRT response Masked(not-null), error Masked(null)

//////////////////////////////////////////////////////////////////////////
//Provide Access Token received from Azure AD back to Client Application// 
//and complete authorization request                                    //
//////////////////////////////////////////////////////////////////////////
[MSAL] (Default cache) Removing credentials with type AccessToken, environment login.windows.net, realm TenantID, clientID 00001111-aaaa-2222-bbbb-3333cccc4444, unique user ID dbb22b2f, target User.Read profile openid email
ADBrokerAcquireTokenWithPRTAction succeeded.
Composing broker response.
Sending broker response.
Returning to app (msauth.com.microsoft.idnaace.MSALMacOS://auth) - protocol version: 3
hash: AA11BB22CC33DD44EE55FF66AA77BB88CC99DD00
payload: Masked(not-null)
Completed interactive SSO request.
Completed interactive SSO request.
Request complete
Completing SSO request...
Finished SSO request.

此時在驗證/授權流程中,PRT 已啟動,而且應該會在 macOS 金鑰鏈存取中顯示。 請參閱檢查 PRT 的金鑰鏈存取MSAL macOS 範例應用程式會使用從 Microsoft SSO 擴充代理程式收到的存取權杖來顯示使用者的資訊。

接下來,根據從用戶端 SSO 擴充功能記錄收集的相互關聯標識符,檢查伺服器端 Microsoft Entra 登入記錄。 如需詳細資訊,請參閱 Microsoft Entra ID 中的登入記錄

依相互關聯標識符篩選檢視 Microsoft Entra 登入記錄
  1. 開啟註冊應用程式之租使用者的 Microsoft Entra 登入。
  2. 選取 [使用者登入次數 (互動式)]。
  3. 選取 [新增篩選],然後選取 [相互關聯標識符] 單選按鈕。
  4. 複製並貼上從 SSO 擴充功能記錄取得的相互關聯標識碼,然後選取 [套用]。

針對 MSAL 互動式登入流程,我們預期會看到資源 Microsoft Authentication 代理程式服務的互動式登入。 此事件是使用者輸入密碼以啟動 PRT 的位置。

此螢幕擷取畫面顯示來自 Microsoft Entra ID 的互動式使用者登入,其中顯示互動式登入 Microsoft Authentication 代理程式服務。

也有非互動式登入事件,因為 PRT 是用來取得用戶端應用程式要求的存取權杖。 遵循依照相互關聯標識符篩選器檢視 Microsoft Entra 登入記錄,但在步驟 2 中,選取 [使用者登入 (非互動式)]。

此螢幕擷取畫面顯示 SSO 擴充功能如何使用 PRT 來取得 Microsoft Graph 的存取權杖。

登入記錄屬性 Description
應用程式 在用戶端應用程式驗證的 Microsoft Entra 租使用者中顯示應用程式註冊的名稱。
應用程式識別碼 另請參閱 Microsoft Entra 租使用者中應用程式註冊的 ClientID。
資源 用戶端應用程式嘗試取得存取權的 API 資源。 在此範例中,資源是 Microsoft Graph API
傳入權杖類型 傳入權杖類型的 [主要重新整理權杖 (PRT)] 顯示用來取得資源存取權杖的輸入權杖。
使用者代理程式 此範例中的使用者代理程式字串顯示 Microsoft SSO 擴充功能 是處理此要求的應用程式。 這是一個有用的指標,指出正在使用 SSO 擴充功能,而且正在進行訊息代理程序驗證要求。
Microsoft Entra 應用程式驗證資源庫 使用 MSAL 應用程式時,會在這裡撰寫連結庫和平台的詳細資料。
Oauth 範圍資訊 要求存取權杖的 Oauth2 範圍資訊。 (User.Read,profile,openid,email)。
MSAL 原生:無訊息流程逐步解說

經過一段時間之後,存取權杖將不再有效。 因此,如果使用者在 [呼叫 Microsoft Graph API] 按鈕上 重新點選。 SSO 擴充功能會嘗試使用已取得的 PRT 重新整理存取權杖。

SSOExtensionLogs
/////////////////////////////////////////////////////////////////////////
//refresh operation: Assemble Request based on User information in PRT  /  
/////////////////////////////////////////////////////////////////////////
Beginning authorization request
Request does not need UI
Handling SSO request, requested operation: refresh
Handling silent SSO request...
Looking account up by home account ID dbb22b2f, displayable ID auth.placeholder-61945244__domainname.com
Account identifier used for request: Masked(not-null), auth.placeholder-61945244__domainname.com
Starting SSO broker request with payload: {
    authority = "https://login.microsoftonline.com/<TenantID>";
    "client_app_name" = MSALMacOS;
    "client_app_version" = "1.0";
    "client_id" = "00001111-aaaa-2222-bbbb-3333cccc4444";
    "client_version" = "1.1.7";
    "correlation_id" = "aaaa0000-bb11-2222-33cc-444444dddddd";
    "extra_oidc_scopes" = "openid profile offline_access";
    "home_account_id" = "<UserObjectId>.<TenantID>";
    "instance_aware" = 0;
    "msg_protocol_ver" = 4;
    "provider_type" = "provider_aad_v2";
    "redirect_uri" = "msauth.com.microsoft.idnaace.MSALMacOS://auth";
    scope = "user.read";
    username = "auth.placeholder-61945244__domainname.com";
}
//////////////////////////////////////////
//Acquire Access Token with PRT silently//
//////////////////////////////////////////
Using request handler <ADSSOSilentBrokerRequestHandler: 0x127226a10>
Executing new request
Beginning ADBrokerAcquireTokenSilentAction
Beginning silent flow.
[MSAL] Resolving authority: Masked(not-null), upn: auth.placeholder-61945244__domainname.com
[MSAL] (Default cache) Removing credentials with type AccessToken, environment login.windows.net, realm <TenantID>, clientID 00001111-aaaa-2222-bbbb-3333cccc4444, unique user ID dbb22b2f, target User.Read profile openid email
[MSAL] (MSIDAccountCredentialCache) retrieving cached credentials using credential query
[MSAL] Silent controller with PRT finished with error Masked(null)
ADBrokerAcquireTokenWithPRTAction succeeded.
Composing broker response.
Sending broker response.
Returning to app (msauth.com.microsoft.idnaace.MSALMacOS://auth) - protocol version: 3
hash: AA11BB22CC33DD44EE55FF66AA77BB88CC99DD00
payload: Masked(not-null)
Completed silent SSO request.
Request complete
Completing SSO request...
Finished SSO request.

記錄範例可以細分為兩個區段:

區段 描述
refresh 代理程式會處理 Microsoft Entra ID 的要求:
- 處理無訊息 SSO 要求...:表示無訊息要求
- correlation_id:適用於與 Microsoft Entra 伺服器端登入記錄進行交叉參考
- scope:從 Microsoft Graph 要求的 User.Read API 權限範圍
- client_version:應用程式正在執行的 MSAL 版本
- redirect_uri:MSAL 應用程式會使用 msauth.com.<Bundle ID>://auth 格式

重新整理對要求承載有顯著差異:
- authority:包含與一般端點相反的 Microsoft Entra 租使用者 URL 端點
- home_account_id:以 <UserObjectId>.<TenantID> 格式顯示使用者帳戶
- username:哈希 UPN 格式 auth.placeholder-XXXXXXXX__domainname.com
PRT 重新整理和取得存取權杖 這項作業會重新驗證 PRT,並視需要重新整理,再將存取權杖傳回呼叫的客戶端應用程式。

我們可以再次取得從用戶端 SSO 擴充功能記錄取得的相互關聯標識碼,並使用伺服器端 Microsoft Entra 登入記錄進行交叉參考。

此螢幕擷取畫面顯示使用 Enterprise SSO 代理程式外掛程式 Microsoft Entra 無訊息登入要求。

Microsoft Entra 登入會顯示與上一個互動式登入區段中登入作業中 Microsoft Graph 資源相同的資訊。

非 MSAL/瀏覽器 SSO 應用程式登入流程

下一節將逐步解說如何檢查非 MSAL/瀏覽器 SSO 應用程式驗證流程的 SSO 擴充功能記錄。 在此範例中,我們使用 Apple Safari 瀏覽器作為用戶端應用程式,而應用程式正在呼叫 Office.com (OfficeHome) Web 應用程式。

非 MSAL/Browser SSO 流程逐步解說

應該針對成功的登入執行下列動作:

  1. 假設已經經歷啟動載入程式的使用者具有現有的 PRT。
  2. 在裝置上,部署 Microsoft SSO 擴充功能代理程式時,會檢查已設定的功能旗標,以確保 SSO 擴充功能可以處理應用程式。
  3. 由於 Safari 瀏覽器遵守 Apple 網路堆疊,SSO 擴充功能會嘗試攔截 Microsoft Entra 驗證要求。
  4. PRT 可用來取得所要求資源的權杖。
  5. 如果裝置已在 Microsoft Entra 註冊,則會傳遞裝置標識碼以及要求。
  6. SSO 擴充功能會填入 Browser 要求的標頭,以登入資源。

下列用戶端 SSO 擴充功能記錄會顯示 SSO 擴充代理程式以透明方式處理的要求,以履行要求。

SSOExtensionLogs
Created Browser SSO request for bundle identifier com.apple.Safari, cookie SSO include-list (
), use cookie sso for this app 0, initiating origin https://www.office.com
Init MSIDKeychainTokenCache with keychainGroup: Masked(not-null)
[Browser SSO] Starting Browser SSO request for authority https://login.microsoftonline.com/common
[MSAL] (Default accessor) Found 1 tokens
[Browser SSO] Checking PRTs for deviceId 73796663
[MSAL] [Browser SSO] Executing without UI for authority https://login.microsoftonline.com/common, number of PRTs 1, device registered 1
[MSAL] [Browser SSO] Processing request with PRTs and correlation ID in headers (null), query aaaa0000-bb11-2222-33cc-444444dddddd
[MSAL] Resolving authority: Masked(not-null), upn: Masked(null)
[MSAL] No cached preferred_network for authority
[MSAL] Caching AAD Environements
[MSAL] networkHost: login.microsoftonline.com, cacheHost: login.windows.net, aliases: login.microsoftonline.com, login.windows.net, login.microsoft.com, sts.windows.net
[MSAL] networkHost: login.partner.microsoftonline.cn, cacheHost: login.partner.microsoftonline.cn, aliases: login.partner.microsoftonline.cn, login.chinacloudapi.cn
[MSAL] networkHost: login.microsoftonline.de, cacheHost: login.microsoftonline.de, aliases: login.microsoftonline.de
[MSAL] networkHost: login.microsoftonline.us, cacheHost: login.microsoftonline.us, aliases: login.microsoftonline.us, login.usgovcloudapi.net
[MSAL] networkHost: login-us.microsoftonline.com, cacheHost: login-us.microsoftonline.com, aliases: login-us.microsoftonline.com
[MSAL] Resolved authority, validated: YES, error: 0
[MSAL] Found registration registered in login.microsoftonline.com, isSameAsRequestEnvironment: Yes
[MSAL] Passing device header in browser SSO for device id 43cfaf69-0f94-4d2e-a815-c103226c4c04
[MSAL] Adding SSO-cookie header with PRT Masked(not-null)
SSO extension cleared cookies before handling request 1
[Browser SSO] SSO response is successful 0
[MSAL] Keychain find status: 0
[MSAL] (Default accessor) Found 1 tokens
Request does not need UI
[MSAL] [Browser SSO] Checking PRTs for deviceId 73796663
Request complete
SSO 擴充功能記錄元件 描述
已建立瀏覽器 SSO 要求 所有非 MSAL/瀏覽器 SSO 要求都以如下一行開頭:
- 套件組合標識碼: 套件組合標識碼: com.apple.Safari
- 起始來源:瀏覽器在達到 Microsoft Entra ID 的其中一個登入 URL 之前存取的網頁 URL (https://office.com)
啟動授權單位的瀏覽器 SSO 要求 解析 PRT 的數目,如果已註冊裝置:
https://login.microsoftonline.com/common,PRT 數目 1,已註冊裝置 1
相互關聯 ID [瀏覽器 SSO]在標頭中處理具有 PRT 和相互關聯標識碼的要求 (null),查詢 <CorrelationID>。 此標識元對於使用 Microsoft Entra 伺服器端登入記錄進行交叉參考很重要
裝置註冊 (可選擇) 如果裝置已註冊 Microsoft Entra,則 SSO 擴充功能可以在瀏覽器 SSO 要求中傳遞裝置標頭:
- 找到註冊,註冊於
- login.microsoftonline.com, isSameAsRequestEnvironment: Yes

在瀏覽器 SSO 中傳遞裝置標頭以取得 裝置識別碼 43cfaf69-0f94-4d2e-a815-c103226c4c04

接下來,使用從瀏覽器 SSO 擴充功能記錄取得的相互關聯標識碼,以交叉參考 Microsoft Entra 登入記錄。

此螢幕擷取畫面顯示瀏覽器 SSO 擴充功能 Microsoft Entra 登入記錄中的交叉參考。

登入記錄屬性 Description
應用程式 在用戶端應用程式驗證的 Microsoft Entra 租使用者中顯示應用程式註冊的名稱。 在此範例中,顯示名稱為 OfficeHome
應用程式識別碼 另請參閱 Microsoft Entra 租使用者中應用程式註冊的 ClientID。
資源 用戶端應用程式嘗試取得存取權的 API 資源。 在此範例中,資源是 OfficeHome Web 應用程式。
傳入權杖類型 傳入權杖類型的 [主要重新整理權杖 (PRT)] 顯示用來取得資源存取權杖的輸入權杖。
偵測到驗證方法 在 [驗證詳細資料] 索引標籤下,[Microsoft Entra SSO 外掛程式 的值是個有用的指標,可指出 SSO 擴充功能正用來協助瀏覽器 SSO 要求
Microsoft Entra SSO 擴充功能版本 在 [其他詳細資料] 索引標籤下,此值會顯示 Microsoft Enterprise SSO 擴充功能代理程式應用程式的版本。
裝置識別碼 如果已註冊裝置,SSO 擴充功能可以傳遞裝置標識碼來處理裝置驗證要求。
作業系統 顯示作業系統的類型。
相容性 SSO 擴充功能可藉由傳遞裝置標頭來促進合規性原則。 這些需求包括:
- Microsoft Entra 裝置註冊服務
- MDM 管理
- Intune 或 Intune 合作夥伴合規性
受管理的 表示裝置正在管理中。
加入類型 如果已註冊,macOS 和 iOS 只能是以下類型:Microsoft Entra 已註冊

提示

如果您使用 Jamf Connect,建議您遵循將 Jamf Connect 與 Microsoft Entra ID 整合的最新 Jamf 指南。 建議的整合模式可確保 Jamf Connect 可搭配條件式存取原則和 Microsoft Entra ID Protection 正常運作。

下一步