macOS 10.14 或更新版本上新的使用者資料保護

技術文章

Solution
Application
Content Type
技術說明文件
Utilities & Services
ft:locale
zh-TW

在 macOS 10.14 或更新版本上,某些使用者應用程式資料須經使用者核准才能存取。

使用者可以將應用程式新增到系統偏好設定安全性和隱私權面板(macOS 12或更早版本)或系統設定隱私權和安全性面板(macOS 13或更高版本)中新的「完整磁碟存取」類別,以預先批准該應用程式。藉由新增應用程式,使用者便預先核准存取所有其私人機密資料,而不會出現提示。需要提供管理員認證才能在「系統偏好設定」中完成此程序。

您也可以使用 macOS 10.14 或更新版本上新的「隱私權偏好原則控制」承載,透過 MDM 從遠端管理核准。

對使用者的影響

在 macOS 10.14 或更新版本上,只要應用程式嘗試存取受保護的檔案和應用程式資料,就會提示使用者「允許」或「拒絕」。如果應用程式開發人員在 Info.plist 中加入了用途字串來說明資料存取請求的理由,這些字串也會出現在提示中。

以舊版 Xcode 編譯的應用程式可能不會顯示提示的用途說明。

對 Jamf Pro 管理員的影響

Jamf Pro 管理員可預期 macOS 10.14 或更新版本上出現下列行為:

  • 某些透過終端機執行的原則可能會提示使用者允許或拒絕「終端機」執行。

  • 某些由 Jamf 二進位檔在背景執行的原則可能造成錯誤。這些錯誤可誤報為成功。

隱私權偏好原則控制承載

組織可以使用行動裝置管理,透過 Apple 在 macOS 10.14 或更新版本上新的「隱私權偏好原則控制」承載,從遠端管理安全性偏好設定。

「隱私權偏好原則控制」承載可控制下列隱私權服務字典金鑰:
  • AddressBook

  • Calendar

  • Reminders

  • Photos

  • Camera

  • Microphone

  • Accessibility

  • PostEvent

  • SystemPolicyAllFiles

  • SystemPolicySysAdminFiles

  • AppleEvents

若要允許或拒絕應用程式或二進位檔案存取上述其中一個隱私權服務字典金鑰,您可以建立包含下列內容的承載:
字典金鑰說明

Identifier

應用程式或服務的唯一識別值使用應用程式的套件組合 ID 或使用二進位檔案的安裝路徑。

Identifier Type

必須是套件組合 ID 或檔案路徑,取決於它是應用程式套件組合或二進位檔案。

Code Requirement

用來簽署應用程式或服務的基於開發人員憑證的唯一值。此值是透過命令 codesign – display -r - 取得

Static Code

選用:如果應用程式已設定為 Allow=True,並使用 /usr/bin/log 顯示服務,但仍出現提示,則可能需要設定此值為 true。若設定為 true,則會靜態驗證磁碟上應用程式或服務的代碼需求。若設定為 false,則會在執行時驗證記憶體中的應用程式。這只會在處理程序使其動態代碼簽章失效時使用。False 為預設設定。

Allowed

布林值:若設為 true,則授與存取。若設為 false,則拒絕存取。false 值會覆寫使用者先前在系統偏好設定(macOS 12 或更早版本)系統設定(macOS 13 或更新版本)中設定的值。

代碼簽章需求和套件組合識別碼
建立自訂設定描述檔的 Jamf Pro 管理員必須包含應用程式的代碼簽章需求和套件組合 ID,才能允許存取受保護的使用者資料。您可以執行下列 codesign 命令來取得代碼簽章需求和套件組合識別碼 (如有需要):
codesign -dr - /Applications/Application.ap
codesign -dr - /path/to/binary
請參閱下表中的範例:
輸入輸出
codesign -dr - /usr/local/bin/jamf

Executable=/usr/local/jamf/bin/jamf designated => identifier "com.jamfsoftware.jamf" and anchor apple generic and certificate 1[field.1.2.840.113635.100.6.2.6] / exists / and certificate leaf[field.1.2.840.113635.100.6.1.13] / exists / and certificate leaf[subject.OU] = "483DWKW443"

codesign -dr - /Library/Application\ Support/JAMF/Jamf.app

Executable=/Library/Application Support/JAMF/Jamf.app/Contents/MacOS/Jamf designated => identifier "com.jamf.management.Jamf" and anchor apple generic and certificate 1[field.1.2.840.113635.100.6.2.6] / exists / and certificate leaf[field.1.2.840.113635.100.6.1.13] / exists / and certificate leaf[subject.OU] = "483DWKW443"

使用下列內容作為代碼簽章:

identifier "com.jamfsoftware.jamf" and anchor apple generic and certificate 1[field.1.2.840.113635.100.6.2.6] / exists / and certificate leaf[field.1.2.840.113635.100.6.1.13] / exists / and certificate leaf[subject.OU] = "483DWKW443"
Note:如果應用程式開發人員變更其代碼簽署憑證,則現有設定檔將會失效,且需要具有新代碼簽章的新設定檔。
識別嘗試存取資料的處理程序和應用程式

若要識別您試圖允許資料存取的應用程式或二進位檔案,請執行下列命令:

/usr/bin/log stream --debug --predicate 'subsystem == "com.apple.TCC" AND eventMessage BEGINSWITH "AttributionChain"'
若要檢視先前請求的資料存取,請執行下列命令:
/usr/bin/log show --predicate 'subsystem == "com.apple.TCC"' | grep Prompting