# Google × Jamf × FileVault 維運工作手冊

文件編號 IT-MAC-ID-001｜版本 1.7｜官方資料查核日 2026-09-22｜適用：Google Workspace／Cloud Identity、Jamf Pro、Jamf Connect Login、Self Service+ 管理的 Mac。第 06 節提供完整 Google 設定包；第 03 節另比較 PSSO 與 Google 第三方橋接方案；第 10 節新增永久離線使用限制的待開發支線。

文件狀態：**已依官方文件交叉查核；公司測試機尚未執行驗收。** 本手冊中的設定值為候選部署基準；部署前填寫環境紀錄並完成測試。頁面不連線管理任何 Mac，不收集帳號、密碼或復原金鑰。

## 01 目標、適用範圍與共同用語

本流程的目標是：**新員工以 Google 身分開始使用 Mac；正常冷開機只輸入一次本機密碼，解鎖 FileVault 後接續進桌面；桌面端定期檢查 Google 密碼；不同步時由使用者完成更新，讓下一次開機使用更新後的本機密碼。** [J01] [J02] [J03]

「只輸入一次」指**帳號已建立、FileVault 已完成啟用、登入設定驗收成功後的正常冷開機**。首次 ADE／Setup Assistant、密碼不同步後的修復、復原金鑰救援，不在一次輸入的承諾內。Google 手機提示 MFA 與鍵盤輸入密碼的次數分開計算。

| 用語 | 同事應如何理解 |
|---|---|
| FileVault／檔案保險箱 | 保護磁碟資料。此方案在開機時，以該 Mac 已持有的本機使用者憑證解鎖；不是拿這次輸入向 Google 即時驗證。 |
| Jamf Connect Login | 登入視窗元件；首次透過 Google OIDC 登入並建立／對應本機帳號。 |
| Self Service+ 帳號管理 | 桌面端的帳號與密碼管理功能；需啟用並設定 IdP，不是只安裝 Self Service+ 就完成。舊文件可能稱 Jamf Connect menu bar app。 |
| Google OpenID Connect（OIDC） | Google 網頁身分驗證流程，可依 Google 政策進行 MFA；不是持續取得新密碼的服務。 |
| Google Secure LDAP | 本流程桌面端驗證網路密碼的服務。以 LDAP 憑證建立安全連線，再驗證使用者；不能從伺服器下載新密碼明文。 |
| A、B | A＝Mac 最後完成同步的密碼；B＝之後在 Google 改過的新密碼。兩者只是狀態代號，不能填入真實密碼。 |
| PRK | FileVault 個人復原金鑰；必須由 Jamf Pro 託管並限制檢視權限。 |

### 此設計的安全邊界

- FileVault 接續登入會略過這次開機的 Jamf Connect Google 網頁驗證。因此**不是每次開機都重新確認 Google 密碼有效，也不會在此階段要求 Google Prompt**。[J01]
- 若雲端已由 A 改成 B，但 Mac 尚未完成更新，本機 A 仍可能解鎖磁碟並進桌面。外部密碼變更不會立刻撤銷離線本機存取。[J03]
- 同步提示發生在使用者已進桌面後。`RequireSignIn` 也不能當成「不同步就封鎖桌面」的控制。[J05]
- 本部署基準不使用 Platform SSO。PSSO 是另一條值得評估的整合路徑，Google 也已有第三方 Xpsso 橋接文件；完整選型與未驗證的 FileVault／MFA 能力見第 03 節。不能只加入通用 PSSO payload 就視為完成切換。[J28] [X01]

## 02 環境檢查與必要條件

先記錄版本與現況，再調整設定。表內「待確認」必須由公司環境的負責人完成；不可把這份手冊的查核日期當成裝置驗收日期。

| 項目 | 必要條件／檢查重點 | 驗收紀錄 |
|---|---|---|
| 測試範圍 | 公司測試 Mac、測試 Google 帳號、備援管理員與可用復原方式 | 待確認 |
| macOS／硬體 | 記錄實際 macOS 版本、build、晶片；確認符合當次 Jamf Connect／Self Service+ 系統需求 | 待確認 |
| Jamf Pro／授權 | MDM 註冊有效；有部署設定描述檔、PKG、庫存、PRK 檢視所需角色；授權涵蓋 Connect 帳號管理功能 | 待確認 |
| Google 租戶 | 帳號由 Google 驗證；有可用的 Secure LDAP 授權、已啟用 LDAP client，並允許測試使用者驗證 | 待確認 |
| OIDC | Jamf Connect Login 已完成 Google OAuth／OIDC 整合；Client ID、redirect URI、授權使用者範圍正確 | 待確認 |
| Google MFA | 首次 Google 登入依組織政策觸發 Google 提示；用新使用者實測，不以既有登入工作階段代替 | 待確認 |
| 桌面同步 | Self Service+ 的 macOS account management 已啟用；`Provider=GoogleID`，不是僅安裝自助服務 App | 待確認 |
| LDAP 憑證 | 對應 LDAP client 的有效憑證與私密金鑰以 `.p12` 部署到 System Keychain；記錄到期日、權限、輪替責任人 | 待確認 |
| 網路 | 可達 Google 登入端點；桌面端可解析並連到 Secure LDAP `ldap.google.com:636`；時間與 TLS 正常 | 待確認 |
| FileVault | 既有機須確認 On；新機依第 07 節判定 Setup Assistant 已啟用或延後啟用，確認員工解鎖資格與 PRK；profile 送達不等於已加密 | 待確認 |
| 解鎖與復原 | 目標員工可解鎖 FileVault；適用時確認 secure token、volume ownership、bootstrap token；PRK 已託管可授權取回 | 待確認 |
| 描述檔衝突 | 查核所有有效來源中的 `DenyLocal`、`DisableFDEAutoLogin`、密碼政策與其他登入外掛；不能只看新建的 profile | 待確認 |
| 運作與通知 | Self Service+ 在登入後實際啟動；通知允許；一般員工未列入 `PasswordSyncBlockList` | 待確認 |

依據：[J02] [J06] [J12] [J13] [A01] [A02] [G01] [G02]。Google Secure LDAP 授權與支援清單以 [Google 官方支援方案][G01]及租戶管理後台實際可用功能為準；**不能因為有 Workspace 或能使用 Google 登入，就推定有 Secure LDAP**。

查核日的 Google 支援清單包括 Frontline Standard／Plus、Business Plus、Enterprise Standard／Plus、Education Fundamentals／Standard／Plus、Enterprise Essentials Plus；Cloud Identity 另須 Premium。需確認**實際使用者**具有適用授權。Google 管理 LDAP client 需要 Super Administrator；不是一般委派管理角色都有權限。[G01] [G03] [G05] [G06]

### 開工前先保留的資料

記錄測試序號代碼、員工帳號短名稱、macOS／Jamf Pro／Connect Login／Self Service+ 版本、原描述檔名稱與 UUID、原 Scope、原值、LDAP client 名稱及憑證到期日。備份原描述檔至公司受控位置。**不要在交接表、工單截圖或本頁填寫密碼、私密金鑰、PRK 或 OAuth 機密。**

## 03 架構與 PSSO 方案選型

**先依 IdP 選路線：**Google 沿用本篇原方案；O365／Entra 要密碼一致及 FileVault 線上驗證時，優先評估 PSSO Password＋Microsoft 官方擴充。詳見新增的[O365／Google 選型與故障速查](/decision)。這是方案建議，不代表公司已決定更換 IdP 或完成實機驗收。

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

**新增獨立篇章：[PSSO 導入與自主開發評估](/psso)。**包含已查核 IdP、Google／Twocanoes 部署、架構與生命週期圖、自研工期、Codex Pro 20x 費用與可調整的預算模型。本章保留現行方案的選型摘要。

<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>


### PSSO 是什麼？為什麼值得納入？

**Platform SSO（PSSO）是 Apple 內建的企業身分整合框架。**它能讓 macOS 配合身分提供者處理登入、帳號與單一登入，但必須有相容的 SSO 擴充 App、IdP 實作及 MDM 設定。Jamf Pro 可負責部署這些元件；Jamf Pro 的 PSSO 設定畫面本身不會把 Google 變成相容的 IdP。[J28]

**PSSO 可能更符合「登入當下驗證最新密碼」的目標。**本手冊目前的 Connect 路徑，是先用本機憑證進桌面再同步；具完整支援的 PSSO Password 路徑，可在 FileVault 解鎖階段依政策向 IdP 驗證，成功後更新本機密碼。這是值得比較的實質差異，不應省略。[A05] [A07]

### 三種路徑要分開看

| 路徑 | 已查核的能力／條件 | 目前定位 |
|---|---|---|
| Google ＋ Jamf Connect Login ＋ Self Service+ | OIDC 首次登入；FileVault 本機接續登入；桌面透過 Secure LDAP 檢查與同步。[J01] [J02] | 本手冊第 04–13 節的部署與驗收基準；公司裝置仍待實測 |
| Google 直接搭配通用 PSSO 設定 | Google OIDC 支援不等於完整 PSSO 整合。查核時尚未取得 Google 原生擴充與對應部署指南；Jamf Simplified Setup 文件列出的 IdP 為 Okta、Entra ID、Ping Identity。[G10] [J27] | 不提供可直接套用到 Google 的假設性 profile |
| Google ＋ Twocanoes Xpsso ＋ Jamf Pro | 供應商已提供 Google PSSO 橋接與 ADE／Jamf 設定文件；需 Xpsso App、微服務、公開 DNS／可信 TLS、Google OIDC 與 Secure LDAP。[X01] [X02] [X03] | 有具體產品與文件的替代方案，可規劃概念驗證；不是「Google 完全不能用 PSSO」 |

**版本證據：**Xpsso 自己的版本頁列出 **1.0，App build 10020／service build 1070，2026-05-13 發行**。不能把另一產品 XCreds 6.0 的 PRE-BETA 標籤套到 Xpsso 1.0，也不能把 XCreds 的「FileVault Unlock」功能直接當成 Xpsso 的 pre-boot PSSO 驗證證據。[X04]

### PSSO 能改善什麼，仍有哪些前提？

| 需求 | Apple 框架提供的方向 | Google／Xpsso 導入時的判定 |
|---|---|---|
| ADE 首次建帳 | macOS 26 起可在 Setup Assistant 註冊 PSSO、建立身分對應帳號。[A05] | Xpsso 有 ADE 文件；首次流程可能多次要求憑證，仍需實測。[X02] |
| 雲端改 B，本機仍 A | Password 方法搭配 FileVault 登入政策，可在可連線且整合完整時驗證 IdP 密碼。[A07] | 需確認 Xpsso 版本支援此政策並在測試機驗證，不能從 ADE 成功直接推定 FileVault 成功 |
| FileVault 網頁 MFA | Apple 文件將 web-based authentication 列為 macOS 27 功能。[A05] | 目前未取得 Xpsso 1.0 對此流程及 Google Prompt 的明確支援證據，標為待供應商確認、待測 |
| 維持本機與雲端密碼一致 | PSSO Password 方法可支援密碼同步。[A06] | 使用 Secure Enclave Key 的雲端無密碼驗證，不等於維持本機與 Google 密碼相同 |

Apple 要求 FileVault 前能到達 IdP；此時不能依賴尚未可用的 VPN、network relay 或 802.1X。Apple 也明示密碼同步必要時仍會詢問舊密碼。因此 **PSSO 不能保證每一種密碼變更／復原情境永遠只輸入一次**。macOS 27 網頁驗證另需擴充與 IdP 配合；查核的 Apple 頁面仍帶有部分功能為預發行內容的提示。[A05]

`UserSecureEnclaveKey` 的目的，是用 Secure Enclave 保護的金鑰向 IdP 驗證；使用者仍可能用獨立本機密碼登入 Mac。若公司要求「本機密碼＝Google 密碼」，應優先評估支援的 Password 同步流程，而不是把 Secure Enclave Key 當作密碼同步開關。[A06]

### Xpsso 候選架構與導入門檻

**Jamf Pro／ADE → 部署 Xpsso App 與 PSSO 描述檔 → macOS Platform SSO ↔ Xpsso 微服務 ↔ Google OIDC／Secure LDAP。**這是供應商文件所述元件關係的整理，尚非本公司的已驗收架構。[X02] [X03]

採用前需明確分配微服務維運、可用性、憑證輪替與 OAuth／LDAP 機密保管責任。它增加了身分服務元件；不能把評估結果寫成「多勾一個 PSSO 設定即可」。Jamf Pro 仍可保留為 MDM；是否取代 Connect 登入與桌面密碼管理，需依實際功能與遷移結果決定。

以本手冊七種情境為 PSSO 的共同驗收案例，另外確認：

1. Apple silicon、實際 macOS build、Xpsso App／service 的支援矩陣與所選驗證方法。
2. Mac 關機期間 Google A→B；開機可連線時，能否直接用 B 解鎖 FileVault、是否另問 A、是否接續進桌面。
3. 網頁 MFA 是否真的在 FileVault 階段發生，以及 Google Prompt 的同意／拒絕／逾時結果。
4. 離線寬限、帳號停權、微服務或 LDAP 故障時的行為，以及 PRK 復原。
5. 既有 Connect 使用者的遷移、keychain 保留與回復程序；不要在正式 Scope 同時試跑兩套密碼管理設定。

**選型結論：**若目前只要求正常冷開機一次密碼、接受桌面後同步，現有 Connect 基準可先做驗收。若要求開機當下檢查最新 Google 密碼，PSSO 應列入優先比較；Google＋Xpsso 是可具體評估的候選，但 FileVault／Google Prompt 端到端能力仍待確認，不能宣稱已經解決。

以下為目前 Connect 部署基準的元件分工。

### 首次建立帳號的路徑

**Apple Business Manager／ADE → Jamf Pro 下發套件與設定 → Jamf Connect Login → Google OIDC ＋組織 MFA → 建立員工本機帳號 → 建立 FileVault 解鎖與復原能力。** [J07] [J08] [J09]

Google OIDC 登入頁上輸入的密碼可經 Jamf 的 Google passthrough 路徑用於初始本機密碼；Google 專屬參數要成組設定。這不代表每次開機都會從 Google 再拿一次密碼，也不代表既有帳號能在 Login Window 強制完成密碼同步。[J08] [J09]

### 日常開機的路徑

**FileVault → 本機密碼驗證 → 憑證接續登入 → macOS 桌面。** 啟用接續登入後，使用者不會再次看到 Jamf Connect 登入要求。[J01]

### 桌面密碼同步的路徑

**Self Service+ → Google Secure LDAP → 驗證目前保存／使用的網路憑證 → 必要時要求使用者重新驗證與同步 → 更新本機密碼 → 下次冷開機驗收。** LDAP 驗證不是 Google 網頁 MFA 流程。[J02] [G02]

> **方案建議：**OIDC 與 LDAP 不是二選一：本手冊首次 Google 登入使用 OIDC；桌面持續密碼同步使用 Secure LDAP。只設定其中一邊，不會自動補齊另一邊。

## 04 完整生命週期與 A／B 密碼

### 首次部署

1. IT 完成環境檢查、Google 整合、Jamf 測試 Scope 與復原準備。
2. 全新 Mac 透過 ADE 註冊；Jamf 在登入前部署 Connect 與必要設定。
3. 員工在 Google 畫面輸入密碼 A，依公司政策完成 Google Prompt。
4. Jamf Connect 建立員工本機帳號，透過須經第 12 節 T01 驗收的 passthrough 讓初始本機密碼也是 A。
5. 確認員工 token／解鎖資格與備援路徑；FileVault 若已在 Setup Assistant 開啟，就驗證授權與 PRK；若尚未開啟，再用核准方法啟用並確認 PRK 託管。
6. Self Service+ 在員工桌面完成第一次帳號驗證與密碼一致性檢查；不得預設第一次設定完全不需額外提示。
7. 完全關機後再開機，驗證一次 A 即可到桌面，再交機。

### 正常使用

1. 冷開機，在 FileVault 輸入本機 A。
2. 成功解鎖後接續登入，直接進桌面。
3. Self Service+ 啟動，依排程／網路變化執行檢查；實際執行時點以測試結果與日誌確認。
4. Google 仍為 A：維持同步，無需使用者改密碼。
5. Google 已改成 B：重新驗證成功後，引導使用者以本機 A 授權更新為 B。
6. 更新成功後，下次冷開機以 B 解鎖並接續登入，進入下一個相同循環。

### 對照表

| Google | 本機 | 網路／時點 | 冷開機使用哪個 | 後續處理 |
|---|---|---|---|---|
| A | A | 已完成部署 | A，一次到桌面 | 依設定週期檢查 |
| B | A | Google 剛在其他地方更改，Mac 尚未同步 | A；B 尚不能當成本機解鎖密碼 | 進桌面後完成網路重新驗證與同步 |
| B | A | Mac 離線或 LDAP 不可達 | A 仍可能有效 | 顯示／記錄無法驗證；恢復連線再處理，不能宣稱同步成功 |
| B | B | 更新完成且冷開機驗收成功 | B，一次到桌面 | 繼續例行檢查 |
| 帳號停權 | A | 雲端已拒絕使用者 | 此方案的本機 A 仍可能有效 | 進入離職／遺失／帳號停權流程；不能只靠同步通知封鎖桌面 |
| B | A，但忘記 A | 無法解鎖或無法授權同步 | 不可承諾只輸入 B 即可修復 | 授權管理員依 Apple／Jamf 復原程序處理 |

這些是此架構的預期行為；公司測試結果請記錄於第 12 節。來源：[J01] [J02] [J03]。

### 七個實際使用情境：這一次開機要輸入哪個密碼？

先確認**這台 Mac 的本機密碼是否已完成更新**，再決定使用 A 或 B。「Google 已改密碼」與「這台 Mac 已同步」是不同的完成點。以下 A／B 都是狀態代號，不能記錄真實密碼。

| 情境 | Google／本機狀態 | 本次輸入與處理 |
|---|---|---|
| 01 全新 Mac 首次交機 | Google A／本機帳號尚未建立 | Google 首次登入用 A ＋組織 MFA；首次設定不承諾只輸入一次 |
| 02 新密碼已同步完成 | B／B | 冷開機用 B；驗證一次到桌面 |
| 03 改完 Google 就重新開機 | Google B／本機可能仍 A，也可能已 B | 本機未更新就用 A；本機已更新就用 B；重新開機不會自動完成同步 |
| 04 關機期間在別處改密碼 | B／A | 先用 A 進桌面，連線後完成 A→B，之後冷開機用 B |
| 05 開機時離線 | Google 無法在線確認／本機 A | A 仍可能可用；雲端狀態記為未知，恢復連線再驗證 |
| 06 只記得 B，忘記本機 A | B／A，但不知道 A | 進入授權 IT 復原流程，不能承諾輸入 B 就能解鎖 |
| 07 有網路但 LDAP 驗證失敗 | Google 尚未成功驗證／本機保留原值 | 先排查錯誤；不能把驗證失敗直接當成改密碼或同步完成 |

#### 情境 01：全新 Mac，透過 ADE 首次交機

**前提：**這裡的 ADE 是 Apple「自動裝置註冊」，不是 Active Directory。公司已完成 PreStage、Google OIDC、Secure LDAP、套件、授權與復原準備，員工本機帳號尚未建立。[J07]

1. Mac 透過 ADE 進入公司管理流程，由 Jamf Pro 在首次登入前部署 Connect、Self Service+ 與必要設定。
2. 員工在 Google 頁面輸入密碼 A，依公司政策完成 Google Prompt；Connect 透過須經第 12 節 T01 驗收的 Google passthrough 建立對應本機帳號，使初始本機密碼也是 A。[J08] [J09]
3. **先檢查 FileVault 實際狀態。**若 Setup Assistant 已開啟 FileVault，驗證員工解鎖資格與 PRK 託管；若尚未開啟，再使用單一核准方法啟用。macOS 26.4 起 Setup Assistant 預設開啟 FileVault，不能承諾每台新機都會先完成 Google 建帳才啟用加密。[A02]
4. 進桌面後完成 Self Service+ 帳號初始化及 A／A 一致性檢查；第一次設定可能有額外提示。
5. 完全關機再開機，驗證一次 A 能進桌面；交機前依第 12 節完成 A→B、B 解鎖及復原路徑驗收。

**預期結果：**Google A／本機 A，FileVault 已開啟、員工能解鎖、PRK 已託管。一次密碼的承諾從已完成首次部署與初始化後的正常冷開機開始，不能套用到整段首次設定。

#### 情境 02：員工已改密碼，而且本機已同步完成

**前提：**Google 已由 A 改成 B；員工已在這台 Mac 以 B 完成網路驗證，並成功完成本機 A→B 更新。Google 網頁顯示改密碼成功，本身不足以證明本機已更新。[J02] [J03]

1. 完全關機後開機，在 FileVault 輸入 **B**。
2. 確認解鎖後接續進桌面，不出現第二個 Google 登入要求。[J01]
3. 在受控驗收下確認 A 不再通過同一帳號的普通解鎖，並記錄結果；不要反覆猜測密碼。
4. Self Service+ 於桌面運作，返回定期憑證檢查循環。

**預期結果：**Google B／本機 B，正常冷開機一次 B 到桌面。若桌面本機更新顯示成功，但 B 仍無法解鎖 FileVault，停止擴大部署，依第 10 節處理；不要關閉 FileVault 來繞過問題。

#### 情境 03：使用中更改 Google 密碼，隨即重新開機

**前提：**員工已在 Mac 桌面，把 Google A 改成 B 後立即重新啟動。**不能只憑「已改 Google」判定這次開機必須輸入 B。**先分辨本機同步是否完成。[J02] [J03]

- **本機尚未完成更新：**FileVault 仍用 A。進桌面後，確認 LDAP 可達，以 B 重新驗證，再依提示以本機 A 授權更新為 B；成功後再次冷開機驗證 B。
- **本機已完成更新：**FileVault 用 B，接續進桌面；若是更新後第一次冷開機，記錄 B 解鎖及一次登入結果。
- **同步過程遭中斷或結果不明：**先按支援流程確認目前狀態，不要宣稱一定用 A 或 B，也不要連續猜測。

**預期結果：**兩條成功路徑最終都回到 Google B／本機 B。重新開機本身不會取得雲端新密碼，也不會自動完成本機同步。桌面修復同步所需的額外輸入，與正常冷開機的登入次數分開計算。

#### 情境 04：Mac 關機很久，Google 密碼已在別處更改

**前提：**Mac 關機前最後成功同步的密碼是 A；關機期間，員工在手機或其他電腦把 Google 改成 B。這台 Mac 尚未完成本機更新。[J03]

1. 冷開機在 FileVault 輸入 **本機 A**，接續進桌面。這時 B 尚不是這台 Mac 的本機解鎖密碼。
2. 恢復連線，確認 Self Service+ 已啟動且 LDAP 可用，以新 Google 密碼 B 完成網路驗證。
3. 按提示以本機 A 授權更新為 B。
4. 更新成功後完全關機再開機，以 B 驗證 FileVault 解鎖及一次進桌面。

**預期結果：**這次先用 A；完成同步並驗收後，下次正常冷開機改用 B。**遠端更改 Google 密碼不會立即撤銷離線本機 A。**設備遺失、帳號停權或離職時，須另外啟動公司的事件處理與裝置控制流程。

#### 情境 05：開機時沒有網路

**前提：**帳號、FileVault 與接續登入已驗收；Mac 離線，只知道最後完成更新的本機密碼 A。Google 此刻可能仍是 A，也可能已改為 B。[J01] [J03]

1. 依既有 FileVault 解鎖資格使用本機 A；A 仍可能解鎖並接續登入。
2. Self Service+ 無法在線驗證時，把雲端密碼狀態記為**未知**；舊的「已同步」紀錄不能證明此刻仍一致。
3. 恢復連線後重新檢查：Google 仍為 A 就維持一致；若已改 B，再完成 B 網路驗證、本機 A→B 更新及冷開機驗收。

**預期結果：**離線期間保留本機使用能力；重新成功驗證後，才判定一致或引導同步。離線不等於一定不同步，也不能承諾離線 Mac 在固定分鐘數內完成同步。

#### 情境 06：只記得 Google 新密碼 B，忘記本機 A

**前提：**Google 已改為 B，本機仍為 A，員工忘記 A。員工可能停在 FileVault，也可能仍有尚未登出的桌面工作階段。[A03]

1. 若仍在桌面，保留工作與可用工作階段，聯絡 IT；若停在 FileVault，停止反覆猜測，先完成公司規定的使用者及裝置身分核對。
2. 授權管理員確認可用的 PRK 或其他核准復原路徑，依 Apple／Jamf 與公司程序處理。不得把 PRK、密碼或私密金鑰抄入本手冊、普通工單或截圖。
3. 復原後重新確認 Google 憑證、本機密碼、員工 FileVault 解鎖資格與 PRK 狀態，再執行冷開機驗收。

**預期結果：**完成受控復原後恢復可登入、可解鎖及可持續同步的狀態。不能承諾直接輸入 B 就能修復，也不承諾此情境只輸入一次。管理員重設與已知舊密碼的正常變更不同，可能需重建 login keychain，須按 Apple 說明處理並告知使用者。[A03]

#### 情境 07：可以上網，但 Secure LDAP 驗證失敗

**前提：**員工已用目前本機密碼進入桌面，Self Service+ 卻無法完成 Google Secure LDAP 驗證。瀏覽器能上網、Google OIDC 或 Google Prompt 成功，都不能單獨證明 LDAP 可用。[J02] [G02]

1. 把狀態記為未知，記錄錯誤時間、發生階段及不含機密的錯誤訊息，不直接推定 Google 密碼已改變。
2. 依第 10 節檢查 DNS、TCP 636、TLS、LDAP 用戶端憑證與私密金鑰、效期、client 啟用狀態、使用者授權及驗證權限；必要時排查服務錯誤與配額。[G02] [G06] [G08]
3. 排除原因後重新驗證正確 Google 憑證：一致就維持；確認需同步才由使用者完成本機更新，再驗收 FileVault。

**預期結果：**以本次成功驗證確認真實狀態；只有本機變更成功並通過 FileVault 冷開機驗收，才記錄完成。不要刪除 state plist、修改 `PasswordCurrent` 或關閉 FileVault 來製造成功狀態。LDAP 失敗本身不會把本機密碼換成 B。[J21] [J22]

## 05 Google 整合：OIDC 與 Secure LDAP 分開建置

### A. OIDC：供首次 Google 登入使用

1. 依 Jamf「Creating an OpenID Connect Application Integration for the Login Window」建立／選定 Google Cloud 專案與 OAuth 應用程式。[J10]
2. Google Cloud → APIs & Services → Credentials → Create Credentials → OAuth client ID，依 Jamf 文件使用 **Web application**。公司內部用途使用公司組織下的專案與 **Internal audience**；新版介面可能位於 Google Auth Platform 的 Branding／Audience／Clients。[J10] [G07]
3. 登記 redirect URI（Jamf 範例為 `https://127.0.0.1/jamfconnect`）；Connect 的 `OIDCRedirectURI` 必須完全相同。保存 Client ID 與 Client Secret 到公司核准位置。測試外部個人 Google 帳號確實遭拒，而不是只看登入畫面上的公司網域。[J10] [G07]
4. 在 Jamf Connect Login 設定檔填入 Google provider、Client ID、Client Secret 與回呼值，依第 06 節設定 Google passthrough；Login Window 值須對應同一個 Google OAuth client。[J14] [J24]
5. 以測試 Google 帳號完成網頁登入，驗證公司帳號範圍與 MFA。OIDC 驗證成功只證明登入整合，不代表 LDAP 密碼同步已就緒。
6. 若租戶另有上游聯邦 IdP、無密碼登入、特殊 Google 工作階段政策，先重新驗證 passthrough 能取得用於初始本機帳號的密碼；不要承諾所有登入方式都能自動建立相同密碼。

本手冊不預填租戶 OAuth 參數。交接時必填：專案、Client ID、應用程式類型、redirect URI、允許帳號範圍、設定檔名稱，以及成功登入測試時間。

### B. Secure LDAP：供桌面密碼驗證與同步使用

1. 在 Google Admin Console 的 **Apps → LDAP** 新增或選定公司專用 LDAP client；先確認授權方案及管理權限。[G01] [G03]
2. 設定 **Access permissions → Verify user credentials**，由預設 No access 改為核准的測試 OU／群組。若需查詢使用者，Read user information 使用相應範圍；Read group information 只在實際流程需要時開啟，不預設是所有 Jamf 密碼同步的必要條件。Google 說明權限變更可能需最長 24 小時生效。[G08]
3. 啟用 client，取得用戶端憑證及私密金鑰；依 Jamf 官方步驟轉成 `.p12`。[J11]
4. Jamf Pro → Computers → Configuration Profiles → New，使用 **Computer Level** 的 Certificates payload，上傳 `.p12`、輸入匯出密碼，依 Jamf 官方程序勾選 **Allow all apps access**，部署至測試 Scope。確認憑證及對應私密金鑰進入 **System Keychain**。這項允許存取設定應納入公司憑證保護評估，不能部署後假設只有單一 App 能用。[J12]
5. 在 Self Service+ 的設定中指定 `IdPSettings → Provider = GoogleID`，啟用帳號管理所需授權與設定。[J06] [J13]
6. 確認 DNS、TCP 636、TLS 信任、憑證效期、client 啟用狀態及使用者權限，再以測試使用者在 Self Service+ 驗證。[G02] [J02]
7. 執行一次外部 Google A→B 變更測試。只有「網路可連、Google 新密碼可驗證、使用者完成本機同步」全數通過，才算整合完成。

若 Google 使用第三方 SSO，Secure LDAP 仍需要真正的 Google 使用者帳密，不能直接以第三方 IdP 密碼取代；也不能以 Google Prompt 成功推定 LDAP 已可驗證。[G09]

憑證匯出密碼與私密金鑰不得寫入腳本、參數清單、原始碼或本網站。輪替時先部署新憑證、測試驗證，再依 Google 管理方式撤下舊憑證，避免同時切斷所有 Mac。[G03] [J11] [J12]

憑證轉換範例（先替換安全檔案路徑，匯出密碼由互動提示輸入）：

```bash
openssl pkcs12 -export \
  -out /path/to/generated/google-ldap.p12 \
  -inkey /path/to/saved/google-ldap.key \
  -in /path/to/saved/google-ldap.crt
```

這只是格式轉換，不會啟用 LDAP 或自動派送憑證。Google 的 bind 配額為租戶共用 **4 QPS**；設定短檢查週期與批次觸發時，需合併考量其他 LDAP client，避免所有 Mac 同時集中重試。[G06]

## 06 完整設定包：填參數、匯入與驗證

### Google＋Jamf Connect＋FileVault 設定包

設定包 1.0｜查核：2026-09-22｜公司測試機尚未驗收。

**使用方式：下載設定包 → 填一份參數檔 → 在本機產生設定 → 匯入 Jamf Pro，或複製三份 plist 到對應網域。**本設定包涵蓋首次 Google 登入、桌面密碼同步及 FileVault 接續登入。以既有手冊的 Google 原方案為基準，不使用 PSSO。

[下載完整 ZIP](https://mac-google-filevault-handbook.peimsn.chatgpt.site/downloads/google-jamf-filevault-kit.zip) · [主手冊](https://mac-google-filevault-handbook.peimsn.chatgpt.site) · [26 項公司驗收表](https://mac-google-filevault-handbook.peimsn.chatgpt.site/downloads/acceptance.csv)

#### 一、先確認你已具備哪些條件

下列項目需要由 Google 或 Jamf 核發／部署，不能以通用 XML 自行捏造。已完成者只需核對，不必重建。

| 項目 | 到哪裡做／完成條件 |
|---|---|
| Google OAuth | Google Cloud 專案建立 OAuth Web application；組織用途採 Internal audience，取得 Client ID／Client Secret，登記正確 redirect URI。外部個人 Google 帳號須拒絕。首次 Google Prompt 依組織 MFA 政策執行。 |
| Google Secure LDAP | Google Admin → Apps → LDAP；確認使用者方案支援、client 為啟用狀態，Verify user credentials 授權測試 OU／群組。這不是把 OIDC 改成 LDAP，而是兩條流程分工。 |
| LDAP 憑證 | 由該 LDAP client 取得憑證與私鑰，轉為 `.p12`；Jamf Pro → Computers → Configuration Profiles → Computer Level → Certificates，上傳並輸入匯出密碼，依官方流程設定 Allow all apps access。確認憑證和私鑰進入 System Keychain、未過期。憑證讀取範圍交公司評估。 |
| Jamf 套件與授權 | 測試機已安裝核准的 Jamf Connect Login／Self Service+，另派送有效 Connect license profile；Self Service+ 出現 Account management。只安裝 App 不代表此功能已啟用。 |
| FileVault 與復原 | **本設定包不啟用／關閉 FileVault，也不產生 PRK escrow。**既有機先確認 FileVault On、員工能解鎖、最新 PRK 已託管；新 ADE 機依下方順序及主手冊第 07 節處理。 |
| 單一密碼管理來源 | 不並行啟用 PSSO 密碼同步與本設定；確認沒有其他有效設定要求 DenyLocal=true 或 DisableFDEAutoLogin=true。保留既有授權、帳號對應、管理員及復原設定。 |
| 桌面連線 | Google OIDC 可連線；Secure LDAP 的 DNS、TLS、`ldap.google.com:636` 可達。瀏覽器能開 Google 不等於 LDAP 成功。 |

依據：[Jamf Google 整合流程](https://support.jamf.com/en/articles/12623060-jamf-connect-google-identity-integration-deployment-guide)、[Google 密碼同步](https://learn.jamf.com/r/en-US/jamf-connect-documentation-current/Password_Syncing_with_Google)、[部署 p12](https://learn.jamf.com/r/en-US/jamf-connect-documentation-current/Deploying_a_PKCS12_Keystore_File_using_Jamf_Pro)、[啟用 Self Service+ 帳號管理](https://learn.jamf.com/r/en-US/jamf-connect-documentation-current/Activating_Account_Management_Capabilities_in_Self_Service_Plus)。Jamf 的整合指南適用 Connect 3.x；上線前記錄公司實際版本／build，不以「最新版」代替驗收。

#### 二、只需填一份參數

解壓縮至公司核准的受控工作位置。複製 `settings.example.json` 為 `settings.local.json`，使用純文字編輯器修改；不要在 Git 工作目錄、網站目錄或公開雲端資料夾填真實機密。

| 欄位 | 填什麼 | 是否必改 |
|---|---|---|
| `organization` | 公司顯示名稱，例如「範例股份有限公司」 | 必改 |
| `profile_identifier` | 公司專用唯一反向網域，例如 `tw.company.macos.google-login`；同一套政策更新時保持不變 | 必改；不是 Jamf preference domain |
| `google_client_id` | Google 核發、以 `.apps.googleusercontent.com` 結尾的 Client ID | 必改 |
| `google_redirect_uri` | 預填 `https://127.0.0.1/jamfconnect`；須與 Google 登記值逐字相同 | 核對；既有 URI 不同就改 |
| `network_check_minutes` | 預填整數 `15`；代表檢查間隔，不是同步完成期限 | 可保留試點值；官方預設 60 |
| `support_contact` | IT 分機或服務台名稱，會出現在同步提示 | 必改 |
| `excluded_local_accounts` | 預填 `[]`；需要排除的備援管理員短名稱使用 JSON 雙引號，例如 `["localadmin"]` | 依公司帳號策略；不要放一般員工 |
| `auto_open_app_at_login` | 預填 `true`；員工仍須先手動開啟 App 至少一次。若公司已有受管啟動機制，改成 `false` 並驗證該機制 | 必須確認只保留一種啟動方式 |
| `require_sign_in` | 預填 `true`；未驗證時保留 Self Service+ 登入視窗，不能保證鎖住桌面或強制完成同步 | 可依試點結果調整 |

Google **Client Secret 不填進 JSON**。程式執行時在終端以隱藏方式詢問，並只寫入你指定的受控輸出設定。這不是員工 Google 密碼；不要提供任何員工密碼或 PRK。

參數範本如下，內容中的 `REPLACE_...` 必須替換：

```json
{
  "organization": "REPLACE_COMPANY_NAME",
  "profile_identifier": "REPLACE_PROFILE_IDENTIFIER",
  "google_client_id": "REPLACE_GOOGLE_CLIENT_ID.apps.googleusercontent.com",
  "google_redirect_uri": "https://127.0.0.1/jamfconnect",
  "network_check_minutes": 15,
  "support_contact": "REPLACE_IT_CONTACT",
  "excluded_local_accounts": [],
  "auto_open_app_at_login": true,
  "require_sign_in": true
}
```

#### 三、產生完整設定檔

在解壓縮後的 `google-jamf-filevault` 資料夾開啟終端。需要 **Python 3.9 以上**，僅使用標準函式庫，不需安裝 Python 套件；若管理用 Mac 沒有 Python，可使用下方手動貼上路徑。

```bash
cp settings.example.json settings.local.json
```

填好 `settings.local.json` 後執行：

```bash
python3 render.py --settings settings.local.json --output private-output
```

輸入 Client Secret 時畫面不顯示字元。程式只產生檔案，不連線、不安裝描述檔、不改員工密碼。再次產生時改用新的輸出目錄，例如 `private-output-v2`；程式拒絕覆寫原檔。

產出如下：

| 檔案 | 用途 |
|---|---|
| `Google-Jamf-FileVault.mobileconfig` | 有完整 Payload／UUID／System scope 的描述檔，適合沒有衝突設定的試點環境匯入 Jamf |
| `01-com.jamf.connect.login.plist` | Google 首次登入、初始密碼 passthrough、允許 FileVault 接續登入 |
| `02-com.jamf.connect.plist` | Self Service+ GoogleID、檢查頻率、提示、登入行為 |
| `03-com.apple.loginwindow.plist` | `DisableFDEAutoLogin=false` |

輸出目錄權限 0700、檔案 0600；Login plist 及 mobileconfig **含有 OAuth Client Secret**，不是加密檔。只交給有權的管理員並上傳公司 Jamf；不要寄送一般員工、放進 GitHub 或回傳本手冊網站。產生器處理 XML 特殊字元，避免手動貼入 `&` 等符號造成格式錯誤。

以系統工具確認格式，不會安裝：

```bash
plutil -lint private-output/Google-Jamf-FileVault.mobileconfig
plutil -lint private-output/01-com.jamf.connect.login.plist
plutil -lint private-output/02-com.jamf.connect.plist
plutil -lint private-output/03-com.apple.loginwindow.plist
```

格式 OK 只表示 XML／plist 可解析，不能證明 Google OAuth、LDAP、Jamf 發送或 FileVault 流程成功。

#### 四、套用到 Jamf：選一種方式

##### A. 完整描述檔匯入

適用於新建且已清除設定衝突的測試 Scope。

1. 先備份原設定與 Scope，確認 LDAP 憑證、授權、套件及復原前置項目已就緒。
2. Jamf Pro → **Computers → Configuration Profiles → Upload**，選擇產生的 `Google-Jamf-FileVault.mobileconfig`。這是整份描述檔匯入，不是貼到 Application & Custom Settings 的文字框。
3. 檢查 Computer Level／System、名稱與 payload。新檔是未簽章 XML；若租戶流程要求簽章，依公司程序用 Jamf Connect Configuration 或公司核准憑證處理，不以改副檔名代替簽章。
4. Scope 只指向指定測試機；保存後確認裝置實際收到。既有三個網域如有其他 profile 管理相同鍵，先完成合併／移出測試 Scope，不能期待後下發就一定覆蓋。
5. 確認有效設定與測試結果。**不要再把三份 plist 另外部署一次。**

##### B. 複製 plist 到既有設定

適用於已運作的 Jamf 環境，尤其已有授權、帳號對應、品牌、腳本或管理員政策。先合併必要值，不能用最小基準整份覆蓋現有公司設定。

Jamf Pro → **Computers → Configuration Profiles → New／Edit → Computer Level → Application & Custom Settings → Upload**。依租戶 UI 選擇 plist 上傳或貼入 XML；對應如下：

| 檔案 | Preference Domain 必須填這個 |
|---|---|
| `01-com.jamf.connect.login.plist` | `com.jamf.connect.login` |
| `02-com.jamf.connect.plist` | `com.jamf.connect` |
| `03-com.apple.loginwindow.plist` | `com.apple.loginwindow` |

將每份 `<plist>…</plist>` 完整內容貼到自己的網域；不可把三份黏成一個 plist，不可把整份 mobileconfig 貼進偏好設定框。這三份的布林值是 `<true/>`／`<false/>`，頻率是 `<integer>`，不是字串。

若不使用產生器，也可直接複製 `templates/` 三份檔案，在受控副本替換所有 `__...__`，調整頻率及例外帳號，再逐一 `plutil -lint`。XML 文字中的 `&`、`<` 須分別寫成 `&amp;`、`&lt;`；優先使用產生器避免手動跳脫錯誤。

#### 五、這份設定實際選了什麼

| 階段 | 預填值與意義 |
|---|---|
| 首次 Google 登入 | `OIDCProvider=GoogleID`，使用公司 OAuth；`OIDCUsePassthroughAuth=true`＋`CreateJamfConnectPassword=true`＋`OIDCNewPassword=false` 成組使用。這是初次密碼流程，不是每次從 Google 下載密碼。 |
| FileVault 接續登入 | `DenyLocal=false`＋`DisableFDEAutoLogin=false`。正常冷開機以有效本機密碼解鎖並接續桌面；本次不重新執行 Google MFA。`DenyLocal=false` 也允許登入視窗本機登入，並非只限冷開機。 |
| 桌面同步 | `IdPSettings.Provider=GoogleID`；網路變化觸發檢查，預填每 15 分鐘檢查，提醒文字含 IT 聯絡方式。不是 15 分鐘內保證變更完成；使用者仍需完成提示。 |
| 已儲存憑證 | `AutoAuthenticate=true` 嘗試使用 keychain 已保存的憑證，不能猜出尚未輸入的 Google 新密碼。 |
| 背景啟動 | `AutoOpenAppAtLogin=true` 仍需首次開啟與實測；已有 launch agent 時不要重複使用。 |

設定依據：[Google passthrough 成組鍵](https://learn.jamf.com/r/en-US/jamf-connect-documentation-current/Enabling_PassThrough_Authentication)、[FileVault 行為](https://support.jamf.com/en/articles/11003606-filevault-behavior-with-jamf-connect)、[同步政策](https://learn.jamf.com/r/en-US/jamf-connect-documentation-current/Password_Policy_Settings)、[登入設定](https://learn.jamf.com/r/en-US/jamf-connect-documentation-current/Menu_Bar_Sign-in_Settings)。描述檔封裝依 [Apple ManagedPreferences](https://developer.apple.com/documentation/devicemanagement/managedpreferences) 與 [Apple LoginWindow schema](https://github.com/apple/device-management/blob/release/mdm/profiles/com.apple.loginwindow.yaml)。

若既有流程沒有使用 `CreateJamfConnectPassword`，Jamf 針對 Google 的文件另有 `OIDCUsePassthroughAuth=true`、`CreateJamfConnectPassword=false`／未使用、`OIDCNewPassword=true` 組合。本包固定選用建立 Jamf Connect keychain 的那一組；既有機須確認原流程依賴，不可只從兩組各挑一個值。

#### 六、部署順序：既有 Mac 與全新 ADE

##### 已啟用 FileVault 的既有 Mac

1. 確認員工目前可解鎖、PRK 可由有權 IT 取回；匯出原 profile、Scope 與原設定值到受控位置。
2. 優先使用方式 B 合併。先確認 Self Service+ 的 LDAP 同步能把本機更新到目前 Google 密碼，再測冷開機接續登入。不要把這份新機初始基準當成帳號移轉腳本。
3. 由員工首次開啟 Self Service+ 完成帳號初始化；Jamf 管理通知權限，確認可收到提示。App 啟動、登入狀態及密碼一致性分別確認。
4. 依下表驗收，記錄實際版本與結果後再擴大 Scope。

##### 全新 Mac／全新員工／ADE

1. Jamf PreStage 設定管理員備援與員工建帳方式；Connect 負責員工建帳時，依官方流程略過一般帳號建立。
2. 在首次員工登入前，讓 Login 設定、有效授權、Connect 套件就緒，並部署 Self Service+、LDAP 憑證及同步設定。PreStage 套件已列入不代表實際安裝已完成。
3. 員工以 Google 密碼＋組織 MFA 完成首次登入，確認帳號、預期權限及初始本機密碼一致。首次流程可能有額外提示，不在日常一次密碼承諾內。
4. 核對 FileVault 實際 On／員工解鎖資格、適用的 secure token／volume ownership／bootstrap token 及最新 PRK。macOS 26.4+ Setup Assistant 的加密時序須依主手冊第 07 節驗收，不預設建帳前一定尚未加密。
5. 若尚未啟用 FileVault，使用公司唯一核准的 Jamf 原生啟用與 escrow 流程；不要同時加 `EnableFDE`。若已 On，保留加密並驗證授權與 escrow。
6. 完成 Self Service+ 初始化與正常冷開機測試後交機。

FileVault 原生管理入口：**Computers → Configuration Profiles → Security & Privacy → FileVault**；PRK 託管由 Jamf 對應設定及憑證處理，完成後到裝置 **Inventory → Disk Encryption** 核對。不能隨意複製其他租戶的 escrow PayloadUUID 或憑證。此包刻意分開管理登入偏好與加密復原設定，兩者都要完成。

#### 七、套用後必驗的結果

| 情境 | 預期結果 | 目前狀態 |
|---|---|---|
| 首次 ADE／Google 登入 | 正確公司帳號、Google Prompt／MFA 依政策執行、本機帳號對應正確、加密與 PRK 可用 | 未測 |
| Google A／本機 A，正常冷開機 | FileVault 輸入 A 一次後到桌面，沒有第二次 Connect 密碼要求 | 未測 |
| 桌面外部將 Google A→B | Self Service+ 成功驗證新憑證，員工依提示完成本機更新；不是靜默下載 B | 未測 |
| 確認同步完成後冷開機 | FileVault 用 B 解鎖並接續桌面；完成這一步才認定循環通過 | 未測 |
| 雲端已 B、本機仍 A，離線冷開機 | A 仍可能解鎖；桌面連線恢復後再同步。B 尚未同步時不能取代 A | 未測 |
| LDAP 故障或憑證過期 | 明確顯示／記錄未成功驗證，不把沒有通知或舊快取當同步成功 | 未測 |
| 忘記本機 A | IT 身分核對後走已測試 PRK／復原程序，再驗證密碼、keychain 與 FileVault；不承諾只輸入一次 | 未測 |

桌面上可由**員工本人工作階段**立即觸發檢查（不是將這行直接貼入 Jamf 的 root Policy）：

```bash
open "jamfconnect://networkcheck"
```

確認由預期的 Self Service+ 版本接手且本次檢查有結果。FileVault 狀態可只讀檢查：

```bash
fdesetup status
```

完整操作、PasswordCurrent 狀態限制、復原與 T01～T26 驗收見主手冊第 08～12 節。產生器的本機測試與 `plutil` 不會將任何公司案例改成通過。

#### 八、回復方式

保留受控的原始 profile、Scope、UUID、設定值與套件版本。出現登入、LDAP 或同步異常時先停止擴大 Scope；恢復原本的有效設定及啟動機制，只處理本次更動的登入／同步偏好。不要刪除仍需使用的授權、LDAP 憑證、FileVault／PRK profile，也不要關閉 FileVault 或清除 keychain。

描述檔回復不會把已更新的本機密碼改回 A；需記錄目前真正有效的密碼狀態。失敗到無法進桌面時，由 IT 依已驗證的復原流程處理，不能期待再次下發設定一定能救回離線裝置。

#### 九、可直接複製的三份 plist 範本

以下是方式 B 使用的完整偏好 plist，仍須填妥佔位值；不是整份 `.mobileconfig`。若使用產生器，直接複製它產出的已填值檔案即可。

##### 01 — com.jamf.connect.login

```xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
  <key>OIDCProvider</key><string>GoogleID</string>
  <key>OIDCClientID</key><string>__GOOGLE_CLIENT_ID__</string>
  <key>OIDCClientSecret</key><string>__GOOGLE_CLIENT_SECRET__</string>
  <key>OIDCRedirectURI</key><string>__GOOGLE_REDIRECT_URI__</string>
  <key>OIDCUsePassthroughAuth</key><true/>
  <key>CreateJamfConnectPassword</key><true/>
  <key>OIDCNewPassword</key><false/>
  <key>DenyLocal</key><false/>
</dict>
</plist>
```

##### 02 — com.jamf.connect

```xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
  <key>IdPSettings</key>
  <dict><key>Provider</key><string>GoogleID</string></dict>
  <key>PasswordPolicies</key>
  <dict>
    <key>NetworkCheck</key><integer>15</integer>
    <key>CheckOnNetworkChange</key><true/>
    <key>SyncPasswordsMessage</key>
    <string>Mac 與 Google 密碼不同。請輸入目前的 Mac 本機密碼，更新為已驗證的 Google 密碼；忘記本機密碼時請聯絡 __IT_CONTACT__。</string>
    <key>PasswordSyncBlockList</key><array/>
  </dict>
  <key>SignIn</key>
  <dict>
    <key>AutoAuthenticate</key><true/>
    <key>AutoOpenAppAtLogin</key><true/>
    <key>RequireSignIn</key><true/>
  </dict>
</dict>
</plist>
```

##### 03 — com.apple.loginwindow

```xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
  <key>DisableFDEAutoLogin</key><false/>
</dict>
</plist>
```


## 07 部署步驟：新機 ADE 與既有機

### 新機 ADE

**先分辨實際啟用路徑。** Apple 現行文件標示 **macOS 26.4 起在 Setup Assistant 預設開啟 FileVault**。因此不能假設全新機一定尚未加密，或保證所有版本都在 Google 登入之後才啟用。若 FileVault 已 On，保留加密，重點驗證新員工解鎖資格與 PRK；若尚未 On，才走下列延後啟用候選流程。Setup Assistant 強制啟用的 awaiting configuration、帳號建立與 escrow 條件，須與實際 PreStage 一起驗收。[A02]

1. **建立測試 PreStage 與 Scope。** 確認 ADE 已指派到 Jamf Pro、套件與設定檔有效。先使用測試帳號與測試 Mac。
2. **帳號策略。** 依 Jamf Connect PreStage 指引設定受管理的備援管理員，並在 Account Settings 略過一般帳號建立，讓 Connect 負責員工帳號。不要在 Setup Assistant 另建一個不同密碼的員工帳號。[J07]
3. **確保安裝順序。** 在 PreStage 的 Enrollment Packages 加入 Connect PKG，部署 Self Service+ 時一併加入其 PKG；核對套件配送可用性。Connect 安裝套件、Login 設定與授權必須在員工登入前就緒；只勾選套件並不等於已完成安裝，需實際觀察首次開機。Jamf 建議至少保留一個 Setup Assistant 步驟（例如 Privacy），避免全部略過而登入畫面先於套件安裝完成。[J07]
4. **Google 初次登入。** 員工用 A 完成 Google OIDC／MFA；確認建立的是正確本機帳號，密碼與 Google 一致。不得假設 ADE 註冊驗證本身等於此步驟。
5. **驗證帳號與復原能力。** 確認目標員工的 secure token／適用的 volume ownership，MDM bootstrap token 狀態與備援管理員；各 token 不是同一件事。[A01] [A02]
6. **以單一方法管理 FileVault 啟用。** 若尚未啟用，此基準候選採 Jamf Pro 原生延後啟用與 PRK 託管；員工帳號就緒後再套用測試 Scope。若已啟用，保留並驗證即可。既有公司若採 Connect 的 EnableFDE 流程，先保留並驗證，勿同時啟用兩條機制。[J17] [J18]
7. **完成加密與託管。** 要確認裝置實際 FileVault 狀態、員工解鎖資格與 Jamf 可授權取回 PRK；尚未完成就不交機。
8. **初始化 Self Service+。** 確認 LDAP 憑證、GoogleID、帳號管理與通知設定；由員工完成首次登入與網路檢查。
9. **正常冷開機驗收。** 使用測試流程 T02，確認一次 A 進桌面。再跑 A→B 同步與下一次 B 解鎖測試。

**停止條件：** 出現 `Deferred enablement appears to be active for user 'unknown'`，表示不能繼續把它視為加密成功。Jamf 已記載 Skip Account Creation 配合過早延後啟用的問題；先檢查帳號與啟用順序。[J19]

### 尚未啟用 FileVault 時的候選描述檔

Jamf Pro → **Computers → Configuration Profiles → New → Computer Level → Security & Privacy → FileVault**。以下適用於已確認可走 deferred enablement 的測試機，**不是覆寫 macOS 26.4+ Setup Assistant 預設行為的指令**。[J25] [A02]

| 設定 | 此候選流程 |
|---|---|
| Enable FileVault | Include |
| Event to prompt FileVault enablement | At Login，需記錄實際觸發登入事件 |
| Allow users to bypass FileVault prompts | Require on the next login（核對租戶欄位） |
| Force Enable In Setup Assistant | 此 deferred 路徑不啟用；不得與 Skip Account Creation 未驗證混用 |
| Recovery key | Personal recovery key |
| Escrow Personal Recovery Key | Include，確認派送與下次 inventory 回報 |
| User adjustment | Prevent FileVault from being disabled |

表內提示略過次數與禁止使用者停用的選項，另參照 [Jamf 官方 FileVault 設定指南](https://learn.jamf.com/r/en-US/jamf-trusted-access-solution-guide-business/Enabling_FileVault_Disk_Encryption)。

到裝置 **Inventory → Disk Encryption** 確認復原資料與解鎖使用者；此時尚未回報 PRK 就不能算交機完成。macOS 26 以上在 bootstrap token 可用時，新增或更新 escrow profile 可能自動輪替 PRK，回復設定後也要確認**最新**託管金鑰。[J26]

### 既有 Mac

1. 保留原 profile／Scope 與復原路徑，確認 FileVault On、員工可解鎖、PRK 已託管。
2. 先讓 Self Service+ 完成 Google 密碼同步，確認本機與 Google 同為 A。
3. 對測試 Scope 調整 `DenyLocal=false`，確保 `DisableFDEAutoLogin` 沒有有效的 true；不要直接修改受 MDM 管理的本機 defaults 來取代描述檔。
4. 更新同步檢查設定，確認應用程式啟動與通知。
5. 完成冷開機、外部改密碼、離線與同步後冷開機驗收，再分批擴大 Scope。

## 08 IT 操作：立即檢查、引導同步與確認完成

### 先確認指令在哪個身分執行

以下 URL 與 `defaults read` 應在**該員工已登入的桌面、以該員工身分**執行。不要直接在 Jamf 的 root 腳本中照抄：root 的偏好設定與員工的 GUI 工作階段不同。若要用 Jamf Policy 自動觸發，需另外實作並驗收目前 console user 的工作階段處理。

先確認 Google 登入帳號與本機員工帳號對應。若舊 Jamf Connect menu bar app 與 Self Service+ 共存，需確認 `jamfconnect://` 實際由預期版本接手，不能只因指令返回成功就判定執行對象正確。

### 步驟一：立即啟動檢查

```bash
open "jamfconnect://networkcheck"
```

這只會觸發 Self Service+ 檢查，不保證已完成。確認 App 有運作、網路驗證有結果，再看狀態；不要緊接著讀取舊快取就宣布成功。[J20]

### 步驟二：讀取狀態

```bash
defaults read com.jamf.connect.state PasswordCurrent
defaults read com.jamf.connect.state LastSignIn
defaults read com.jamf.connect.state UserLoginName
```

| 結果 | 正確解讀 |
|---|---|
| `PasswordCurrent = 1` | App 記錄為同步；須搭配本次可連線的驗證與觀察時間，不能證明雲端此刻絕無變更。 |
| `PasswordCurrent = 0` | App 記錄為不同步，進入同步處理。 |
| 欄位不存在 | 尚無可用結果、未初始化或讀錯使用者；不是「已同步」。 |
| 網路／TLS／LDAP 失敗 | 結果無法確認，先排除服務連線，不可單憑錯誤就認定使用者改密碼。 |
| `LastSignIn` | 最近成功登入 Self Service+ 的時間，不是每次密碼檢查時間，也不是 FileVault 驗收時間。 |
| `UserLoginName` | 最近登入 Self Service+ 的網路帳號；與目前員工／本機帳號對照，避免查錯驗證對象。 |

狀態欄位由 App 維護，**不要以 defaults write 把 PasswordCurrent 改為 1**；這不會改密碼。[J21] [J22]

### 步驟三：引導完成更新

```bash
open "jamfconnect://signin"
```

1. 請員工輸入目前 Google 密碼 B，完成 Self Service+ 要求的網路帳號驗證。
2. 若提示本機與網路密碼不同，員工輸入目前本機舊密碼 A，授權更新本機密碼。
3. 等待 App 顯示成功；若 macOS 密碼政策拒絕 B，先確認 IdP 與 MDM 政策相容，不得把失敗記錄為完成。
4. 再次連線檢查、讀取狀態，並記錄時間與測試帳號代碼。
5. 在測試 Mac 做正常關機／開機，以 B 驗證 FileVault 與一次登入；受控測試確認 A 不再通過該帳號的普通密碼解鎖。不要反覆猜測密碼造成鎖定。

Google MFA 仍由 Google 網頁政策保護對應流程；此 LDAP 密碼驗證不是每次都會跳 Google 手機提示。不要把「LDAP 成功」寫成「Google Prompt 已完成」。[J02] [J03] [G02]

## 09 唯讀檢查清單與證據標準

以下指令只讀取狀態。帶有權限需求的查詢由授權 IT 執行；執行失敗必須記為「未知」，不能直接推定功能關閉。輸出可能包含裝置識別碼與帳號名稱，請存入公司受控工單。

```bash
# macOS 版本與 build
sw_vers

# ADE / MDM 註冊狀態
profiles status -type enrollment

# FileVault 狀態與有權解鎖的使用者（依需要由授權 IT 使用 sudo）
fdesetup status
sudo fdesetup list

# 對已確認的本機帳號短名稱查 secure token；先替換 LOCAL_SHORTNAME
sysadminctl -secureTokenStatus LOCAL_SHORTNAME

# bootstrap token 的本機與伺服器託管狀態（授權 IT）
sudo profiles status -type bootstraptoken

# Apple silicon：列出 APFS 使用者／volume owner，對照員工 GeneratedUID
sudo diskutil apfs listUsers /
dscl . -read /Users/LOCAL_SHORTNAME GeneratedUID
```

來源與操作背景：[A01] [A02] [J17]。指令輸出是局部證據；secure token 已啟用不等於 PRK 已託管，也不等於員工已通過冷開機解鎖。另在 Jamf Pro 裝置庫存檢查加密狀態、Recovery Key 託管及適用 token 狀態。

| 控制目標 | 至少要保留的證據 | 不足以證明的資料 |
|---|---|---|
| 首次 Google 身分登入 | 測試帳號、登入時間、Google 驗證結果及本機帳號對應 | 只有 OAuth 設定截圖 |
| FileVault 開啟 | 裝置端 On／加密完成、MDM 庫存、冷開機觀察 | 只有 profile 已送達 |
| 一次密碼 | 正常關機再開機，逐階段記錄提示次數 | 鎖屏、登出再登入，或 authenticated restart |
| 密碼已同步 | 本次網路驗證、App 狀態、本機更新成功、下一次 B 解鎖 | 舊 PasswordCurrent=1 或只看到提醒 |
| PRK 可用 | 託管狀態、授權取回流程；測試群組另排復原演練 | 把真實 PRK 貼進工單 |

## 10 例外處理與服務台判斷表

新增[Google 登入失敗速查](/decision#decision-03)：依 FileVault、Connect 與桌面同步分成 8 種情境，並排比較有／無網路。FileVault 原方案使用最近生效的本機密碼；連上網路不會直接讓尚未同步的新 Google 密碼生效。

| 使用者回報 | IT 先確認 | 處理方式／不得誤判 |
|---|---|---|
| Google 新密碼 B 在開機畫面不通 | 是否只在雲端改密碼、Mac 仍為 A | 用仍有效的本機 A 解鎖，進桌面後完成同步；若忘 A，走復原。 |
| 開機仍要輸入兩次 | 發生在 FileVault、Jamf 網頁還是同步提示？有效的 DenyLocal／DisableFDEAutoLogin？ | 按第 02 節與第 06 節核對衝突與登入外掛；不要先停用 FileVault。 |
| 同步視窗一直跳 | Google B 是否正確、LDAP 可達、client 權限／憑證／效期、本機 A 是否正確 | 分辨網路驗證失敗與本機變更失敗；不得以刪除 state plist 或偽造狀態作為修復。 |
| 沒有任何同步提醒 | App 有無啟動、通知權限、NetworkCheck 是否 0、是否被列入 BlockList | 執行 networkcheck，觀察實際結果；沒有通知不代表同步。 |
| 遠端或無網路 | DNS／636／TLS／網路狀態 | 記為無法驗證；恢復連線後檢查。本機離線可用性是本方案已知行為。 |
| App 顯示同步，FileVault B 卻失敗 | 是否真的完成本機變更、是否讀到錯使用者、是否有額外 profile／帳號異常 | 停止擴大部署；使用核准復原方式進機，收集日誌，交 Jamf／Apple 支援。不要直接關閉加密。 |
| 忘記本機舊密碼 A | 有無可用 PRK／授權管理員復原 | 依 Apple 忘記 Mac 登入密碼流程；重設與一般已知舊密碼變更不同，可能需重建 login keychain。[A03] |
| B 不符 Mac 密碼政策 | Google 與 MDM 長度／複雜度規則是否矛盾 | 對齊公司政策並再測。不要用 MDM `changeAtNextAuth` 解決 Jamf 同步問題；Jamf 明確警告此組合可能鎖住使用者。[J03] |
| 出現 deferred user unknown | ADE Skip Account Creation 與 FileVault 啟用順序 | 按第 07 節停止並修正帳號建立順序。[J19] |
| Google 停權／電腦遺失 | 裝置是否在線、MDM 命令是否送達、Google 相關工作階段 | 啟動事件／離職流程，分別處理雲端存取與裝置鎖定／清除；雲端改密碼不等於離線磁碟被封鎖。[G04] |

`RequireSignIn=true` 可以讓驗證視窗保留，但不能把它宣稱為全桌面禁止使用、無法強制結束，或同步成功前所有應用程式不可用。若公司將來要求這種存取控制，需另立需求與重新選擇登入架構。[J05]

以下支線是研究記錄，不是現行故障排除指令。可[下載獨立開發支線文件](/downloads/offline-device-control.md)。

### 開發支線：永久離線裝置的本機使用限制

支線代號：OFFLINE-01｜記錄日期：2026-09-22｜狀態：**需求已記錄；開發未啟動；全部實機案例未測。**

這是未來可能自主開發的小工具研究方向，不是目前已部署的功能，也不是公司核准上線的防盜保證。它獨立於 Google／Entra 的登入與密碼同步方案。

#### 已確認的需求與 TASTE

| 項目 | 本支線的定義 |
|---|---|
| Task／任務 | 公司 Mac 交付前預先部署規則；假設失竊後永遠不再連網，本機在事先核定的期限到達後自行限制使用，IT 收回後可離線復原。 |
| Audience／受眾 | 規劃及維護的 IT／資安同仁、未來工具開發者；受管員工需要看懂原因與 IT 聯絡方式。 |
| Structure／結構 | 威脅情境 → 官方能力與缺口 → 候選設計 → 狀態流程 → 離線復原 → 驗收與啟動關卡。 |
| Tone／語氣 | 淺顯、精確，分開標示已確認需求、官方支持、設計建議、待實測能力；不把「干擾使用」說成「資料保密已保證」。 |
| Examples／範例 | 永久斷網、到期時已在桌面、長期關機再啟動、已知本機密碼、改時間／刪檔／停服務，以及 IT 離線復原。 |

使用者提出隱藏資料夾內的 `pari.123` 檔案作為時間標記，以及一週或兩週未更新後反覆鎖定的構想。**檔名、路徑、7／14 天及執行頻率都只是討論示例，尚未選定為正式參數。**核心需求是永久離線時也能運作，不是依賴檔案隱藏。

#### 威脅情境與成功標準

- FileVault 保持開啟；對方知道仍有效的本機／FileVault 密碼。雲端 Google 密碼可能已變更，但本機尚未同步。
- 交付前可以完成部署與授權；失竊後的判斷、限制及 IT 復原都不能依賴網路、MDM 命令送達、Google 或其他雲端服務。
- 對方可能反覆登入、重開機、嘗試修改時間、刪除檔案或停止服務。一般使用者與管理員／root 權限必須分別測試，不能假設公司已完成降權。
- 使用者接受將反覆鎖定／登出作為研究中的使用阻礙手段；能否達成「到期後只有 IT 可解除」仍須驗證，不能以鎖螢幕畫面代替結果。
- 主要候選目標是作業系統內的持續使用限制。抵抗管理員、復原環境及其他磁碟存取途徑的能力尚未證實；不能直接聲稱提供 FileVault 解鎖前的封鎖或不可繞過的硬體鎖。

永久離線時，本機無法知道公司後來才標示的「已失竊」事件；它能依據的只有預先下發的規則與本機狀態。因此授權逾期不是失竊證明，合法長期離線員工也會受到相同規則影響。期限到達前已有的存取空間、到期前已被複製的資料，不能由後續限制追回。

#### 原廠能力與工具研究結果

以下來源於 2026-09-22 查核，沒有公司裝置測試結果。

| 來源／候選 | 文件支持的內容 | 不足以確認的內容／本支線定位 |
|---|---|---|
| [Apple launchd](https://developer.apple.com/library/archive/documentation/MacOSX/Conceptual/BPSystemStartup/Chapters/CreatingLaunchdJobs.html) | 官方封存的架構指南說明系統背景工作及定期啟動。 | 不代表定期工作能在 FileVault pre-boot 執行，也不提供抵抗 root 的保證；目標 macOS API 及背景服務生命週期需重新確認。 |
| [Jamf Pro Policy Payload Reference](https://learn.jamf.com/r/en-US/jamf-pro-documentation-current/Policy_Payload_Reference) | 查核版本 11.32.0：General 可使用 Make Available Offline，執行頻率限 Ongoing。 | 可研究交付前部署及離線執行；快取政策本身不提供完整防盜鎖。失竊後不得依賴下載新政策或呼叫 Jamf API。 |
| [Apple MDM 指令流程](https://developer.apple.com/documentation/devicemanagement/commands-and-queries) | 裝置收到通知後向管理服務取得指令，再執行及回報。 | 遠端 Lock Computer／DeviceLock 排除於永久離線解法之外；不能把遠端命令包在腳本內就稱為本機離線鎖。 |
| [Absolute Control](https://www.absolute.com/platform/absolute-control) | 原廠列出停止回報後以計時器觸發凍結的功能。 | 保留 Offline Freeze 商用候選；Mac／Apple silicon、FileVault、停服務、離線 IT 復原及持續封鎖的完整組合尚未驗收。不能引用 Windows／特定 OEM 的韌體能力推定 Mac 也有。 |
| [BlackSnufkin／DeadManSwitch](https://github.com/BlackSnufkin/DeadManSwitch) | 作者 README 描述 heartbeat 逾時、VeraCrypt 卸載與關機，宣稱跨平台。 | 社群原始碼研究候選，未在公司 Mac 編譯或執行；不是 Apple／Jamf 認證，也沒有證據證明可滿足本支線的 FileVault 與 IT 專屬解除要求。 |

現階段沒有任何上述候選被列為「已完整符合」。不因名稱含 offline、freeze 或 lock 就判定可用。

#### 候選設計：交付前部署，之後完全本機執行

這一節是設計建議，不是已選定的實作。

1. **本機背景服務**：研究由 Jamf 在交付前安裝系統服務；服務在 OS 可執行時啟動，並處理週期檢查、喚醒及登入狀態變化。不能把它畫在 FileVault 解鎖之前。
2. **有期限的裝置授權**：研究使用包含裝置綁定、核發／到期資訊及政策版本的簽章文件。簽發私鑰留在 IT 受控環境，Mac 僅保有驗證公鑰。不把真實私鑰、授權檔或共用解鎖密碼放進專案。
3. **可信的期限判斷**：不只依檔案修改日期。簽章可驗證內容來源，但本身不能阻止回撥系統時間、還原舊狀態或替換檢查程式；跨關機的時間與防回復方案是首要可行性缺口。
4. **持續限制狀態**：到期後保存限制狀態，不能因重開機、重新登入、員工輸入舊密碼或刪除標記而重新得到完整期限。反覆鎖定／登出是候選執行方式，尚未選定支援 API，也未證明無可操作空檔。
5. **IT 離線復原**：研究綁定該裝置與本次復原請求的簽章授權，由 IT 工具產生，受管 Mac 在本機驗證。一次性使用、防重放、換機不可使用及復原介面可達性均要測試。

檔案可以存放於一般使用者不可寫入的位置，但隱藏名稱不是安全機制；取得管理員／root 權限後的能力需另外驗證。刪檔或狀態損毀不得被誤認為首次安裝而重設期限，應進入明確的待 IT 修復狀態；這不表示自動清除磁碟。

#### 狀態與流程

| 階段 | 本機預期行為 | 狀態性質 |
|---|---|---|
| 交付前 | 安裝服務、驗證規則及復原流程，取得初始授權 | 前置部署；尚未實作 |
| 永久離線，授權有效 | 依本機證明允許使用及檢查 | 候選設計 |
| 接近期限 | 顯示到期日、原因及 IT 聯絡方式 | 提醒時間未選定 |
| 到期／驗證異常 | 進入限制或待 IT 修復狀態 | 具體限制方式待可行性驗證 |
| 再次登入／重開機 | 保留限制；服務可執行時重新檢查 | 不保證 FileVault 前阻擋 |
| IT 收回、全程離線 | 核對裝置，驗證本次復原授權，依程序解除 | 復原機制未實作 |

流程順序：**預先部署 → 永久離線 → 本機檢查 → 授權有效則繼續；到期則限制 → 重啟仍檢查 → IT 收回後離線復原。**

關機時程式不能執行；長期關機後只能在下一次可執行時判定期限。整段流程沒有遠端 Lock Computer、等待 APNs／Jamf 指令或雲端解鎖分支。IT 復原授權可由獨立受控工具準備，但失竊 Mac 本身不得需要網路。

#### 不可混淆的防護界線

- 作業系統內鎖畫面／登出，不等於撤銷有效的 FileVault 憑證；也不代表其他磁碟存取途徑均已封鎖。
- launchd 啟動／KeepAlive 不等於防竄改或不可終止；程式簽章也不能單獨保證抵抗已取得管理權限的人。
- 簽章文件、系統權限與時間紀錄都只是候選設計的一部分，不能直接宣稱能防止系統回復或完整快照回復。
- 原本 Google 密碼同步不會因本支線而變成離線即時驗證；PSSO 的網路驗證政策也不能直接視為本支線的離線 IT 復原機制。
- 裝置永不回報時，後台最多記錄「推定期限已到」，不得記成「已確認成功鎖定」。本機證據由 IT 收回後讀取；不保存使用者檔案內容或密碼。
- 不將自動清除、隨機修改員工密碼、移除 FileVault 解鎖資格或破壞復原能力列入本次候選。

#### 未來驗收範例：O01～O12 全部未測

這是將來 SDD 規格及 TDD／實機驗證的輸入，獨立於現有 T／P／E 共 52 項案例。模擬時間、文件簽章及狀態轉移可做自動化測試；FileVault、管理員繞過及復原必須用授權測試 Mac 驗證。

| 編號 | 情境 | 要驗證的結果 | 狀態 |
|---|---|---|---|
| O01 | 部署後封鎖全部網路，跨越候選期限 | 到期判斷與限制不依賴外部連線；以封包及本機事件確認 | 未測 |
| O02 | 到期時已登入桌面 | 實際限制一般操作，記錄生效延遲與仍可操作／複製資料的空檔 | 未測 |
| O03 | 關機超過期限，再離線冷開機 | 不重新核發完整期限；分別記錄 FileVault 與 OS 階段是否可進入 | 未測 |
| O04 | 反覆輸入有效本機密碼、登入與重啟 | 不能因一般登入而清除限制；記錄每次可用的空檔 | 未測 |
| O05 | 改系統日期或檔案時間 | 不因單純回撥日期而取得新的有效授權；說明時鐘異常處理 | 未測 |
| O06 | 刪除／替換授權或限制狀態 | 不當作首次安裝重設；無效簽章及其他裝置文件不能通過 | 未測 |
| O07 | 一般使用者停止服務／修改檔案 | 確認權限邊界與服務恢復行為，不只觀察 UI | 未測 |
| O08 | 管理員／root、復原途徑與舊狀態回復 | 明確列出可繞過的方法及影響；未解決前不能聲稱抵抗此權限 | 未測 |
| O09 | 睡眠跨越期限後喚醒 | 記錄何時檢查及何時生效，不能把睡眠中的計時假設當結果 | 未測 |
| O10 | IT 收回後，全程斷網復原 | 正確授權可恢復；員工密碼、錯誤裝置及重用授權不能解除 | 未測 |
| O11 | 合法長假／長期離線、狀態損毀 | 預先核准例外與 IT 修復程序可操作，且不產生未授權的自動解鎖 | 未測 |
| O12 | 裝置限制前後均未回報 | 管理記錄維持推定／未確認，不產生虛假的鎖定成功或資料保密保證 | 未測 |

#### 開發啟動與停止關卡

本次只記錄支線，沒有建立正在實作的 Spectra change。未來確定投入時，依 **SDD＋TASTE** 先建立可行性提案，再決定實作範圍；不要直接從這份研究筆記部署腳本。

| 關卡 | 下一階段要交付什麼 | 繼續條件 |
|---|---|---|
| 範圍定義 | 目標 macOS／晶片、一般使用者與管理員威脅、可接受的限制程度、期限、例外、IT 復原責任 | 明確決定是一般使用阻礙，還是要抵抗磁碟／管理員存取 |
| 執行機制可行性 | 支援的本機限制方式、關機／喚醒行為、時間與狀態回復測試，以及完全離線 IT 復原 | 先證明限制與復原可以運作，再投入完整介面及管理整合 |
| SDD／TDD | 正式 proposal／design／spec／tasks，對應 O01～O12 與可自動化的測試 | 不把未證實假設寫成已存在能力；明列仍需實機驗收的項目 |
| 試點與維運 | 簽署與公證、安裝／升級／移除、復原演練、支援窗口及相容性證據 | 未解決的繞過須揭露；不誤稱整機資料已受保護 |

若目標要求抵抗已取得管理員及磁碟解鎖憑證的攻擊者，而本機執行機制無法提供所需邊界，應停止該實作方向並重新選型，不能以更多重複腳本或更隱密的路徑取代驗證。工期、人力、授權及預算尚未估算；本支線沒有採購或正式開發承諾。


## 11 分批上線與回復程序

### 上線次序

1. **準備**：環境、參數、原值、Scope、備援帳號與 PRK 全數記錄。
2. **小組測試**：至少覆蓋全新 ADE 與既有 Mac、正常網路與離線、外部改密碼及忘記舊密碼處置。
3. **員工說明**：告知開機用「目前 Mac 已同步的密碼」；Google 在其他地方改過後，要在 Self Service+ 完成本機同步。勿向 IT 提供密碼。
4. **分批套用**：每批確認描述檔、應用程式與 LDAP 憑證後再觀察登入與同步；只把已通過驗收的組合列為支援基準。
5. **維運接手**：指派 Google、Jamf、服務台與資安負責人；設定憑證到期提醒與版本升級重新驗收條件。

### 必須停止擴大部署的條件

- FileVault 尚未完成、員工無法解鎖、PRK 未託管或備援路徑不可用。
- A→B 更新失敗、更新後 B 無法冷開機解鎖、keychain 持續異常。
- 全新 ADE 錯過 Connect 登入而建立非預期員工帳號。
- 多台 LDAP 驗證失敗、憑證權限／到期問題尚未排除。
- 發現公司其實要求「每次開機即時驗證 Google 或停權即禁止本機登入」，與本方案邊界不符。

### 回復步驟

1. 保存錯誤階段、時間、版本、有效設定與不含機密的日誌；保留裝置可用的管理工作階段。
2. 將受影響測試 Scope 恢復為**部署前的原描述檔與原值**，不要假設全部改為 `DenyLocal=true` 就是正確回復。
3. 不關閉 FileVault、不刪除員工帳號、不移除 secure token、不以刪除 keychain 當成第一線修復。
4. 恢復連線／原應用程式設定後，驗證登入、PRK 可用性與雲端服務。
5. 若已成功把本機密碼由 A 改為 B，恢復 profile 不會把密碼自動改回 A。記錄當前可用密碼狀態，必要時由員工依核准流程再次變更。
6. 若回復涉及 FileVault escrow profile，確認最新 PRK 已託管；macOS 26+ 可能因該 profile 變更而輪替，不能假設舊 PRK 仍有效。[J26]
7. 找出原因、更新本手冊、重新跑失敗案例及受影響的冷開機流程，再評估恢復部署。

## 12 驗收矩陣：必須逐項記錄

全部初始狀態均為 **未測**。建議使用測試帳號；測試 B/A 時不可在紀錄中填入真實密碼。預期結果是本方案設計，不代表已在公司環境證實。

| 編號 | 前提與動作 | 預期結果 | 證據／狀態 |
|---|---|---|---|
| T01 | 新機 ADE，員工首次 Google 登入 A 並完成組織 MFA | 建立正確本機帳號；初始密碼一致；不承諾 Setup Assistant 全程只一個提示 | 帳號對應、提示紀錄；未測 |
| T02 | FileVault On，Google=A、本機=A，Self Service+ 已初始化；正常關機再開機 | FileVault 輸入 A 一次後進桌面，無第二次 Jamf Google 登入要求；同步元件恢復運作，不反覆要求額外登入 | 階段、App 與輸入次數；未測 |
| T03 | Google 在其他裝置 A→B，Mac 本機仍 A | B 尚不能當成本機解鎖密碼；A 仍可走本機開機流程 | A/B 結果，不記值；未測 |
| T04 | T03 進桌面，網路可達，觸發 networkcheck | 產生重新驗證／不同步處理，不自動下載 B | App／日誌時間；未測 |
| T05 | 以 B 驗證網路，按提示提供本機 A | 本機更新成功；再次檢查記錄同步 | 成功畫面、狀態與時間；未測 |
| T06 | T05 後正常關機再開機 | B 解鎖、一次進桌面；受控驗證 A 不再通過該帳號普通密碼解鎖 | FileVault 狀態、結果；未測 |
| T07 | Google=B、本機=A，Mac 無網路 | A 仍可能進桌面；同步結果為未知／無法完成，不宣稱即時有效 | 離線紀錄；未測 |
| T08 | T07 恢復網路，CheckOnNetworkChange=true | 觀察觸發檢查並可完成同步；記錄實際延遲 | 網路／App 時間；未測 |
| T09 | NetworkCheck=15，保持網路與 App 正常 | 觀察約定檢查排程；提醒間隔另行記錄，不誤認每 15 分鐘提醒 | 檢查與通知各自時間；未測 |
| T10 | 尚未完成 Self Service+ 首次登入／不存在 state key | 不能回報已同步；完成初始化後再驗證 | 缺值→有效狀態；未測 |
| T11 | 測試 RequireSignIn=true，帳號尚未驗證 | 關閉／最小化按鈕消失；不能因此宣稱整桌面被封鎖 | UI 可觀察範圍；未測 |
| T12 | 測試 LDAP 無法連線或測試憑證不可用 | 分類為服務無法驗證，排除後再查；不可直接判成改密碼 | 錯誤分類；未測 |
| T13 | 測試本機／Google 密碼政策差異 | 變更被拒時有明確處理，不能記為成功 | 政策與錯誤；未測 |
| T14 | 測試帳號忘記 A | 使用預先核准的復原流程；確認 login keychain 影響與使用者溝通 | 受控復原演練；未測 |
| T15 | 測試 PRK 託管與授權取回 | 授權 IT 可依程序復原；真實 PRK 不外流；按公司政策處理使用後輪替 | 僅記成功與稽核事件；未測 |
| T16 | 測試 Google 帳號停權 | 雲端拒絕與本機可用性分開記錄；本方案不承諾阻擋離線桌面 | 兩層結果；未測 |
| T17 | 復原原 profile／Scope | 回到原登入行為；本機已更改的密碼不被假設回復 | 原值對照；未測 |
| T18 | 登出再登入、螢幕鎖定、正常冷開機分開測 | 分別記錄；不能用其中一種結果代替另兩種 | 三種流程結果；未測 |
| T19 | 輪替測試 LDAP 憑證／升級 App | 新憑證與版本仍可同步；再跑 T02、T04、T05、T06 | 版本與效期；未測 |
| T20 | 全新 ADE 使用外部 Gmail 帳號或拒絕 Google MFA | 外部帳號／失敗驗證不能藉此建立正常員工帳號 | OIDC 結果；未測 |
| T21 | 已同步後斷網，再讀 PasswordCurrent | 即使保留 1，也將本次雲端有效性列未知 | 狀態與新鮮度；未測 |
| T22 | 員工登入後 Self Service+ 未啟動 | 發現未執行檢查；恢復啟動後驗證，不因能進桌面就判同步完成 | App／檢查時間；未測 |
| T23 | 正常 A→B 後測 login keychain 與常用 App | 確認鑰匙圈正常；不承諾所有 App／Wi-Fi 密碼自動更新 | 提示／應用程式結果；未測 |
| T24 | 第二名員工登入同一台測試 Mac | 各自 Google 對應、同步及 FileVault 解鎖資格正確，不能沿用第一人結果 | 每帳號證據；未測 |
| T25 | macOS 26.4+ 新機走實際 PreStage | 記錄 Setup Assistant 的實際 FileVault 時序；無錯誤帳號／unknown 狀態，PRK 正確 | 啟用路徑與版本；未測 |
| T26 | 更新 escrow profile，bootstrap token 可用 | 查核是否輪替 PRK 並確認目前金鑰已託管，不以舊快取結案 | inventory 與託管時間；未測 |

測試記錄至少包含：執行人、時間、裝置代碼、OS build、App 版本、profile 版本、前提、實際結果、證據連結與缺陷編號。正式上線需由公司流程指定的人員確認；本網站不代替公司變更管理系統。

## 13 交接與例行維運

| 負責角色 | 交接內容 |
|---|---|
| Google 管理員 | OIDC 專案與應用程式、MFA 政策、Secure LDAP 授權、client 範圍與憑證輪替 |
| Jamf 管理員 | 套件／profile／Scope、單一 FileVault 啟用機制、PRK 權限、Self Service+ 初始化與通知 |
| 服務台 | A/B 說明、networkcheck／signin 操作、未知結果分類、忘記 A 的轉介方式 |
| 資安／管理負責人 | 接受日常本機離線登入邊界；遺失、停權、離職、MDM 命令送達與稽核 |
| 文件維護人 | 版本變更、官方來源重新查核、驗收紀錄更新、已知限制 |

### 每次交機

- 確認 FileVault 已完成、員工可解鎖、PRK 託管、應用程式與同步功能已初始化。
- 完成一次正常冷開機及一次即時網路檢查；告知員工外部 Google 改密碼後要完成本機更新。
- 告知使用者不需把 Google／本機密碼交給 IT，忘記舊密碼時找服務台。

### 每次重要變更

macOS 大版本、Connect／Self Service+ 版本、Google 密碼／MFA 政策、LDAP 憑證、MDM 密碼政策、ADE PreStage 或登入外掛變動後，重新驗證受影響流程。不要因為「最新版」就跳過測試。

### 定期追蹤

可使用 Jamf Extension Attributes 收集狀態、版本與最近資料時間，建立服務台追蹤群組。[J23] 這類庫存會有延遲，且 `PasswordCurrent` 是使用者層的 App 狀態；不能當成即時 Google 存取控制，也不可只用舊的 true 自動判定合規。

## 14 同事常問的問題

### 為什麼 Google 已經改密碼，Mac 開機還要舊密碼？

因為此時 FileVault 驗證的是 Mac 已持有的本機憑證。Mac 尚未完成 A→B 更新，A 仍是本機有效密碼。進桌面後完成同步，再以 B 驗收冷開機。[J01] [J03]

### 「一次密碼」是不是犧牲 FileVault？

FileVault 仍開啟，使用者仍必須先解鎖。改變的是解鎖後直接接續登入，不再增加第二次 Jamf Google 登入要求；也因此這次開機沒有即時 Google／MFA 驗證。[J01]

### 能不能不問使用者，直接強制同步？

可以觸發檢查、開啟登入視窗、保留登入提示，但 Google 不會讓 App 直接取回新密碼。正常更新仍需要新網路憑證及本機舊密碼授權；忘記舊密碼則是復原流程。[J02] [J03] [J05] [J20]

### LDAP 有憑證，還需要使用者密碼嗎？

憑證建立 LDAP client 的安全連線與存取資格；使用者驗證仍是另一件事。不能把 client 憑證當成員工 Google MFA 或密碼。[G02] [J02]

### 開啟 RequireSignIn 就能讓他不同步不能工作嗎？

官方只承諾登入視窗在成功驗證前不顯示關閉／最小化。它沒有承諾整個桌面被封鎖，也不能把驗證視窗的行為擴大成同步必定完成。[J05]

### 15 分鐘檢查，是否最多 15 分鐘就改好了？

不是。Mac 必須有網路、App 正常、LDAP 可用；發現問題後仍需使用者完成更新。檢查週期、通知週期與完成同步時間是三件事。[J03] [J04]

### Mac 被偷，我改 Google 密碼就可以了嗎？

不能把它當成已封鎖該 Mac。本方案允許本機登入，離線裝置無法立即知道 Google 變更。需要按公司事件流程處理 Google 帳號／工作階段及 MDM 裝置控制，且確認命令是否送達。[G04]

若假設失竊後永久不再連網，遠端 MDM 命令不能作為這個情境的解法。第 10 節 OFFLINE-01 已記錄預先部署、本機逾時限制及 IT 離線復原的獨立開發方向；尚未實作，不代表目前已有防護。

### 成功改密碼後，鑰匙圈一定完全沒問題嗎？

正常使用已知舊密碼變更與忘記密碼後的管理員重設是不同流程。本手冊不承諾所有重設都保留舊 login keychain；若需要重建，按 Apple 復原說明處理並事先告知使用者。[A03]

### 未來可以切成每次開機都 Google MFA 嗎？

可以另行評估強制 Google 網路登入，但在現有 Jamf 流程通常恢復 FileVault 與 Google 兩個階段，也不等於 Google 遠端變更立即作廢離線磁碟憑證。PSSO 與 Google 第三方橋接的選型見第 03 節；Xpsso 已有產品文件，但不能只改通用 MDM 鍵就宣稱 FileVault／MFA 已完成整合。[J01] [A04] [X01]

## 15 官方依據與文件維護

查核日：2026-09-22。以下連結為可更新的官方文件，日後內容或 UI 可能變動。關鍵設定需依公司實際部署版本再次比對。手冊已將可確認的產品行為、建議設定值及未實測結果分開標示。

| 編號 | 官方文件 | 支持的內容 |
|---|---|---|
| J01 | [FileVault Behavior with Jamf Connect][J01] | FileVault 接續登入、DenyLocal、DisableFDEAutoLogin |
| J02 | [Password Syncing with Google][J02] | Secure LDAP、System Keychain、驗證路徑 |
| J03 | [Password Syncing][J03] | 60 分鐘預設、外部更改、舊密碼、通知與政策限制 |
| J04 | [Password Policy Settings][J04] | NetworkCheck、網路變化、訊息、例外名單 |
| J05 | [Self Service+ Sign-in Settings][J05] | RequireSignIn 與開機啟動限制 |
| J06 | [Configuring Self Service+ for Google Cloud ID][J06] | GoogleID 的網域／字典設定 |
| J07 | [Deploying Jamf Connect using a Jamf Pro PreStage Enrollment][J07] | ADE、帳號建立與部署次序 |
| J08 | [Passthrough Authentication][J08] | 網頁密碼方向、Google 既有帳號同步限制 |
| J09 | [Enabling Passthrough Authentication][J09] | Google 專屬布林參數組合 |
| J10 | [Google OIDC Login Window Integration][J10] | Google 首次登入應用程式建置 |
| J11 | [Generating a PKCS12 Keystore][J11] | LDAP 憑證與私密金鑰轉換 |
| J12 | [Deploying a .p12 Keystore using Jamf Pro][J12] | 系統鑰匙圈與憑證部署 |
| J13 | [Activating macOS Account Management][J13] | 啟用 Self Service+ 帳號管理 |
| J14 | [Creating Jamf Connect Configuration Profiles Using Jamf Pro][J14] | 描述檔管理入口 |
| J15 | [Local and Network Authentication Management Settings][J15] | 本機登入與網路登入設定影響 |
| J16 | [Initial Local Password Creation][J16] | 初始密碼與 Google ROPG 限制 |
| J17 | [Jamf Pro FileVault][J17] | 單一啟用方法、加密管理 |
| J18 | [Turning On FileVault with Jamf Connect][J18] | Connect FileVault 路徑與先決條件 |
| J19 | [Deferred enablement user unknown][J19] | ADE 帳號尚未建立的啟用順序問題 |
| J20 | [URL Scheme][J20] | networkcheck 與 signin 操作 |
| J21 | [Self Service+ State Settings][J21] | PasswordCurrent、LastSignIn 定義 |
| J22 | [State Settings and User Status][J22] | 使用者狀態查詢、不可手動修改 |
| J23 | [Jamf Connect Extension Attributes][J23] | 管理端庫存與追蹤方式 |
| J24 | [Login Window Authentication Settings][J24] | Google Login Window 基本設定鍵 |
| J25 | [FileVault using a Configuration Profile][J25] | Jamf 原生延後啟用設定 |
| J26 | [Preparation for FileVault Enablement][J26] | escrow 更新與 PRK 輪替注意事項 |
| G01 | [Google Secure LDAP overview][G01] | 支援方案與服務能力 |
| G02 | [Google Secure LDAP authentication][G02] | LDAP 連線與使用者驗證 |
| G03 | [Google Secure LDAP setup][G03] | client、權限、憑證管理 |
| G04 | [Sign a user out of a managed Google account][G04] | 雲端工作階段處置與限制 |
| G05 | [Cloud Identity editions][G05] | Cloud Identity Premium 授權條件 |
| G06 | [Secure LDAP error codes][G06] | 授權、驗證、配額與錯誤分類 |
| G07 | [Manage App Audience][G07] | Internal audience 的公司帳號範圍 |
| G08 | [Configure access permissions][G08] | LDAP 權限與生效時間 |
| G09 | [Secure LDAP FAQ][G09] | 第三方 SSO、停權與 LDAP 驗證 |
| A01 | [Use secure token, bootstrap token, and volume ownership][A01] | Mac 身分與磁碟解鎖能力 |
| A02 | [Manage FileVault with device management][A02] | MDM 加密與復原管理 |
| A03 | [If you forgot your Mac login password][A03] | 忘記密碼與 keychain 復原 |
| A04 | [Configuring Platform Single Sign-On][A04] | Apple PSSO 設定框架 |
| A05 | [Platform Single Sign-on for macOS][A05] | 功能版本、網路、密碼同步與網頁驗證限制 |
| A06 | [Single Sign-on security][A06] | Password 與 Secure Enclave 驗證差異 |
| A07 | [Platform SSO policies][A07] | FileVault Attempt／Require 與離線行為 |
| J27 | [Simplified Setup for Platform SSO][J27] | Jamf 的 ADE 工作流程與列明的支援 IdP |
| J28 | [Platform SSO with Jamf Pro][J28] | 相容擴充與 MDM 部署責任 |
| G10 | [Google OpenID Connect][G10] | Google OIDC 支援；不能單獨證明 PSSO 整合 |
| X01 | [Xpsso overview][X01] | 第三方 Google PSSO 橋接產品 |
| X02 | [Xpsso Quick Setup][X02] | OIDC、LDAP、微服務、ADE 與初次提示 |
| X03 | [Xpsso Admin Guide][X03] | 微服務及 Jamf 部署方式 |
| X04 | [Xpsso Version History][X04] | Xpsso 1.0 正式發行紀錄 |

### 文件變更紀錄

| 版本 | 日期 | 內容與驗收狀態 |
|---|---|---|
| 1.7 | 2026-09-22 | 新增 Google 原方案完整設定包：集中參數、離線產生器、mobileconfig／三份 plist、部署與回復流程；檔案驗證與公司未測狀態分開。 |
| 1.6 | 2026-09-22 | 記錄 OFFLINE-01 永久離線使用限制支線、TASTE、現成工具證據邊界及 12 項未測情境；未實作工具，原登入與同步基準不變。 |
| 1.5 | 2026-09-22 | 專案整理至 Project-macOS-IDP，新增 O365／Google 選型、8 種故障速查、Entra 10 項待驗收與交接文件；保留原圖與歷史。 |
| 1.4 | 2026-09-22 | 新增三種登入方案的易讀優缺點、七種情境比較與 Secure Enclave 硬體／PSSO 驗證區別；提供獨立比較表下載。 |
| 1.3 | 2026-09-22 | 新增 PSSO 獨立篇章入口、Google 橋接部署、自研與 AI 預算、向量圖及 PSSO 驗收表。原 Connect 操作基準不變，所有公司測試仍未執行。 |
| 1.2 | 2026-09-22 | 補上 PSSO 方案選型、Google 第三方 Xpsso 路徑、Apple 能力與尚未驗證的 FileVault／MFA 差異。原 Connect 基準與測試狀態不變。 |
| 1.1 | 2026-09-22 | 增加可下載的架構／生命週期圖及七個操作情境，明確區分 ADE 首次交機、同步完成、直接重開機、長期關機、離線、忘記本機密碼與 LDAP 故障。公司裝置驗收仍全部未測。 |
| 1.0 | 2026-09-22 | 建立一次本機密碼冷開機＋桌面 Google 密碼同步基準。官方文件交叉查核；所有公司裝置驗收項目未測。 |

維護人／Google 管理員／Jamf 管理員／驗收負責人：**由公司填入受控交接記錄**。本手冊是操作與驗收基準，不代表已修改或完成測試機設定。

[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
[J03]: https://learn.jamf.com/r/en-US/jamf-connect-documentation-current/Password_Syncing_with_Jamf_Connect
[J04]: https://learn.jamf.com/r/en-US/jamf-connect-documentation-current/Password_Policy_Settings
[J05]: https://learn.jamf.com/r/en-US/jamf-connect-documentation-current/Menu_Bar_Sign-in_Settings
[J06]: https://learn.jamf.com/r/en-US/jamf-connect-documentation-current/Configuring_the_Menu_Bar_App_for_Google_Cloud_ID
[J07]: https://learn.jamf.com/r/en-US/jamf-connect-documentation-current/Deploying_Jamf_Connect_using_a_Jamf_Pro_PreStage_Enrollment
[J08]: https://learn.jamf.com/r/en-US/jamf-connect-documentation-current/Passthrough_Authentication
[J09]: https://learn.jamf.com/r/en-US/jamf-connect-documentation-current/Enabling_PassThrough_Authentication
[J10]: https://learn.jamf.com/r/en-US/jamf-connect-documentation-current/Creating_an_OpenID_Connect_App_Integtration_Google
[J11]: https://learn.jamf.com/r/en-US/jamf-connect-documentation-current/Generating_the_PKCS12_Keystore_File_When_Integrating_Google_Cloud_Identity_Provider_with_Jamf_Pro
[J12]: https://learn.jamf.com/r/en-US/jamf-connect-documentation-current/Deploying_a_PKCS12_Keystore_File_using_Jamf_Pro
[J13]: https://learn.jamf.com/r/en-US/jamf-connect-documentation-current/Activating_Account_Management_Capabilities_in_Self_Service_Plus
[J14]: https://learn.jamf.com/r/en-US/jamf-connect-documentation-current/Creating_a_Configuration_Profile_using_Jamf_Pro
[J15]: https://learn.jamf.com/r/en-US/jamf-connect-documentation-current/Local_and_Network_Authentication_Management_Settings
[J16]: https://learn.jamf.com/r/en-US/jamf-connect-documentation-current/Initial_Local_Password_Creation
[J17]: https://learn.jamf.com/r/en-US/jamf-pro-documentation-current/FileVault
[J18]: https://learn.jamf.com/r/en-US/jamf-connect-documentation-current/Turning_On_FileVault_with_Jamf_Connect
[J19]: https://support.jamf.com/en/articles/11016687-fixing-filevault-deferred-enablement-appears-to-be-active-for-user-unknown-in-jamf-pro
[J20]: https://learn.jamf.com/r/en-US/jamf-connect-documentation-current/Jamf_Connect_URL_Scheme
[J21]: https://learn.jamf.com/r/en-US/jamf-connect-documentation-current/Jamf_Connect_State_Settings
[J22]: https://learn.jamf.com/r/en-US/jamf-connect-documentation-current/State_Settings_and_User_Status
[J23]: https://learn.jamf.com/r/en-US/jamf-connect-documentation-current/Jamf_Connect_Extension_Attributes
[J24]: https://learn.jamf.com/r/en-US/jamf-connect-documentation-current/Login_Window_Authentication_Settings
[J25]: https://learn.jamf.com/r/en-US/jamf-pro-documentation-current/Activating_FileVault_Disk_Encryption_using_a_Configuration_Profile
[J26]: https://learn.jamf.com/r/en-US/jamf-pro-documentation-current/Preparing_for_FileVault_Deployment
[G01]: https://knowledge.workspace.google.com/admin/apps/about-the-secure-ldap-service
[G02]: https://knowledge.workspace.google.com/admin/apps/secure-ldap-connectivity-testing
[G03]: https://knowledge.workspace.google.com/admin/apps/add-ldap-clients
[G04]: https://knowledge.workspace.google.com/admin/devices/sign-a-user-out-of-a-managed-google-account
[G05]: https://docs.cloud.google.com/identity/docs/editions
[G06]: https://knowledge.workspace.google.com/admin/apps/secure-ldap-service-error-code-descriptions
[G07]: https://support.google.com/cloud/answer/15549945?hl=en
[G08]: https://knowledge.workspace.google.com/admin/apps/configure-access-permissions
[G09]: https://knowledge.workspace.google.com/admin/apps/faqs-secure-ldap-service
[A01]: https://support.apple.com/guide/deployment/dep24dbdcf9e/web
[A02]: https://support.apple.com/guide/deployment/dep0a2cb7686/web
[A03]: https://support.apple.com/en-us/102633
[A04]: https://developer.apple.com/documentation/devicemanagement/configuring-platform-single-sign-on
[A05]: https://support.apple.com/en-za/guide/deployment/dep7bbb05313/web
[A06]: https://support.apple.com/en-ie/guide/security/sec0c87ccc6d/web
[A07]: https://developer.apple.com/documentation/devicemanagement/extensiblessoplatformsso_policiesobject
[J27]: https://learn.jamf.com/r/en-US/jamf-pro-documentation-current/Configuring_Simplified_Setup_for_Platform_Single_Sign-On_
[J28]: https://learn.jamf.com/r/en-US/technical-articles/Platform_Single_Sign-on_for_macOS_with_Jamf_Pro?contentId=5C7mQyjoMAS6xb13509mng
[G10]: https://developers.google.com/identity/openid-connect/openid-connect
[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/
