企業版 Chrome 擴充功能商店
這是企業使用的私人 Chrome 擴充功能商店的概念驗證。
這僅在Linux上使用Chromium進行了測試,但對於連接到 Active Directory 網域的計算機,同樣的原則也應適用於 Windows。
注意:“對於未加入 Microsoft® Active Directory® 網域的 Windows 實例,強制安裝僅限於 Chrome Web Store 中列出的應用程式和擴充功能。”
將整個專案下載到本機資料夾。
執行npm install
來設定軟體包。
執行sudo npm run first-run
在/etc/chromium/policies/managed/
中建立策略文件
(如果您的 Chromium 實例使用不同的資料夾,您可能需要編輯make/SETTINGS.js
)
執行npm start
建置擴充功能並啟動一個簡單的 Web 伺服器,提供dist/
資料夾。
執行sudo npm run first-run
將在/etc/chromium/policies/managed/crx-store-policy.json
建立空白策略文件
具有權限 777(所有使用者讀取/寫入)。
該文件將由下面的npm start
填入。
運行npm start
將從make/crx-store-policy.json
複製到/etc/chromium/policies/managed/crx-store-policy.json
包含以下政策:
如果它不起作用,您可能需要編輯make/SETTINGS.js
將目標資料夾更改為以下資料夾之一:
Chrome 不會安裝擴充程序,除非它們是:
此外,如果策略 ExtensionInstallBlocklist 設定為「*」:
(較舊的文件引用策略名稱 ExtensionInstallBlacklist 和 ExtensionInstallWhitelist。)
運行npm start
將在src/extensions/
中建立兩個範例擴充並將它們複製到dist/
執行npm start
將在連接埠 5000 上託管一個輕量級 Web 伺服器,從dist/
提供檔案:
可以透過使用特殊命令列標誌啟動 Chrome 來解鎖其他功能。然而,對於大多數企業用戶來說,這並不是一個現實的場景。
要更改src/extensions/
中的範例擴充功能:
manifest.json
中的版本號npm start
以重建 binary.crx 文件make/
中的程式碼使用 ES 模組,而不是 CommonJS。
Linux 沒有註冊表,因此該專案使用策略檔案代替。
對於 Windows,您必須使用 Active Directory 的群組原則。
這方面的說明在網路上隨處可見。
若要強制安裝擴展,請建立此註冊表項和子值:
若要啟用自訂擴充存儲,請建立此註冊表項和子值:
若要在強制安裝的擴充功能上啟用開發人員工具(在生產中將其刪除):
若要啟用 API enterprise.hardwarePlatform:
http://gromnitsky.blogspot.com/2019/04/crx3.html
(crx3-utils的作者)
https://blog.janestreet.com/chrome-extensions-finding-the-missing-proof/
請參閱此處:https://sites.google.com/site/lock5stat/offline-use/installing-for-all-users
強制安裝的擴充功能可以存取一些額外的受限 API。實際上,唯一感興趣的附加 API 是enterprise.hardwarePlatform
。
源自 https://github.com/chromium/chromium/blob/master/chrome/common/extensions/api/_permission_features.json
Chrome 附帶了廣泛的擴充 API。其中許多僅限於 ChromeOS 和/或 Google 自己的擴充功能和/或僅限元件。 (組件是擴展瀏覽器功能的另一種方式;它們僅供 Chrome 開發人員使用。有關詳細信息,請參閱 chrome://components。)
以下是所有已知的 API 以及它們是否在 Windows 中可用:
允許 | 可在 Windows 上的企業擴充功能中使用 |
---|---|
輔助功能.修改 | 是的 |
accessibilityFeatures.read | 是的 |
可訪問性私人 | 不 |
活動標籤 | 是的 |
活動日誌私有 | 不 |
自動填充助理私人 | 不 |
自動填充私人 | 不 |
自動測試私人 | 不 |
背景 | 是的 |
書籤 | 是的 |
點字顯示私人 | 不 |
瀏覽數據 | 是的 |
證書提供者 | 不 |
chromePrivate | 不 |
chromeosInfoPrivate 訊息 | 不 |
剪貼簿讀取 | 是的 |
剪貼簿寫 | 是的 |
命令列私有 | 不 |
命令.輔助功能 | 不 |
內容設定 | 是的 |
內容選單 | 是的 |
餅乾 | 是的 |
崩潰報告私人 | 不 |
cryptotoken私人 | 不 |
偵錯工具 | 是的 |
開發商私人 | 不 |
開發工具 | 是的 |
聲明性內容 | 是的 |
桌面捕捉 | 是的 |
桌面捕捉私人 | 有,但是沒用 |
文件掃描 | 不 |
下載 | 是的 |
下載.open | 是的 |
下載.架子 | 是的 |
enterprise.deviceAttributes | 不 |
enterprise.networking屬性 | 不 |
企業硬體平台 | 是的 |
enterprise.platformKeys | 不 |
enterprise.platformKeysPrivate | 不 |
enterprise.reportingPrivate | 不 |
實驗性的 | 有,但是沒用 |
文件瀏覽器處理程序 | 不 |
文件管理器私有 | 不 |
檔案系統提供者 | 不 |
字體設定 | 是的 |
氣相層析法 | 是的 |
地理定位 | 是的 |
歷史 | 是的 |
身分 | 是的 |
身分.電子郵件 | 是的 |
身份私人 | 不 |
idl測試 | 有,但是沒用 |
imageWriter私人 | 不 |
輸入 | 是(不是 Mac) |
輸入法私有 | 不 |
語言設定私人 | 不 |
啟動器搜尋提供者 | 不 |
鎖定視窗全螢幕私人 | 不 |
登入 | 不 |
登入螢幕儲存 | 不 |
登入介面 | 不 |
登入狀態 | 不 |
網路攝影機私人 | 不 |
網路.castPrivate | 不 |
管理 | 是的 |
媒體播放器私有 | 不 |
媒體路由器專用 | 不 |
網域名稱伺服器 | 不 |
通知 | 是的 |
迴聲私人 | 不 |
頁面捕獲 | 是的 |
密碼私人 | 不 |
平台金鑰 | 不 |
外掛 | 是的 - TODO 這是什麼? |
印刷 | 不 |
印刷指標 | 不 |
隱私 | 是的 |
流程 | 不 |
代理人 | 是的 |
資源私有 | 不 |
rtc私有 | 不 |
安全瀏覽私人 | 不 |
腳本編寫 | 是(立方米) |
搜尋 | 是的 |
會議 | 是的 |
設定私人 | 不 |
登入裝置 | 否(也許將來) |
系統私有 | 不 |
選項卡組 | 是(立方米) |
選項卡 | 是的 |
標籤捕獲 | 是的 |
終端私人 | 不 |
熱門網站 | 是的 |
瞬態背景 | 否(也許將來) |
語音合成 | 是的 |
tts引擎 | 是的 |
使用者私人 | 不 |
壁紙 | 不 |
壁紙私人 | 不 |
網路導航 | 是的 |
webrtcAudio私有 | 不 |
webrtcDesktopCapturePrivate | 不 |
webrtcLogging私有 | 不 |
webrtcLoggingPrivate.audioDebug | 不 |
網上商店私人 | 不 |
文件結束。