# Mac PSSO 導入與自主開發評估手冊

文件編號 IT-MAC-ID-002｜版本 1.5｜查核日 2026-09-22｜現行維運基準：[Jamf Connect 主手冊](/)。

文件狀態：**產品文件已查核；公司 Mac 尚未實測；開發工期、AI 效益及人力費率為規劃估算。**本篇不會連線修改 Mac，也不收集登入憑證。Google 原生直連、Google 第三方橋接、IdP 原廠 PSSO 方案必須分開認定。

## 01 選型定位：現行方案與 PSSO 差在哪裡

### 先說明這份附篇的用途

現行主手冊採 **Jamf Connect Login＋Self Service+＋FileVault 登入接續**：Google 驗證用於首次登入；正常冷開機先驗證本機密碼，進入桌面後再檢查及更新 Google 密碼。本篇另外規劃 **Apple PSSO＋相容的 IdP 擴充 App＋Jamf Pro**，其中 Google 需要 Twocanoes Xpsso 等橋接整合，或自行開發。[J01] [J02] [A05]

**只用 macOS 內建功能、MDM 描述檔與 Jamf Pro，沒有相容擴充 App，不能直接完成 Google PSSO。**PSSO 是 Apple 框架；Jamf Pro 是部署管理工具；Google 支援 OIDC，並不等於 Google 提供完整 PSSO 實作。此限制不代表 ADE 首次設定不能用 PSSO；相容整合可從首次 Setup Assistant 開始接手。[A05] [J27] [G10]

<div id="scheme-comparison" class="comparison-block">

### 一眼看懂：原方案與 PSSO 的優缺點

此表延續 **Google 環境**的評估；若要先比較 O365／Entra 與 Google，先看[IdP 選型表](/decision#decision-01)。Entra 的 PSSO Password 官方整合，不需要 Google 橋接。

**先選目標：要「Mac 密碼跟 Google 一樣」，看前兩欄；願意讓 Mac 使用獨立密碼，再看第三欄。**PSSO 需要相容的擴充 App 與身分服務；Jamf Pro 可以繼續負責管理。導入 PSSO 是改變登入整合方式，不能把它當成原方案多勾一個選項。

> **公司實機未驗收：**現行 Connect 有 Google 部署文件；Google＋Xpsso 有 PSSO／ADE 文件，但新密碼解鎖 FileVault 仍待驗收。Google＋PSSO Secure Enclave Key 尚未確認可用。以下 PSSO 能力均以整合支援為前提，公司測試機全部尚未實測。

手機可左右滑動表格；完整手冊與[獨立比較表](/downloads/comparison.md)都可下載。

| 比較項目 | 原方案：Jamf Connect＋Self Service+ | PSSO：Password 密碼模式 | PSSO：Secure Enclave Key 模式 |
|---|---|---|---|
| **一句話理解** | 先用本機密碼進桌面，再檢查 Google 密碼 | 由 PSSO 整合登入與密碼同步 | 用本機密碼登入 Mac，再以硬體金鑰向相容身分服務驗證 |
| **主要優點** | 符合目前一次冷開機、桌面後同步的需求；可沿用既有元件 | 可整合原生首次設定；具完整支援時，可把最新密碼驗證提前到解鎖／登入階段 | 可減少反覆輸入雲端密碼；本機密碼可獨立管理 |
| **主要缺點／代價** | 同步前，本機舊密碼仍可能有效；修復時可能要輸入新、舊兩個密碼 | 更依賴整合支援、網路與登入政策；仍可能出現舊密碼／keychain 提示 | 此模式不提供雲端與本機密碼同步；Google 整合尚未確認，不可直接上線 |
| **Google 需要什麼** | Connect 首次 OIDC 登入；Self Service+ 用 Secure LDAP 同步 | Xpsso 等橋接 App／服務，或自研；不能只派送 Apple／Jamf 描述檔 | 要有明確支援此驗證方法的擴充與後端；Xpsso 支援 Google 不代表這個模式也支援 |
| **正常冷開機只輸入一次？** | 正確設定 FileVault 登入接續，且已驗收時可以 | 是驗收目標；須確認 FileVault、登入接續及密碼狀態 | 仍要解鎖本機；是否一次進桌面須驗收，不能推定完全不用密碼 |
| **Google 改密碼後** | 進桌面完成同步，下次用新密碼 | 支援的整合可驗證新密碼並更新本機；Google／Xpsso 的開機階段行為待測 | Mac 密碼可保持原值；這是獨立管理，不算同步失敗 |
| **維運與成本** | 管理 Connect、Self Service+、Google LDAP 憑證與 Jamf | Google 橋接另增加服務、TLS、信任／金鑰、監控與復原責任 | 同樣需管理擴充與服務，另要驗證使用者金鑰註冊、撤銷與換機流程 |
| **適合我們的程度** | **目前優先完成試點**：接受進桌面後同步 | **第二階段評估**：想改善原生設定與登入當下驗證 | **另案評估**：願意放棄「兩邊密碼一定相同」，且先確認 Google 支援 |

功能依據：[Apple PSSO 方法與限制](https://support.apple.com/en-za/guide/deployment/dep7bbb05313/web)、[Jamf FileVault 登入接續](https://support.jamf.com/en/articles/11003606-filevault-behavior-with-jamf-connect)、[Jamf Google 密碼同步](https://learn.jamf.com/r/en-US/jamf-connect-documentation-current/Password_Syncing_with_Google)、[Xpsso Google 部署需求](https://twocanoes.com/knowledge-base/quick-setup-for-xpsso-service/)。優先順序與維運代價是依本公司需求作的方案評估。

### 用員工會遇到的情境來比較

以下 **A＝Mac 最後同步的密碼，B＝後來在 Google 改的新密碼**。Secure Enclave Key 欄則假設 Mac 密碼獨立管理，不要求等於 Google。

| 員工情境 | 原方案會怎麼做 | PSSO Password 可改善什麼 | PSSO Secure Enclave Key 會怎麼做 |
|---|---|---|---|
| **新員工拿到全新 Mac，走 ADE** | Connect 用 Google 身分／MFA 建帳，完成初始密碼與 FileVault 設定 | 相容整合可在 Setup Assistant 完成註冊與建帳；Google＋Xpsso 有文件，仍需實測 | 先確認身分與金鑰註冊，並設定本機密碼；Google 的完整流程尚未確認 |
| **Google 與 Mac 都已是 B，隔天開機** | 輸入 B 一次，解鎖後接續進桌面 | 驗收 B 一次進桌面，確認沒有多餘登入提示 | 輸入自己設定的 Mac 密碼；雲端 SSO 由相容金鑰整合處理 |
| **工作中 Google 改成 B，還沒同步就重開機** | Mac 仍可能要 A；進桌面再完成 B 同步 | 可測試是否在線上直接接受 B；不能預設 Google／Xpsso 已具備此能力 | Mac 仍使用原本的獨立密碼；雲端是否要重新驗證依服務政策 |
| **關機很久，Google 已改成 B** | 先以 Mac 保留的 A 解鎖，再同步 B | 除了 B 能否解鎖，也要驗證過期的註冊／權杖與復原流程 | 本機密碼不隨 Google 改變；雲端金鑰／權杖是否仍有效另行檢查 |
| **沒有網路，例如在飛機上** | 用本機有效密碼登入，Google 檢查延後 | 按核准的離線政策登入或拒絕；若要求線上驗證，可能無法進入 | 本機解鎖與雲端驗證分開；離線時不能保證取得新的雲端登入權杖 |
| **忘了 A，只記得 Google 的 B** | 若無法解鎖，走 PRK／服務台受控復原；舊 keychain 另處理 | 若整合支援以 B 恢復，可減少阻礙；仍須測試是否需要 A 或 PRK | Google B 不會自動變成本機密碼，仍需本機復原程序 |
| **Mac 被偷，立刻改 Google 密碼** | 不能保證撤銷離線 Mac 的本機存取 | 線上檢查可依政策拒絕；若允許離線，仍有存取邊界，不能承諾立即封鎖 | 不可把改 Google 密碼當成撤銷裝置信任；需另處理裝置／金鑰／工作階段與本機存取 |

這些例子是依各方法整理的預期與驗收目標，不是本公司已通過的實測結果。首次設定、密碼修復及復原不納入「正常冷開機一次密碼」的承諾；Google 手機提示也不能只因啟用 PSSO 就視為每次開機都有。

### 兩種 Secure Enclave，用途分清楚

| 容易混淆的功能 | 原方案是否具備？ | 對員工的意義 |
|---|---|---|
| **FileVault 的 Secure Enclave 硬體保護** | Apple silicon／T2 Mac 的內建儲存裝置已使用；不需要 PSSO | 保護磁碟加密金鑰，原方案並未少掉這層保護 |
| **PSSO User Secure Enclave Key 驗證模式** | 原方案沒有；需要 PSSO＋相容擴充與身分服務 | 用使用者金鑰完成相容的雲端驗證；不能直接代替 Google 密碼同步 |

來源：[Apple FileVault 加密架構](https://support.apple.com/en-au/guide/security/sec4c6dc1b6e/web)、[Apple PSSO 驗證方法](https://support.apple.com/en-za/guide/deployment/dep7bbb05313/web)。

**本公司目前 Google 路線建議：先完成 Connect 原方案驗收；Google PSSO Password 另外試點。**如果將來願意讓 Mac 與 Google 密碼獨立，再評估 Secure Enclave Key。三種路線都需要復原機制；切換時指定唯一的密碼管理責任元件，避免兩套流程同時改本機密碼。

</div>


### 本公司的建議決策

**先辨認 IdP。**以下「先驗收 Connect」適用於公司目前的 Google 路線。若本來使用 O365／Entra，且要求同密碼與 FileVault 當下線上驗證，優先評估 PSSO Password＋Company Portal 官方擴充＋Jamf Pro；不需要先部署 Google 原方案。完整[選型與政策表](/decision)另列。

目前接受「先進桌面、再檢查與同步」，且不強制每次開機 Google Prompt，因此現行 Connect 可先完成試點。PSSO 另開測試 Scope；只有在相同七種情境、FileVault、新舊密碼及復原案例通過後，才決定替換。

**Jamf Pro 可以保留。**若改採完整 PSSO 建帳與 Password 同步，應明確指定 PSSO 為密碼管理責任元件，規劃停用原有 Connect Login 介入及 Self Service+ 的密碼同步設定。Self Service+ 的軟體入口等其他用途可另行保留。是否共存必須依特定 IdP／版本的原廠文件驗證，不能把其他 IdP 的共存方式直接套用到 Google。

## 02 已查核的 IdP 與支援邊界

<div id="psso-idp"></div>

### 支援清單如何閱讀

下表列的是本次查核到、具供應商文件且與 Jamf 選型相關的整合，**不是全市場完整名單，也不是 Apple 替所有功能提供相同保證**。查核版本 11.32（2026-09-22），current 文件列出 Okta、Microsoft Entra ID、Ping Identity；三者都需要相應 App／服務。[J27]

| 身分提供者 | Mac 端必要軟體 | 已有的官方依據 | 導入前的限制與授權查核 |
|---|---|---|---|
| Microsoft Entra ID | Company Portal 內的 Microsoft Enterprise SSO plug-in | 官方說明 Password 可同步本機密碼；macOS 15 起可在 FileVault 向 Entra 驗證，政策列 Attempt／Require；Secure Enclave 保留獨立本機密碼。[I01] [I05] [I06] | 一般 PSSO 最低版本不能當成 ADE／FileVault 最低版本；核對 Company Portal、Entra 授權、註冊權限與 Jamf 設定 |
| Okta | Okta Verify；相關 Device Access 設定 | 有 Jamf Pro Desktop Password Sync 部署指南；FileVault 政策與 keychain 行為有專文。[I02] [I03] | 核對 Okta Device Access 授權、憑證與實際版本；macOS 26 文件要求 Okta Verify 9.52+ |
| Ping Identity | PingID desktop App＋後端整合 | 查核到的 Workforce PSSO 文件要求 PingFederate，使用 UserSecureEnclaveKey；不足以確認本篇要求的 FileVault 最新密碼驗證／同步。[I04] | 該指南列 Apple silicon、macOS 15.4+、PingID 2.0+、PingFederate 13.1+、Adapter 1.0+及 PingOne for Workforce 授權；ADE 能力另核對 |
| Google Workspace／Cloud Identity，僅配 Apple／Jamf 描述檔 | 未部署相容 PSSO 擴充 | Google 有 OIDC；但此組合缺少 PSSO 擴充與服務實作。[G10] [A05] | **不能直接當 Google 原生 PSSO 方案部署** |
| Google＋Twocanoes Xpsso | Xpsso App＋Xpsso 微服務 | 第三方供應商提供 Google、Jamf Pro、ADE 部署文件。[X01] [X02] [X03] | 屬第三方橋接；需要 Google OIDC／Secure LDAP、DNS、可信 TLS、授權及服務維運；不等於 Google 原廠提供擴充 |
| Google＋公司自研 | 自有 PSSO 擴充 App＋橋接後端 | Apple 提供開發 API。[A08] | 屬待開發方案；本篇工期與預算不是既有產品的支援承諾 |

### Apple 功能版本不是產品支援證明

| Apple 能力 | Apple 文件所列條件 | 本篇的驗收方式 |
|---|---|---|
| PSSO 基礎框架 | macOS 13+，仍需要相容擴充與 IdP | 記錄 App／服務版本與所用驗證方法 |
| FileVault 階段的登入政策 | macOS 15+；FileVault 相關能力限 Apple silicon | 測試可到達 IdP 的 pre-boot 網路，不能以桌面網路正常代替 |
| ADE 中的 PSSO 註冊 | macOS 26+，MDM／擴充／IdP 配合 | 全新清除的測試機重做 ADE；不能用已建帳機假裝首次設定 |
| 網頁式驗證 | Apple 文件列 macOS 27；查核頁面含部分預發行內容提示 | 鎖定實際 build、SDK 與廠商支援聲明；不宣稱 Google Prompt 已在 FileVault 可用 |

來源：[A05] [A04] [J27]。Apple `Password`、`OpenID`、`UserSecureEnclaveKey` 是不同方法；不可把其參數混在一起就當成完整支援。特別是 Password 登入政策與 web-based 流程，需要分別依當版文件核對。

## 03 PSSO 架構與環境準備

### Google 橋接方案的元件責任

| 元件 | 責任 | 公司需指派的負責人 |
|---|---|---|
| Apple Business Manager／ADE | 將公司 Mac 指派至正確 MDM 註冊流程 | 資產與 Jamf 管理員 |
| Jamf Pro | PreStage、App、描述檔、FileVault 與 PRK 託管 | Jamf 管理員 |
| macOS PSSO＋相容擴充 App | 註冊裝置與使用者、提供支援的驗證整合 | Mac 開發／維運 |
| Xpsso 或自研橋接服務 | 裝置信任、PSSO 協定、Google 整合 | 後端與基礎設施負責人 |
| Google OIDC | Google 網頁身分驗證，MFA 依組織政策 | Google 管理員 |
| Google Secure LDAP | 驗證輸入的 Google 帳密及必要目錄查詢 | Google 管理員 |
| PRK、受控管理帳號與備份 | 登入失敗時的復原，保護公司資料 | 服務台與資安負責人 |

這是元件分工圖，不代表每次登入都會依序執行全部元件。OIDC 回傳身分權杖，不會把 Google 新密碼提供給應用程式下載；LDAP 帳密驗證成功也不能當成已完成 Google 手機提示的證據。[G10] [G01] [X02]

### 開工前必填

1. 測試 Mac 的晶片、macOS 版本與 build、是否允許清除重裝、ADE 指派與測試 OU。
2. Jamf Pro 版本、PreStage 名稱、獨立 Scope、管理員與 PRK 取用流程。
3. Google 方案的 Secure LDAP 資格、OIDC 應用程式、redirect URI、測試帳號、MFA 政策。
4. 選定 Xpsso App／service 版本或原始碼 commit；若自編，確認 Apple Developer 團隊、簽署與公證流程。
5. 橋接服務 FQDN、可信 TLS、DNS、Associated Domains、金鑰／註冊資料儲存、備份與還原方式。
6. Google OIDC／LDAP 連線所需端點；FileVault 前的網路能否到達橋接服務及所需端點。
7. 選定 Password 同步或 Secure Enclave 方法；確認誰管理本機密碼，以及每次開機是否強制 MFA。
8. 既有 Connect／Self Service+ 設定與回復副本；不在正式員工 Scope 混裝試驗。

Xpsso 官方要求服務、公開 DNS／可信 TLS、OIDC 與 LDAP；LDAP 憑證位於橋接服務端，這與現行 Self Service+ 在 Mac 端使用 LDAP 憑證的路線不同。機密只存公司受控系統，不填入本網站或下載表。[X02] [J02]

### 故障與網路邊界

桌面上可用的 VPN、802.1X 或 network relay，不能直接當成 FileVault 前也可用。已知網路、USB 網卡及 Wi-Fi 型態要逐一測試；各 IdP 文件可能另有限制。`AttemptAuthentication`、`RequireAuthentication` 與離線寬限必須有核准政策，不能看到 Require 就在正式群組直接啟用。[A05] [I03]

若允許本機離線 fallback，就必須接受：Google 改密碼或帳號停權不能立即撤銷離線 Mac 的存取。若要求每次都線上驗證，就必須驗收橋接服務、Google 或網路故障時的拒絕與復原行為。

架構原稿：[SVG 向量圖](/diagrams/psso-architecture.svg) · [3,840 px PNG](/diagrams/psso-architecture-3840.png) · [可編輯 SVG](/diagrams/psso-architecture-editable.svg)。

## 04 Google＋Twocanoes 導入作業

### 採購與版本確認

Twocanoes 將 Xpsso 列為 XCreds 包含的功能，但使用獨立 App／service。Xpsso 的 1.0 版本頁與 XCreds 6.0 PRE-BETA 是不同產品版本，不得混用支援判定。[X01] [X04]

查核時 XCreds 產品頁的小型組織方案為 **US$600 起、最多 200 台、含一年基本支援、額外每台 US$3**；企業／政府方案為 **US$3,000 起、最多 1,000 台、含一年進階支援、額外每台 US$3**。不是買 10 台就一定只付 US$30。採購前確認 Xpsso 使用權、支援範圍、續約、授權到期的行為及稅金；不得套用舊搜尋快取的 100 台起購門檻。[X05]

以規劃匯率 NT$32／US$ 試算，小型方案軟體起價約 NT$19,200，企業／政府方案約 NT$96,000；此數字不含公司部署人力、主機、Google／Jamf 訂閱與測試成本，也不是即期匯率報價。

### 建置順序與每一步的通過條件

| 步驟 | 操作 | 通過條件與留存證據 |
|---|---|---|
| 1. 固定測試基準 | 選定 App／service、macOS build、驗證方法；取得 Google FileVault 支援說明 | 環境表與廠商回覆完整；未證實能力標為待測 |
| 2. 建 Google 整合 | 建立 OIDC App、精確比對 redirect URI；啟用 Secure LDAP 並限縮測試使用者權限 | Google 網頁驗證與 LDAP 驗證分開留下成功／失敗證據 |
| 3. 架橋接服務 | DNS、可信 TLS、Associated Domains、OIDC／LDAP 設定與機密管理 | nonce／必要公開端點可到達；憑證、時間、金鑰儲存正常 |
| 4. 完成可運作的維運方式 | 依版本文件配置開機啟動、程序重啟、監控、備份與金鑰還原 | 主機重開後服務仍可用；不可把保持終端機開啟當正式維運 |
| 5. 設定 Jamf PreStage | 安裝 Xpsso App 與 PSSO 描述檔；依指南啟用 Simplified Setup，等待 App 就緒 | 實際 App bundle／extension／Team ID 與描述檔一致；部署結果正常 |
| 6. 全新機 ADE | 清除可重建測試機，完成 Google 驗證與 PSSO 註冊 | 本機帳號、使用者註冊、權限與命名正確，首次可能不止一次提示 |
| 7. FileVault 與 PRK | 依核准的單一啟用機制加密，確認使用者可解鎖、PRK 已託管 | 可受控復原；記錄 secure token／bootstrap token 與使用者關係 |
| 8. 驗收生命週期 | 執行第 05、08 節全部案例，再做 5～10 人試點 | 每項有通過／失敗及證據；未通過不得擴大部署 |

部署入口：**Jamf Pro → Computers → PreStage Enrollments → General → Enable Simplified Setup for Platform Single Sign-on**；App 放入 Enrollment packages，描述檔放入 Configuration profiles，實際欄位依 Jamf 版本與 Identity first／Device first 工作流程調整。Jamf 建議先用 Device first 驗證。Xpsso 廠商提供 Jamf PreStage 範例，但不能把 Jamf 列明三家 IdP 的整體支援範圍直接擴張到 Xpsso。[J27] [X02] [X03]

### 不提供可直接上正式環境的通用 profile

`ExtensionIdentifier`、`TeamIdentifier`、App Bundle ID、issuer、audience、Associated Domains、驗證方法及帳號映射必須由選定實作取得。自研改用公司簽署後，不能照抄 Twocanoes 的識別碼。設定表至少保存：參數名稱、值的受控存放位置、適用版本、來源文件、負責人與驗收證據。

不要在描述檔放 OAuth client secret、Google LDAP 私鑰或 PRK；服務端所需機密以受控方式部署，輪替與備份另有操作紀錄。

## 05 PSSO 登入、密碼與 FileVault 情境

### Entra／Okta Password：已有官方文件的路線

Entra（Company Portal SSO 擴充）與 Okta（Okta Verify／Desktop Password Sync）均有 FileVault 階段密碼驗證文件；使用 Apple silicon、支援的 macOS 15+、Password 註冊及可到達 IdP 的解鎖前網路。這些是各廠商明示能力，不是 Apple 逐家認證清單，也不能直接外推到 Google。[I03] [I05] [I06] [A05]

若本機仍 A、雲端已 B，支援的線上驗證成功後可更新本機；修復舊 keychain 仍可能另需 A，提示未必都在 FileVault 畫面。預設不保證每次檢查雲端；Attempt 離線可用本機，Require 沒有有效離線寬限時會阻擋離線正常登入。要強制最新 IdP 密碼成功，必須配置 FileVault 政策並驗收舊 A、斷網與寬限例外。[A05] [I03] [I06]

**PSSO Password 仍執行密碼同步，並非只有冷開機才做。**可以由 PSSO／擴充接手，省下另一套同步元件；不代表雲端可直接下載新密碼或永遠沒有修復提示。詳見[政策速查](/decision#decision-02)，Entra 新增 [E01～E10 驗收表](/downloads/entra-acceptance.csv)，全部未測。

#### Google 橋接候選：另行驗收

### 首次與日常分開驗收

首次路徑：**ADE → Jamf 派送相容 App／profile → PSSO 裝置與使用者註冊 → Google 身分驗證 → 建立本機帳號 → FileVault／PRK → 桌面**。此為方案規劃；驗證與註冊的具體先後、提示次數由實作決定。[J27] [X02]

日常路徑：**冷開機 → FileVault 可用網路與選定政策 → 本機驗證或線上 PSSO 驗證 → 視需要更新本機狀態 → 接續登入 → 檢查 keychain／SSO／同步結果**。Google＋Xpsso 是否能在本機 A、Google B 時直接使用 B，必須先驗證，不能寫成已交付。[A05] [A04]

| 情境 | 現行 Connect 基準 | PSSO 要驗證的改善與風險 |
|---|---|---|
| 1. 全新 Mac＋ADE | Google 驗證建帳，完成本機初始密碼與 FileVault 設定 | PSSO 在 Setup Assistant 完成註冊與建帳；確認初始本機密碼與 Google 一致，記錄 MFA 與輸入次數 |
| 2. Google B、本機已同步 B | 冷開機輸入 B 一次 | 應驗收 B 解鎖、接續登入、SSO 正常；不能出現不必要第二登入 |
| 3. 使用中改 Google B，立即重開機 | 未同步前可能仍要 A，桌面再修正 | 分別測 A 與 B；若宣稱可線上直接用 B，必須證明驗證發生於 FileVault 前及後續 keychain 行為 |
| 4. 關機很久，雲端已改 B | 本機仍 A；先 A 後同步 | 與情境 3 共用驗收標準；另測 token／憑證過期，不得只測剛註冊後立即重啟 |
| 5. 離線開機 | 本機 A 可用；同步延後 | 驗證允許離線的時間、到期拒絕、重連後恢復；離線不可能即時得知 Google 已改密碼 |
| 6. 忘記 A，只記得 B | 受控復原；可能影響舊 keychain | 驗證 B 是否能恢復存取、是否需 PRK，以及舊 keychain 資料是否能保留；不可承諾自動救回全部資料 |
| 7. Google／LDAP／橋接服務故障 | LDAP 錯誤不等於密碼已改 | 分辨錯誤密碼、TLS、網路、授權、LDAP 配額與後端故障，測試 fail-open／fail-closed 的核准行為 |

Okta 的官方文件明示：即使在 FileVault／登入畫面同步密碼，仍可能要求舊 macOS 密碼解鎖 keychain。此例用來說明「PSSO」不能保證所有情境都只輸入一次，**不能直接當成 Google／Xpsso 的已知行為**。[I03]

### 本篇對 Google MFA 的承諾範圍

基準需求保留首次 Google 網頁驗證的組織 MFA；目前不強制每次冷開機 Google Prompt。若升級成 FileVault 前每次都要 Google 手機提示，先做獨立技術驗證，確認擴充、IdP、macOS build、拒絕／逾時及 pre-boot 網路。這是可行性關卡，不是多加固定幾週就保證完成的功能。

流程原稿：[SVG 向量圖](/diagrams/psso-lifecycle.svg) · [3,840 px PNG](/diagrams/psso-lifecycle-3840.png) · [可編輯 SVG](/diagrams/psso-lifecycle-editable.svg) · [Mermaid 原始檔](/downloads/psso-flows.mmd)。

## 06 自主開發：投入時間、階段與交付物

<div id="psso-development"></div>

### 兩條自主路線

**A：沿用開源改造。**先確認 Xpsso App、服務端、相依套件的授權與可重現建置，再改用公司識別碼、簽署與部署方式。官方說明為 BSD 類型；Mac 端 LICENSE 已查核為三條款條件，但服務端完整授權／建置尚未核實，不能先承諾整套可免費自行編譯。[X01] [X06] [X07]

**B：完全從零開發。**實作 Swift／AuthenticationServices 擴充、裝置與使用者註冊、Google OIDC／LDAP、後端權杖與金鑰處理、監控與發版。Apple 有公開 API；採用 PSSO 2.0 時需實作相應 Key Service。不要自行發明密碼學協定。[A08]

### 人力與範圍假設

- 1 位熟悉 Swift／macOS 的工程師＋1 位後端工程師，各每週 40 小時。
- IT／QA 每週 10 小時；資安與產品負責人配合設計審查及驗收。
- 先支援 Apple silicon 與一個已固定的 macOS 版本，Google 單一租戶、5～10 人試點。
- Jamf／Google 管理存取、Apple 簽署資格、可清除測試 Mac、DNS／TLS 與服務環境可用。
- 包含首次建帳、一般冷開機、密碼不同步、離線及復原；**不承諾每次 FileVault 前 Google Prompt**。
- 不含更換公司 IdP、多租戶商用產品、全面支援所有舊版 Mac、大型認證稽核與新硬體採購。

以下均為初步工程估算，不是廠商工期或實測成果；等待帳號、簽署資格、採購、使用者排程及未解平台問題會延長日曆時間。

### 從開工累計的里程碑

| 里程碑 | 開源改造，一般開發 | 從零，一般開發 | 通過條件 |
|---|---|---|---|
| 可行性關卡 | 第 1～2 週 | 第 1～2 週 | 授權與建置、註冊、FileVault 技術路徑有實機證據；不能只有網頁登入 |
| 測試機原型 | 第 3～5 週 | 第 6～8 週 | ADE 建帳與正常冷開機跑通，A／B 密碼狀態可觀察 |
| 5～10 人試用 | 第 6～10 週 | 第 10～16 週 | 基本例外處理、診斷、回復、機密處理已完備 |
| 可分批正式部署 | 第 12～16 週 | 第 16～24 週 | 第 08 節全部通過、審查完成、無未處理重大登入阻斷，完成交接 |

各列為累計時間，不相加；兩位工程師可並行處理客戶端與後端。只有一位工程師搭配 AI 不等於兩位工程師的能力與吞吐，必須重估基準週數。

### 16 週開源改造的工作安排範例

| 階段 | 規劃週次 | 主要工作 | 交付物／決策點 |
|---|---|---|---|
| G0 可行性 | 1～2 | 核對完整原始碼、授權、簽署、Google／PSSO 協定；實機驗證 | 繼續／縮減範圍／停止報告，明列 FileVault 未解項目 |
| G1 註冊與建帳 | 3～5 | 擴充 App、後端身分映射、裝置註冊、ADE | 可重建的測試機、設定範本與版本清單 |
| G2 密碼與復原 | 6～8 | A→B、舊 keychain、離線政策、PRK、後端中斷 | 故障處理表與復原演練證據 |
| G3 包裝與試點 | 9～10 | 簽署、公證、MDM 更新／回復、可用性監控 | 5～10 人試用包與可回復版本 |
| G4 穩定與審查 | 11～14 | 回歸測試、機密與日誌檢查、憑證輪替、備份還原 | 缺陷清單、獨立安全檢視、發布候選版 |
| G5 上線與交接 | 15～16 | 分批部署、監測、停止條件與服務台演練 | 驗收簽核、維運責任與維護預算 |

第 2 週若尚未證實核心技術路徑，必須重估；不能把後續工期當作一定能填補的空白。內部目標可先訂 2 週驗證，不先承諾 4 個月後能支援所有 Google MFA／FileVault 組合。

### Codex Pro 20x 如何計入加速

本次指定 **Pro 20 倍用量方案，預算 US$200／席／月**。官方資料確認 20x 是相對 Plus 的使用額度，不是 20 倍交付速度；依模型、內容與工具使用消耗不同，用完可能需額外 credits 或 API 費用。US$200 為本次指定預算單價，採購時依帳單核對。[O01]

AI 可協助程式骨架、API 串接、測試案例、日誌分析、文件及重構；裝置清除與重裝、FileVault 冷開機、跨網路測試、使用者觀察及獨立審查，仍需實際投入。機密、正式員工資料與恢復金鑰不寫入提示或測試夾具。

**試算模型：55% 工程工時可由 AI 協助，這部分淨節省 35%，所以工程總工時節省為 55%×35%＝19.25%。**淨節省已扣除人工審查、錯誤修正與返工；IT／QA 原本工時保留。這是規劃假設，未有本專案測量證據。曆週按相同比例初估並向上取整，正式部署模型保留至少 8 週；測試等待較長時必須手動增加工期。

| 路線 | 一般開發累計工期 | AI 輔助條件式試算 | 試算前提 |
|---|---|---|---|
| 開源改造 | 12～16 週 | **10～13 週** | 建置與授權可用，且試點證實 19.25% 工程工時節省 |
| 完全從零 | 16～24 週 | **13～20 週** | 同上；未解的協定／FileVault 能力不能由 AI 效率抵銷 |

保守情境：可協助部分只省 20%，整體省 11%；基準情境省 19.25%；樂觀情境只作敏感度分析：可協助部分省 50%，整體省 27.5%。**若實測沒有節省，AI 節省設為 0%，總成本反而增加訂閱費。**每兩週記錄相似任務的人工工時、審查與返工、缺陷、測試等待、AI 費用，更新估算。帳號各自使用，不以共用單一登入當作多席方案。

## 07 預算、AI 費用與年度維護

<div id="psso-budget"></div>

### 金額來源與假設

| 項目 | 本篇使用的值 | 性質 |
|---|---|---|
| 工程師 | 2 人×40 小時／週×NT$1,200／時 | 公司規劃用完整成本假設，非市場薪資或外包報價 |
| IT／QA | 10 小時／週×NT$900／時 | 規劃假設；AI 試算不減少此工時 |
| Codex Pro 20x | 2 席×US$200／月 | 使用者指定方案預算；依實際採購價更新 |
| 預算匯率 | NT$32／US$ | 固定試算，不是即期報價 |
| 開發期主機／備份／監控 | NT$3,000／月 | 小型測試環境預留，非 HA 正式環境報價 |
| 獨立安全檢視 | NT$60,000／次 | 預留額，需按範圍取報價；不代表已涵蓋完整滲透測試 |
| Apple Developer | US$99／年 | 官方年費；已持有時可將增量設為 0。[A09] |
| 預備金 | 上述人力與外部支出小計的 20% | 需求與返工預備，不取代重大變更重估 |

未包含：Google／Jamf／Twocanoes 額外授權、測試 Mac、稅金、API／credits 追加、大型稽核及上線後維運。採購版 Twocanoes 費用不可因「自研」就自動刪除；必須先確認整套自編的授權依據。

### 四種方案的完整專案成本

| 方案 | 估計日曆工期 | 完整成本（含 20% 預備金） | 其中 Codex 訂閱費 |
| --- | --- | --- | --- |
| 開源改造 | 12～16 週 | NT$1,598,602～NT$2,106,202 | NT$0～NT$0 |
| 開源改造＋AI | 10～13 週 | NT$1,378,570～NT$1,793,866 | NT$38,400～NT$38,400 |
| 從零開發 | 16～24 週 | NT$2,106,202～NT$3,121,402 | NT$0～NT$0 |
| 從零開發＋AI | 13～20 週 | NT$1,793,866～NT$2,662,378 | NT$38,400～NT$64,000 |

上述是**人力價值＋開發期外部支出＋預備金**，不等於公司要額外支付同額現金。固定員工薪資不一定因專案而增加；省下工時也不一定能直接省下薪資。外包與增聘則可能成為實際現金支出，需由財務替換單價。

### 同一個 16 週專案的 AI 對照

| 項目 | 一般開發：16 週／4 個月 | AI 試算：13 週／3 個月 |
| --- | --- | --- |
| 工程人力 | NT$1,536,000 | NT$1,240,320 |
| IT／QA 人力 | NT$144,000 | NT$144,000 |
| Codex Pro 20x | NT$0 | NT$38,400 |
| 主機／備份／監控 | NT$12,000 | NT$9,000 |
| 獨立安全檢視 | NT$60,000 | NT$60,000 |
| Apple Developer | NT$3,168 | NT$3,168 |
| 小計 | NT$1,755,168 | NT$1,494,888 |
| 20% 預備金 | NT$351,034 | NT$298,978 |
| 總額 | NT$2,106,202 | NT$1,793,866 |

### 可複算公式

```text
AI 工程工時淨節省率 = 可協助工時占比 × 該部分淨節省率
工程工時 = 基準週數 × 工程師人數 × 40 × (1 − AI 工程工時淨節省率)
IT／QA 工時 = 基準週數 × 每週 IT／QA 小時（不打折）
估計曆週 = max(8, ceil(基準週數 × (1 − AI 工程工時淨節省率)))
計費月數 = ceil(估計曆週 ÷ 4.345)
AI 訂閱 = 席次 × 每席美元月費 × 預算匯率 × 計費月數
開發總額 = (工程人力 + IT／QA + AI + 主機 + 安全檢視 + Developer 年費) × (1 + 預備金比例)
```

此模型的人數欄位只改變費用，不代表增加人數就自動縮短工期。計費月數按整月向上估；實際開通日、既有訂閱與帳單另校正。8 週下限是規劃保護值，不是技術驗證後的最短交付保證。

### 上線後第一年的維護不能漏算

以每月 8～16 小時維護、NT$1,200／時估算，人力約 **NT$115,200～230,400／年**；主機按 NT$3,000／月另計 **NT$36,000／年**；Apple Developer 約 **NT$3,168／年**。若全年續用 2 席 Pro 20x，再加 **US$4,800／年，依規劃匯率為 NT$153,600**。合計約 **NT$307,968～423,168／年**，未加年度預備金、Google／Jamf／Twocanoes、新功能或重大 macOS 升級專案。

這是穩定期維護假設；若簽署憑證、Google 登入政策、LDAP、PSSO API 或 macOS 大版本變更，需另外估算。公司既有共用基礎設施與訂閱應按增量或分攤列帳，避免重複計費。

### 採購與自研如何比較

XCreds 小型套裝 US$600 起的軟體費，不能直接與包含數月人力的自研總額比較。採購路線也要加導入、主機、驗收及維運；自研則增加程式責任與長期修補。若只是省授權費，先驗證現成產品通常更合理；若有產品化、客製政策或自主掌握需求，才以總持有成本審查自研。不得用未驗證的 AI 20 倍加速，把數月專案寫成幾天交付。

## 08 驗收、遷移與必要交接文件

### PSSO 專用驗收表

此表補充主手冊 26 項測試；不取代主手冊七種使用情境。**所有項目初始均為未測。**

| 編號 | 動作 | 通過標準 | 初始狀態 |
|---|---|---|---|
| P01 | 固定版本、從乾淨環境建置／安裝 | App、服務、設定及來源版本一致；簽署／授權可追溯 | 未測 |
| P02 | 全新機 ADE 與 Google 登入 | 正確員工身分建帳、MFA 記錄、短帳號與權限正確 | 未測 |
| P03 | 檢查 PSSO 裝置與使用者註冊 | 兩者均可診斷，重新註冊及拒絕流程有紀錄 | 未測 |
| P04 | Google／本機同為 B 的冷開機 | 一次 B 解 FileVault 並進桌面，無額外不必要登入 | 未測 |
| P05 | 使用中 Google A→B，立即重開 | 記錄 A 與 B 在 FileVault 的接受結果、線上驗證與同步證據 | 未測 |
| P06 | 關機多日後雲端改 B | 含憑證／權杖過期，結果符合核准政策 | 未測 |
| P07 | 無網路與離線寬限到期 | 允許／拒絕及重連恢復符合書面政策 | 未測 |
| P08 | 只記得 B、忘記 A | 受控復原、PRK、舊 keychain 結果完整，沒有未告知資料損失 | 未測 |
| P09 | Google 停權／橋接／LDAP 故障 | 錯誤分類正確，沒有把故障誤判成密碼已改 | 未測 |
| P10 | Google Prompt 同意、拒絕、逾時 | 首次 MFA 符合政策；若另要求 FileVault MFA，須獨立驗收 | 未測 |
| P11 | PRK 與管理員救援 | 恢復本機存取，證據不暴露復原金鑰 | 未測 |
| P12 | TLS／LDAP／簽署金鑰輪替及服務重啟 | 裝置信任可維持或依程序重建，無長期登入阻斷 | 未測 |
| P13 | 更新／還原 App、服務與設定 | 能回到已驗收版本；權杖、註冊與 keychain 一致 | 未測 |
| P14 | 從現行 Connect 遷移及回復 | 不存在兩套競爭同步；失敗可依程序恢復可登入狀態 | 未測 |
| P15 | 日誌與安全檢視 | 密碼、權杖、LDAP 私鑰及 PRK 不出現在日誌／遙測 | 未測 |
| P16 | 5～10 人觀察試點 | 重大登入阻斷已處理，驗收負責人核准下一批 | 未測 |

### 遷移順序

1. 先保留現行 Connect 設定及可用復原途徑，確認測試機備份、PRK 與受控管理帳號。
2. 在獨立 Scope 驗證新 PSSO；不把「描述檔已送達」當註冊或 FileVault 已成功。
3. 以變更單指定切換時間、登入元件與唯一密碼同步責任；不要先移除救援途徑。
4. 依選定實作的支援流程完成 PSSO 註冊及原設定退出，確認舊登入介入與同步已停用。
5. 冷開機、改密碼、離線及復原通過後才擴大；若失敗，按測過的程序恢復已驗收版本。

不能假設單純刪除 PSSO 描述檔會自動恢復原帳號、keychain 或舊登入機制；回復同樣要實測。

### 必須交付的文件

| 文件 | 內容 | 責任人 |
|---|---|---|
| 方案決策紀錄 | 為何採購／自研、支援矩陣、排除範圍、是否要求每次 MFA | IT 負責人 |
| 架構與資料流 | 客戶端／橋接／Google／MDM 邊界、金鑰與憑證責任 | 開發與資安 |
| 授權與建置清單 | 原始碼 commit、所有 LICENSE／相依套件、簽署、公證、SBOM | 開發負責人 |
| 環境與設定表 | 版本、端點、識別碼、政策、機密保管位置；不記錄機密值 | Jamf／Google 管理員 |
| 驗收與缺陷表 | P01–P16、主手冊情境、實際結果、證據與未解缺陷 | QA／服務台 |
| 發版與回復手冊 | 更新批次、停止條件、復原途徑、PRK 使用及還原演練 | 維運負責人 |
| 服務維護計畫 | 主機、憑證、金鑰輪替、備份、故障處理與值班 | 基礎設施負責人 |
| 成本與 AI 效益紀錄 | 工時、返工、品質、訂閱／追加費、預算更新與年度維護 | 專案負責人 |

下載：[決策與交接範本](/downloads/psso-project-template.md) · [環境與設定表](/downloads/psso-environment.csv) · [PSSO 驗收 CSV](/downloads/psso-acceptance.csv) · [四種方案預算 CSV](/downloads/psso-budget.csv)。請填入公司受控系統；本網站下載資產目錄不存正式員工資料或機密。

## 09 官方來源、維護與版本紀錄

查核日期 2026-09-22。產品行為與價格會變動；正式部署前固定實際版本並重新核對。以下來源支持產品事實；**工期、人力費率、匯率、AI 加速率、主機額度與預備金都是本篇規劃假設，不是原廠報價或效能承諾。**

| 編號 | 文件 | 用途 |
|---|---|---|
| A04 | [Apple PSSO 設定][A04] | 驗證方法、政策、裝置與使用者註冊 |
| A05 | [Apple Platform SSO][A05] | 擴充 App 必要條件、版本、方法與網路 |
| A08 | [Apple PSSO 擴充開發][A08] | 開發介面、PSSO 2.0 與 Key Service |
| A09 | [Apple Developer Program][A09] | 年費與簽署資格 |
| J01 | [Jamf FileVault 登入接續][J01] | 現行一次密碼基準 |
| J02 | [Jamf Google 密碼同步][J02] | Self Service+／LDAP 路徑 |
| J27 | [Jamf Simplified Setup][J27] | ADE、PreStage、支援 IdP 與 App |
| I01 | [Microsoft PSSO 概覽][I01] | Company Portal、Password／Secure Enclave 差異 |
| I02 | [Okta PSSO 與 Jamf][I02] | Okta Verify 與部署設定 |
| I03 | [Okta 版本／FileVault／keychain][I03] | 方法與政策限制；不能直接外推至 Google |
| I04 | [Ping PSSO for macOS][I04] | PingFederate、PingID、PingOne 與版本需求 |
| I05 | [Microsoft PSSO 設定目錄][I05] | macOS Platform SSO 設定與註冊 |
| I06 | [Microsoft PSSO 登入情境][I06] | FileVault／登入政策與 Attempt／Require |
| G10 | [Google OpenID Connect][G10] | 身分權杖；不是 Google 密碼下載 API |
| G01 | [Google Secure LDAP][G01] | 方案資格與帳密驗證服務 |
| X01 | [Xpsso 概覽][X01] | Google 橋接與 BSD 類型開源說明 |
| X02 | [Xpsso Quick Setup][X02] | App、服務、OIDC／LDAP、DNS／TLS |
| X03 | [Xpsso Admin Guide][X03] | Jamf PreStage 操作 |
| X04 | [Xpsso 版本紀錄][X04] | 固定 App／service 版本 |
| X05 | [XCreds 官方價格][X05] | 含 Xpsso 的套裝方案與起購額 |
| X06 | [Xpsso Mac 端 LICENSE][X06] | 三條款授權；服務端仍需另核對 |
| X07 | [Twocanoes GitLab 遷移公告][X07] | App／service 原始碼位置，避免沿用失效連結 |
| O01 | [OpenAI Codex／Work Pricing][O01] | Pro 20x 為額度、消耗與額外費用；非速度保證 |

版本 1.5：新增 O365／Google 選型入口、Entra／Okta FileVault Password 文件、Ping 支援邊界、PSSO 同步與離線政策說明；新增 10 項 Entra 未測案例，專案集中至 Project-macOS-IDP。

版本 1.4：新增三種登入方案的優缺點與七種情境比較；說明 Secure Enclave 硬體保護與 PSSO 驗證模式的差異。比較表與主手冊共用同一份來源。

版本 1.3：新增 PSSO 獨立篇章、兩張可下載圖、IdP 支援表、Google／Twocanoes 導入、16 項 PSSO 驗收、自研里程碑、Pro 20x 與成本試算。公司測試機尚未實測，未修改任何正式裝置。

[A05]: https://support.apple.com/en-za/guide/deployment/dep7bbb05313/web
[A04]: https://developer.apple.com/documentation/devicemanagement/configuring-platform-single-sign-on
[A08]: https://developer.apple.com/documentation/authenticationservices/creating-extensions-that-support-platform-sso
[A09]: https://developer.apple.com/programs/whats-included/
[J01]: https://support.jamf.com/en/articles/11003606-filevault-behavior-with-jamf-connect
[J02]: https://learn.jamf.com/r/en-US/jamf-connect-documentation-current/Password_Syncing_with_Google
[J27]: https://learn.jamf.com/r/en-US/jamf-pro-documentation-current/Configuring_Simplified_Setup_for_Platform_Single_Sign-On_
[I01]: https://learn.microsoft.com/en-us/entra/identity/devices/macos-psso
[I02]: https://help.okta.com/oie/en-us/content/topics/oda/macos-pw-sync/configure-macos-psso-jamf.htm
[I03]: https://help.okta.com/oie/en-us/content/topics/oda/macos-pw-sync/about-psso-version-history.htm
[I04]: https://docs.pingidentity.com/pingone/strong_authentication_mfa/p1_pid_psso_macos_config.html
[G10]: https://developers.google.com/identity/openid-connect/openid-connect
[G01]: https://knowledge.workspace.google.com/admin/apps/about-the-secure-ldap-service
[X01]: https://twocanoes.com/knowledge-base/xpsso/
[X02]: https://twocanoes.com/knowledge-base/quick-setup-for-xpsso-service/
[X03]: https://twocanoes.com/knowledge-base/xpsso-admin-guide/
[X04]: https://twocanoes.com/products/mac/xcreds/xpsso-history/
[X05]: https://twocanoes.com/products/mac/xcreds/#pricing
[X06]: https://gitlab.com/twocanoes/xpsso/-/raw/main/LICENSE
[X07]: https://twocanoes.com/knowledge-base/moving-from-bitbucket-to-gitlab/
[O01]: https://learn.chatgpt.com/docs/pricing

[I05]: https://learn.microsoft.com/en-us/intune/device-configuration/settings-catalog/configure-platform-sso-macos
[I06]: https://learn.microsoft.com/en-us/intune/device-configuration/settings-catalog/configure-platform-sso-scenarios-macos
