Toko Ekstensi Chrome untuk Perusahaan
Ini adalah bukti konsep Toko Ekstensi Chrome pribadi untuk penggunaan Perusahaan.
Ini hanya diuji dengan Chromium di Linux , namun prinsip yang sama harus diterapkan pada Windows untuk mesin yang terpasang pada domain Direktori Aktif.
Catatan: "Untuk instans Windows yang tidak tergabung ke domain Microsoft® Active Directory®, penginstalan paksa terbatas pada aplikasi dan ekstensi yang terdaftar di Toko Web Chrome."
Unduh seluruh proyek ke folder lokal.
Jalankan npm install
untuk menyiapkan paket.
Jalankan sudo npm run first-run
untuk membuat file Kebijakan di /etc/chromium/policies/managed/
(Anda mungkin perlu mengedit make/SETTINGS.js
jika instance Chromium Anda menggunakan folder yang berbeda)
Jalankan npm start
untuk membangun ekstensi dan meluncurkan server web sederhana, yang menyajikan folder dist/
.
Menjalankan sudo npm run first-run
akan membuat file Kebijakan kosong di /etc/chromium/policies/managed/crx-store-policy.json
dengan izin 777 (baca/tulis untuk semua pengguna).
File ini akan diisi oleh npm start
di bawah.
Menjalankan npm start
akan menyalin dari make/crx-store-policy.json
ke /etc/chromium/policies/managed/crx-store-policy.json
memuat kebijakan sebagai berikut:
Jika tidak berhasil, Anda mungkin perlu mengedit make/SETTINGS.js
untuk mengubah folder target menjadi salah satu dari yang berikut:
Chrome tidak akan memasang ekstensi kecuali ekstensi tersebut:
Selain itu, jika kebijakan ExtensionInstallBlocklist diatur ke "*":
(Dokumentasi lama mengacu pada nama kebijakan ExtensionInstallBlacklist dan ExtensionInstallWhitelist.)
Menjalankan npm start
akan membuat dua contoh ekstensi di src/extensions/
dan menyalinnya ke dist/
Menjalankan npm start
akan meng-host server web ringan pada port 5000, menyajikan file dari dist/
:
Fungsionalitas tambahan dapat dibuka dengan meluncurkan Chrome dengan tanda baris perintah khusus. Namun hal ini bukanlah skenario yang realistis bagi sebagian besar pengguna perusahaan.
Untuk membuat perubahan pada contoh ekstensi di src/extensions/
:
manifest.json
npm start
untuk membangun kembali file biner.crx Kode di make/
menggunakan Modul ES, bukan CommonJS.
Linux tidak memiliki Registry, jadi proyek ini menggunakan file kebijakan.
Untuk Windows, Anda harus menggunakan Kebijakan Grup Direktori Aktif.
Petunjuk untuk ini tersedia secara luas secara online.
Untuk memasang paksa ekstensi, buat kunci registri dan nilai turunan ini:
Untuk mengaktifkan penyimpanan ekstensi khusus, buat kunci registri dan nilai turunan ini:
Untuk mengaktifkan alat pengembang pada ekstensi yang dipasang secara paksa (hapus ini dalam produksi):
Untuk mengaktifkan API enterprise.hardwarePlatform:
http://gromnitsky.blogspot.com/2019/04/crx3.html
(oleh penulis crx3-utils)
https://blog.janestreet.com/chrome-extensions-finding-the-missing-proof/
Lihat di sini: https://sites.google.com/site/lock5stat/offline-use/installing-for-all-users
Ekstensi yang dipasang paksa dapat mengakses beberapa API tambahan yang dibatasi. Dalam praktiknya, satu-satunya API tambahan yang menarik adalah enterprise.hardwarePlatform
.
Berasal dari https://github.com/chromium/chromium/blob/master/chrome/common/extensions/api/_permission_features.json
Chrome dikirimkan dengan beragam API Ekstensi. Banyak di antaranya yang dibatasi untuk ChromeOS dan/atau ekstensi milik Google sendiri dan/atau Komponen saja. (Komponen adalah cara lain untuk memperluas fungsionalitas browser; komponen hanya diperuntukkan bagi pengembang Chrome. Lihat chrome://components untuk info lebih lanjut.)
Berikut ini semua API yang diketahui dan apakah tersedia di Windows:
Izin | Tersedia dalam Ekstensi Perusahaan di Windows |
---|---|
fitur aksesibilitas.modifikasi | Ya |
fitur aksesibilitas.baca | Ya |
aksesibilitasPribadi | TIDAK |
tab aktif | Ya |
aktivitasLogPrivate | TIDAK |
pengisian otomatisAssistantPrivate | TIDAK |
isi otomatis Pribadi | TIDAK |
autotestPrivate | TIDAK |
latar belakang | Ya |
penanda buku | Ya |
brailleTampilanPrivate | TIDAK |
penjelajahanData | Ya |
Penyedia sertifikat | TIDAK |
chromePrivate | TIDAK |
chromeosInfoPrivate | TIDAK |
papan klipBaca | Ya |
clipboardTulis | Ya |
commandLinePrivate | TIDAK |
perintah.aksesibilitas | TIDAK |
pengaturan konten | Ya |
konteksMenus | Ya |
kue | Ya |
crashReportPrivate | TIDAK |
cryptotokenPrivate | TIDAK |
debugger | Ya |
pengembangSwasta | TIDAK |
alat pengembang | Ya |
konten deklaratif | Ya |
desktopCapture | Ya |
desktopCapturePrivate | Ya, tapi tidak berguna |
Pemindaian dokumen | TIDAK |
unduhan | Ya |
unduhan.buka | Ya |
unduhan.rak | Ya |
enterprise.deviceAttributes | TIDAK |
enterprise.networkingAttributes | TIDAK |
perusahaan.hardwarePlatform | Ya |
perusahaan.platformKeys | TIDAK |
perusahaan.platformKeysPrivate | TIDAK |
perusahaan.pelaporanPrivate | TIDAK |
eksperimental | Ya, tapi tidak berguna |
fileBrowserHandler | TIDAK |
fileManagerPrivate | TIDAK |
fileSystemProvider | TIDAK |
pengaturan font | Ya |
gcm | Ya |
geolokasi | Ya |
sejarah | Ya |
identitas | Ya |
identitas.email | Ya |
identitasPribadi | TIDAK |
paling tidak berguna | Ya, tapi tidak berguna |
imageWriterPrivate | TIDAK |
masukan | Ya (bukan Mac) |
inputMethodPrivate | TIDAK |
pengaturan bahasapribadi | TIDAK |
peluncurSearchProvider | TIDAK |
lockWindowLayar PenuhPribadi | TIDAK |
login | TIDAK |
loginScreenStorage | TIDAK |
loginLayarUi | TIDAK |
status masuk | TIDAK |
webcamPribadi | TIDAK |
jaringan.castPrivate | TIDAK |
pengelolaan | Ya |
mediaPlayerPrivate | TIDAK |
mediaRouterPrivate | TIDAK |
mdns | TIDAK |
pemberitahuan | Ya |
echoPrivate | TIDAK |
tangkapan halaman | Ya |
kata sandiPribadi | TIDAK |
platformKeys | TIDAK |
plugin | Ya - TODO apa ini? |
pencetakan | TIDAK |
pencetakanMetrik | TIDAK |
pribadi | Ya |
proses | TIDAK |
proksi | Ya |
sumber daya Pribadi | TIDAK |
rtcPrivate | TIDAK |
Penjelajahan aman Pribadi | TIDAK |
skrip | Ya (m3) |
mencari | Ya |
sesi | Ya |
pengaturanPribadi | TIDAK |
signInDevices | Tidak (mungkin di masa depan) |
sistemPrivate | TIDAK |
tabGrup | Ya (m3) |
tab | Ya |
tabTangkap | Ya |
terminalPribadi | TIDAK |
Situs teratas | Ya |
latar belakang sementara | Tidak (mungkin di masa depan) |
tts | Ya |
ttsEngine | Ya |
penggunaPribadi | TIDAK |
kertas dinding | TIDAK |
wallpaper Pribadi | TIDAK |
navigasi web | Ya |
webrtcAudioPrivate | TIDAK |
webrtcDesktopCapturePrivate | TIDAK |
webrtcLoggingPrivate | TIDAK |
webrtcLoggingPrivate.audioDebug | TIDAK |
toko webPribadi | TIDAK |
Akhir berkas.