我們正在開發一個帶有助手工具的應用程序,該助手工具使用SMJobBless安裝到系統中。這按預期工作;但有一個警告。使用SMJobBless時防止授權彈出
我們頻繁進行自動部署 - 有時每週超過一次。每當輔助工具版本發生變化時,我們都會重新註冊 - 導致密碼提示。這兩個因素很快會對我們的用戶產生不良影響。
在最初的Helper Tool安裝過程中,有沒有辦法讓密碼提示只出現一次?後續更新能否在沒有提示的情況下發生也許有一種方法可以利用現有的Helper Tool來安裝自己的更新版本?
我們正在開發一個帶有助手工具的應用程序,該助手工具使用SMJobBless安裝到系統中。這按預期工作;但有一個警告。使用SMJobBless時防止授權彈出
我們頻繁進行自動部署 - 有時每週超過一次。每當輔助工具版本發生變化時,我們都會重新註冊 - 導致密碼提示。這兩個因素很快會對我們的用戶產生不良影響。
在最初的Helper Tool安裝過程中,有沒有辦法讓密碼提示只出現一次?後續更新能否在沒有提示的情況下發生也許有一種方法可以利用現有的Helper Tool來安裝自己的更新版本?
簡答:第SMJobBless()
總是提示輸入管理員憑據。沒有辦法阻止它提示。如果你調用這個API,它會提示(或失敗)。在解決方法
較長的答案:
如果你的助手工具與管理/ root權限運行,理論上可以用新版本替換本身。 這樣做之前請仔細考慮。獲得這個權利和維護安全性是非常困難,事實上,即使是主要的操作系統 installer functionality有一個強有力的跡象表明,走這條路線的風險可能會超過收益。
Race Conditions, Secure File Operations, and Time of Check vs Time of Use
蘋果Security APIs,特別SecRequirementCreateWithString
和SecCodeCheckValidity
:
如果必須進行,在讀了。
macOS Code Signing In Depth和Code Signing Requirement Language
你必須確保你的助手工具不能欺騙與替換自己(或執行)惡意代碼,否則你將已經打開軟件爲是一個平凡的根開發矢量。
還要注意:無論什麼樣的蘋果目前並覈實SMJobBless
安裝輔助工具,可以想象的是,他們可以收緊在未來的要求,並拒絕運行已被修改,因爲他們通過SMJobBless
安裝輔助工具。最安全的方法(在多個方面)是隻要你需要安裝/更新助手就撥打SMJobBless
。
感謝您的回答,尤其是鏈接。我們將爲我們的用戶提供當前的解決方案,但這些解決方法在我們的集成測試中很有用。 – Liosan