ChromeStore以外のページから拡張インストール で少し書いたんだけど、企業独自の拡張を配布するのは結構悩みどころ。
けど、ChromeStore以外からのページからインストールさせる方法があれば比較的安全にわかりやすく実装出来そうってことで、方法を考えてみる。

まずは今の現状から。

今うちの会社ではGoogleAppsをChromeで使わせていて、その前のグループウェアにあった機能でGoogleAppsに足りない機能を一部拡張で実現させている。

その拡張を配布する方法としては、

  1. 一台一台手動でインストールしてあげる
  2. Chromeストアで一般公開して必要に応じて、社員がStore内を検索してインストール
  3. Chromeストアで限定公開したリンクをメールや掲示板で連絡し、社員がそこからインストール
  4. ログオンスクリプトでレジストリに拡張の情報を書き込み、自動でインストール

がある。

1.については、そんなに大きくない会社だけど離れてる拠点もあるし人力じゃ結構大変だし、2.については関係ない人たちの目にはなるべく触れさせたくない。

ということで3.か4.になるのだけど、うちの会社では4.を選んでる。
理由は、どうもITリテラシーが低い方が多く、メールを送っても見ない人たちが多いから。運良くメールを開いてくれたとしても、そこからまたリンクを開く必要があるとそこでまたハードルは上がってしまう。

ということで、ログオンスクリプトでレジストリに書き込む方法を採用してるんだけど、今 Googleのページ をみるとそのやり方が消えてしまってる。正確に言うと、

拡張機能をプレインストールするには、グループ ポリシー、レジストリ、master_preferences の 3 つの方法があります。

とあるのだけど、グループポリシーとmaster_preferencesのやり方しか例がのってない。
将来的には消えちゃうやり方なのかな?お手軽なのに...

いつまで使えるかわからないけど、やり方としては

\HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Google\Chrome\Extensions\

を作って、その下に REG_SZ の path と REG_SZ の version を登録してやると、Chrome起動時に拡張を読み込むようになる(初回起動時は権限への許可操作が必要)。path はローカルである必要はなくファイルサーバー上でも可能なので、バージョンアップも結構お手軽。
chrome_reg

ところが、これが時々うまく動かない時がある。症状的には拡張機能のページからアイコンごと消えてるというのが多い。
原因としては、レジストリに設定してるパスが見つからないとか自分でゴミ箱アイコンクリックしてしまって削除しちゃったとかがあると思うんだけど、パスはたどり着けるし消した覚えはないって言われるしでイマイチつかめない。
こうなるとユーザー側では再インストール出来ないので、こちらがプロファイルを新しく作りなおす等をして対応してあげなければならない。

そこで、ChromeStoreでURL限定公開に設定し、会社に一つはあるだろうポータルサイト経由でインストールさせてみるのはどうだろうという話。

ChromeStoreでは、hromeStoreのURLを知っている人(拡張のIDを知ってる人)のみがインストール出来るようにすることもできる。この方法を利用すれば、外部からは通常アクセス出来ない場所に配布場所を準備して自社機能特有の拡張をChromeStore経由で比較的安全に流通させることが出来るのではないかと思ってる。
所有者確認までは一般公開にして確認処理が終わったら限定公開のページにしちゃえば、GoogleDriveやGoogleSite経由でイントラネットっぽくやれるんじゃないかな?

もちろん、第三者が何かの拍子にURLを知っちゃってインストールしてしまう可能性もあるから、拡張起動時にイントラ内のWebサーバーとやりとりして、イントラ内ということが保証されてから動作するような仕組みとかも考えなきゃいけないけど。

この方法だったら、うまくポータルをデザインすればインストールまでのハードルはかなり低くなる感じがする。
また、ゴミ箱で削除してしまっても再インストールできるので、動作が不安定になってもユーザー側で対応できるので運用も楽になりそう。

だけど、もしこれを会社でやろうとするとGoogleStoreへの500円課金が発生するので、頭の硬い経理という高いハードルが出来る。購入物が発生しない利用料をカード払いにするっていうはなかなかOK出してくれないんだよね。

うーん...