
搭配 Apple 裝置的「單一登入」簡介
機構常會利用「單一登入」(SSO),其設計旨在改進使用者登入 App 和網站的體驗。透過 SSO 可使用一般的認證程序來取用多個 App 或系統,無須使用者再次聲明其識別身分。相較於儲存使用者的憑證(例如其密碼)和將其重新用於每個 App 或系統,SSO 會使用初次認證提供的代號,給予使用者一次性密碼概念的外觀。
例如,當你登入身分提供者(IdP)後,無須再次輸入密碼即可流暢地取用你的內部專用 App 和網站,這就是 SSO。所有 App 和系統會設為信任 IdP 來辨識使用者和提供群組成員資格;這些結合起來即形成安全網域。
使用 SSO 的新式認證
新式認證指的是一組由雲端應用程式使用的網路型認證通訊協定。範例包含 SAML 2.0、OAuth 2.0(iOS 16、iPadOS 16.1、visionOS 1.1 或以上版本),以及 Open ID Connect(OIDC)。這些通訊協定透過網際網路正常運作並使用 HTTPS 加密其連線。SAML 2.0 頻繁用於建立機構網路和雲端應用程式之間的同盟。穿越信任網域時會使用同盟,例如,從本地網域取用一組雲端應用程式時。
【注意】若要利用 OAuth 2.0 來與「使用者註冊」搭配使用,裝置管理服務需要針對其想要支援的任何 IdP 導入 OAuth 2.0 的伺服器端支援。
搭配這些通訊協定的單一登入會因廠商和環境而有所不同。例如,當你在機構的網路上時使用 Active Directory 同盟服務(AD FS),AD FS 會搭配 Kerberos 作業進行 SSO,而在你透過網際網路認證用戶端時,AD FS 可以使用瀏覽器 Cookie。新式認證通訊協定不會規定使用者聲明其識別身分的方式。這些通訊協定在認證來自未知的用戶端時有許多會結合如 SMS 代碼的多重認證使用。部分廠商會在裝置上提供憑證來識別已知的裝置,藉此協助認證程序。
IdP 可以透過使用「單一登入」延伸功能來在 iOS、iPadOS、macOS 和 visionOS 中支援 SSO。這些延伸功能允許 IdP 為其使用者導入新式認證通訊協定。
Kerberos
Kerberos 是為 SSO 用於大型網路的熱門認證通訊協定。它也是 Active Directory 使用的預設通訊協定。Kerberos 可跨平台運作,使用加密,以及防止重新執行攻擊。它可以使用密碼、憑證識別身份、智慧卡、NFC 裝置或其他硬體認證產品來對使用者進行認證。執行 Kerberos 的伺服器稱為密鑰發布中心(KDC)。若要認證使用者,Apple 裝置需要透過網路連線來聯絡 KDC。
Kerberos 在機構的內部或專用網路上運作良好,因為所有用戶端和伺服器具備直接連接 KDC 的能力。不在企業網路上的用戶端需要使用虛擬專用網路(VPN)來連線並認證。Kerberos 不適用於雲端或網際網路型 App。這是因為這些應用程式沒有直接連接到企業網路。新式認證(如下所述)比較適合雲端或網際網路型 App。
整合至 Active Directory 環境時,macOS 將 Kerberos 優先用於所有認證活動。使用者使用 Active Directory 帳號登入 Mac 時,會從 Active Directory 網域控制器要求 Kerberos 票卷授予票(TGT)。當使用者嘗試在支援 Kerberos 認證的網域上使用任一服務或 App 時,TGT 會用來要求該服務的許可證,無須要求使用者再次認證。若規則設為需要密碼才能解除螢幕保護程式,macOS 會嘗試在認證成功時更新 TGT。
轉送和反查「網域名稱系統」(DNS)記錄對 Kerberize 伺服器的正常運作應是精確的。系統時鐘的時間也很重要,因為任何伺服器和客戶端之時鐘偏移需要小於 5 分鐘。最佳作法是使用「網路時間通訊協定」(NTP)服務,例如 time.apple.com,來自動設定日期與時間。
支援的 App
iOS、iPadOS 和 visionOS 能為使用類別 NSURLSession 或 URLSession 來管理網路連線與認證的所有 App 提供 SSO 的彈性支援。Apple 為所有開發者提供這些類別,以在他們的 App 中無縫整合網路連線。
任何支援 Kerberos 認證的 Mac App 都可使用 SSO。這包含許多 macOS 內建的 App,如 Safari、「郵件」和「行事曆」,以及包含如檔案共享、螢幕共享及安全殼層(SSH)之類的服務。許多第三方 App 也支援 Kerberos。
設定「單一登入」
若要設定 SSO,你需要使用裝置管理服務來套用必要的設定。設定需要包含與 IdP 通訊的「單一登入」延伸功能的相關資訊,以及允許或限制使用 SSO 的 App 和 Safari 網頁 URL。你也可以使用 Apple 提供的「Kerberos 單一登入」延伸功能,此功能包含在 iOS、iPadOS、macOS 和 visionOS 中。
在針對所要求之 URL 的前置詞比對字串型態時,會使用簡易字串型態的比對方式。因此,型態需要以 https:// 或 http:// 開頭,且將不會比對相異的埠號。如果 URL 比對型態並未以斜線(/)結尾,則會自動加上斜線。
例如,https://www.betterbag.com/ 符合 https://www.betterbag.com/index.html,但不符合 http://www.betterbag.com 或 https://www.betterbag.com:443/。
單一萬用字元也可用來指定遺漏的子網域。例如,https://*.www.betterbag.com/ 會符合 https://store.betterbag.com/。