Apple 裝置的單一登入簡介
機構經常利用單一登入(SSO),其設計旨在改進用户登入 App 和網站時的體驗。 使用 SSO,一般認證過程會用來取用多個 App 或系統,用户無需再次聲明其身份。 SSO 會使用由初始認證所提供的代號作為替代,向用户提供一次性密碼概念的外觀,而不是儲存用户憑證(例如他們的密碼)並將其重複用於每個 App 或系統。
例如,SSO 會在你在公司網絡上登入 Active Directory 時發生,然後無縫取用你的企業 App 和網站,無需再次輸入你的密碼。 所有 App 和系統會設定為信任 Active Directory 來識別用户及提供群組成員資格,結合起來即會形成保安網域。
Kerberos
Kerberos 是在 SSO 大型網絡中的常用認證通訊協定。 它也是 Active Directory 預設使用的通訊協定。 它可在平台間運作、使用加密,並避免重複攻擊。 它可以使用密碼、證書身份、智慧卡、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。
為了讓 Kerberize 化伺服器能夠正常運作,轉送和反查網域名稱系統(DNS)的記錄必須準確。 系統時鐘的時間也很重要,因為任何伺服器和客户端之時鐘偏移必須少於 5 分鐘。 最佳做法是使用「網絡時間通訊協定」(NTP)服務,例如 time.apple.com,來自動設定日期與時間。
以 SSO 進行新式認證
新式認證指的是雲端應用程式所使用的一組以網絡為基礎的認證通訊協定。 範例包括 SAML 2.0、OAuth 2.0(iOS 16、iPadOS 16.1、visionOS 1.1 或較新版本),以及 Open ID Connect(OIDC)。 這些通訊協定可在互聯網上良好運作,並使用 HTTPS 加密其連線。 SAML2 常用於在聯合機構的網絡和雲端應用程式。 在跨受信任網域時就會使用同盟﹐例如從內部部署網域取用一組雲端應用程式。
附註:如要利用 OAuth 2.0,MDM 解決方案必須針對 OAuth 2.0 與其想要的任何身份服務供應商(IdP)導入伺服器端支援,才能支援配搭「用户註冊」使用。
使用這些通訊協定的單一登入是會視乎廠商和環境而有所不同。 例如,當你在機構的網絡上時使用 Active Directory 同盟服務(AD FS)時,AD FS 會配搭 Kerberos 作業進行 SSO,而在你透過互聯網認證用户端時,AD FS 可以使用瀏覽器 Cookie。 新式認證通訊協定不會聽寫用户聲明身份的方式。 從未知的用户端認證時,這些通訊協定大部份都會結合多重要素認證(例如 SMS 代碼)來使用。 部份廠商會在裝置上建置證書,來識別已知的裝置以協助認證過程。
IdP 可以透過使用單一登入延伸功能,支援 iOS、iPadOS、macOS 和 visionOS 1.1 中的 SSO。 這些延伸功能允許 IdP 為他們的用户執行新式認證通訊協定。
支援的 App
iOS、iPadOS 和 visionOS 1.1 能為使用 NSURLSession
或 URLSession
級別來管理網絡連線與認證的所有 App 提供 SSO 的彈性支援。 Apple 為所有開發者提供這些級別,以在他們的 App 中無縫整合網絡連線。
任何支援 Kerberos 認證的 Mac App 都可使用 SSO。 這包括許多 macOS 內建的 App,如 Safari、「郵件」和「日曆」,以及如檔案共享、螢幕共享及安全 Shell(SSH)之類的服務。 許多第三方的 App(如 Microsoft Outlook)也支援 Kerberos。
配置單一登入
你可以使用設定描述檔來設定 SSO,而設定描述檔可以選擇以手動安裝或透過 MDM 管理。 SSO 的承載資料可以自由配置。 SSO 可以開放給所有 App 使用,或依據 App 識別碼、服務 URL 或同時依據這兩者來予以限制。
在針對所要求之 URL 的前置詞比對字串型態時,會使用簡易字串型態的比對方式。 因此,型態必須以 https:// 或 http:// 開頭,且將不會比對相異的埠號。 如果 URL 比對型態並未以斜線(/)結尾,則會自動加上一個斜線。
例如,https://www.betterbag.com/ 符合 https://www.betterbag.com/index.html,但將不符合 http://www.betterbag.com 或 https://www.betterbag.com:443/。
單一萬用字元也可用來指定遺漏的子網域。 例如,https://*.betterbag.com/ 符合 https://store.betterbag.com/。
Mac 用户可使用位於「/系統/資源庫/CoreServices/」的門券檢視程式 App 來檢視和管理其 Kerberos 許可證資料。 你可以按一下「許可證」選單並選擇「診斷資料」來檢視更多資料。 如獲設定描述檔許可,用户也可分別使用下列命令列工具來要求、檢視和銷毀 Kerberos 許可證:kinit
、klist
和 kdestroy
。