株式会社クリアコード > ククログ

ククログ


Firefox・Thunderbirdの組織内向けカスタマイズの方法の簡単な紹介と比較

企業や団体などにおいて、組織内標準のWebブラウザとしてFirefoxの導入を検討されているお客様や、Firefoxを既に導入済みであるというお客様から、「Firefoxの設定を管理者が一括して管理したい(ユーザに管理させたくない)」という要望をよく伺います。

FirefoxとThunderbirdでは、設定を含むカスタマイズの内容を管理者の手で管理する方法にはいくつかの選択肢があり、それぞれメリットとデメリットがあります。できることの幅が狭い物から広い物へと順番に並べたものが次のリストです。

  1. user.js
  2. MCDのローカル設定ファイル
  3. MCDのリモート設定ファイル
  4. Active Directoryのグループポリシー
  5. CCK2 Wizard
  6. それ以外のアドオン

以下、それぞれについてどのようなメリットとデメリットがあるのか、どのような目的・場合に対して適切な選択肢となるのかを簡単に紹介します。自力での運用を検討されている方は、カスタマイズ手法の選定の参考にしてみて下さい。

1. user.js

FirefoxやThunderbirdは、プリファレンスという仕組みによって多くの設定を管理しています。user.jsは、プリファレンスに基づく設定について「固定の設定」「複数ユーザで共通の設定」らしき挙動を実現する最も手軽な手段です。詳細はabout:config と user.js による Firefox のカスタマイズ - えむもじらなどの記事を参照して下さい。

利用手順
  1. 指定したい設定の名前と値を調べる。 (法人向けFAQの記述などが参考になる)
  2. user_pref("設定名", 値); の形で設定名と値のペアを列挙したファイル「user.js」を作成する。 ファイル形式は、文字エンコーディングがUTF-8のプレーンテキストとする。
  3. user.jsをFirefox(またはThunderbird)のユーザプロファイルフォルダに設置する。
  4. Firefox(またはThunderbird)を再起動する。

複数ユーザや他のコンピュータに設定を展開する際は、作成済みのuser.jsをコピーして3から4の手順を繰り返すことになります。

プロファイルフォルダの位置はFirefoxから辿ることができます。about:supportを開き、「プロファイルフォルダ」欄の「フォルダを開く」ボタンを押すと、現在利用中のプロファイルのプロファイルフォルダが開かれます。

メリット
  • 導入が簡単である。(利用にあたっては管理者権限すら不要)
  • ユーザが設定値を万が一変更した場合でも、Firefox・Thunderbirdを再起動すると設定値が元に戻る。
デメリット
  • 設定の仕方が独特なので、Active Directoryのような他の集中管理の仕組みとは別に運用する必要がある。
  • 設定したい項目の設定名と適切な設定値を別途調べなくてはならない。
  • 各PCの各ユーザーアカウントに対してファイルを設置する必要があるため、インストール対象が増えると手間が大きく増大する。 (よって、2桁以上の台数のPCに展開するのは現実的でないと考えられる。)
  • 設定を管理者が変更するためには、user.jsを全クライアントに対して設置し直さなくてはならない。
  • Firefox・Thunderbirdを起動している間は、ユーザが設定値を任意に変更・上書きできる。 そのため、ユーザによる設定の変更を禁止しきれない。
  • プリファレンス以外の仕組みで管理されている設定を変更できない。 例えば、以下の設定はプリファレンスで管理されていないため、この方法では変更できない。
    • 有効なアドオンの一覧
    • ヘルパーアプリケーションの関連付け
    • Cookieやオフラインキャッシュなど、Webサイトごとに保存される情報
    • 履歴
    • ブックマーク
    • メールフォルダの要約情報
    • グローバル検索のための索引(Thunderbird)
    • SSLなどの自己署名証明書や独自ルート証明書の登録
適切な用途
  • 基本的には、個人利用向けの機能。 一人で複数台のPCを利用していて、それぞれの間で共通の設定を用いるというような場合に使う。 (ただ、その用途であれば現在は、Firefox Syncを使用した方がブックマークや履歴などもクライアント間で共有できて利便性は高い。)
  • ある程度以上の規模の組織内で広く設定を展開するのには適していない。 10人未満程度の極めて小規模の、互いが互いを信頼できるような状況で、ネットワークの初期設定を手動で行う手間を軽減するといった程度の用途に限定して使うとよいと思われる。

2. MCDのローカル設定ファイル

MCD(Mission Control Desktop)は、Netscape由来の集中管理機構です。詳細はMozilla 製品の集中管理 - 基本編 - MCDなどを参照して下さい。

元々は、設定ファイルを自動生成する管理ツールとのセットで運用する事を前提とした仕組みでしたが、Netscapeが消滅した現在では、設定ファイルの自動生成用の管理ツールがなくなってしまっています。 それでも、設定ファイルを自力で作成しさえすれば、この仕組みは今でも利用できます。

利用手順
  1. 指定したい設定の名前と値を調べる。 (法人向けFAQの記述などが参考になる)
  2. defaultPref("設定名", 値); または lockPref("設定名", 値); の形で設定名と値のペアを列挙したファイル「autoconfig.cfg」を作成する。 ファイル形式は、文字エンコーディングがUTF-8のプレーンテキストとする。 また、ファイルの1行目は必ずコメント行とする(読み込み時に1行目だけは無視されるため)。
  3. 以下の内容のプレーンテキストファイル autoconfig.js を作成する。

    1
    2
    3
    
    pref("general.config.filename", "autoconfig.cfg");
    pref("general.config.vendor", "autoconfig");
    pref("general.config.obscure_value", 0);
    
  4. 作成した autoconfig.cfg を、FirefoxまたはThunderbirdのインストール先ディレクトリに置く。 (Windowsであれば、 C:\Program Files (x86)\Mozilla Firefox\autoconfig.cfg などの位置)
  5. 作成した autoconfig.js を、Firefoxのインストール先の defaults/prefs/ ディレクトリに置く。 (Windowsであれば、 C:\Program Files (x86)\Mozilla Firefox\defaults\prefs\autoconfig.js などの位置)

設定は、そのコンピュータでFirefox(またはThunderbird)を使うユーザすべてに影響します。 他のコンピュータに設定を展開する際は、作成済みのautoconfig.jsとautoconfig.cfgをコピーして4から5の手順を繰り返すことになります。

メリット
  • そのコンピュータ上でFirefox(またはThunderbird)を使うユーザすべてに共通の設定を行える。
  • autoconfig.cfgの中ではforループやfunctionなどのJavaScriptの機能が使えるため、似たような設定を大量に施したい場合に労力やミスを減らすことができる。
  • プラットフォームの環境変数の値や、Thunderbirdの場合はLDAP経由でディレクトリサーバの情報を読み出せるので、if文と組み合わせるなどして、設定をある程度自動的に振り分けられる。
  • lockPref()を使うことで、ユーザによる設定の変更を禁止できる。
デメリット
  • 設定の仕方が独特なので、Active Directoryのような他の集中管理の仕組みとは別に運用する必要がある。
  • 設定したい項目の設定名と適切な設定値を別途調べなくてはならない。
  • 設定ファイルを管理者権限で設置しなくてはならない。
  • 各PCにファイルを設置する必要があるため、インストール対象が増えると手間が大きく増大する。
  • 設定を管理者が変更するためには、autoconfig.cfgを全クライアントに対して設置し直さなくてはならない。
  • プリファレンス以外の仕組みで管理されている設定を変更できない。
適切な用途
  • user.jsと同様に、設定を変更する際は設定ファイルを各クライアントに設置し直さなくてはならないため、ある程度以上の規模の組織内で広く設定を展開するのには適していない。 10人未満程度の極めて小規模の組織で使うとよいと思われる。
  • ユーザによる設定の変更を禁止することができるため、全権を委任してしまうといったことまではできないメンバー(アルバイトなど)を含む組織では、user.jsよりも有用な場面がある。

3. MCDのリモート設定ファイル

MCDでは、autoconfig.cfg相当の内容のファイルをWebサーバやファイル共有サーバなどに設置しておき、それを毎回起動時に動的に読み込むという事ができます。これにより、設定の本格的な集中管理が可能となります。

利用手順
  1. autoconfig.cfgと同様の内容で、リモート設置用の設定ファイル autoconfig.jsc を作成する。 (autoconfig.cfgをそのまま使用してもよい)
  2. autoconfig.jscを、パスワードの入力などの認証なしにアクセス可能なWebサーバまたはファイル共有サーバ上に設置する。
  3. 2で設置したファイルのURLを控える。 ファイル共有サーバの場合は「file://」から始まるURLである。
  4. ローカル設置用の autoconifg.js と autoconfig.cfg を作成する。 autoconfig.cfg は以下の内容で作成する。

    1
    2
    
    // 1行目は必ずコメントとしてください。
    lockPref("autoadmin.global_config_url", "3で控えたURL");
    
  5. 作成した autoconfig.js と autoconfig.cfg を、通常通りにローカルに設置する。

autoadmin.global_config_urlで指定されたURLから設定ファイルをダウンロードできなかった場合、過去に正常にダウンロードできたことがあればその時のキャッシュが読み込まれます。 キャッシュがない場合はエラーとなって、FirefoxおよびThunderbirdを起動できません。

メリット
  • 全クライアントに共通の設定を変更する際に、いちいち各クライアント上で作業を行わなくてもよい。 管理者が1つの設定ファイルを編集するだけで、全クライアントに変更が自動的に反映される、という運用が可能になる。
  • それ以外にも、MCDのローカル設定ファイルを使う場合と同じメリットがある。
デメリット
  • 設定の仕方が独特なので、Active Directoryのような他の集中管理の仕組みとは別に運用する必要がある。
  • 設定したい項目の設定名と適切な設定値を別途調べなくてはならない。
  • 導入時の最初の1回だけは、設定ファイルを管理者権限で設置しなくてはならない。
  • 少なくとも最初の1回の起動時については、クライアントがネットワークに接続されている必要がある。
  • プリファレンス以外の仕組みで管理されている設定を変更できない。
適切な用途
  • 最初の1回の設定ファイルの設置以後は、重要な設定は各クライアントに置いておかなくてもよく、それ以後は設定の変更を管理者側だけで行える。 そのため、設定の変更が度々発生するような場合に特に有用である。
  • 数百クライアント、数千クライアントといった大きな規模でも運用できる。
  • ユーザによる設定の変更を禁止することができるため、全権を委任してしまうといったことまではできない信頼できないメンバーを含む組織でも有用である。
  • 外部設定ファイルを参照するため、オフラインで使用することがある端末(ノートPCなど)は、この運用には不向きである。

4. Active Directoryのグループポリシー

Firefox本体にはActive Directoryと連携するための機能は含まれていませんが、アドオンを使うことによって、グループポリシーによる設定の集中管理が可能となります。

利用手順
  1. Active Directoryドメインに参加している各クライアントPC上のFirefoxに、アドオンGPO For Firefoxをインストールする。 (具体的なインストール方法は法人向けFAQの記述などを参考にする)
  2. GPO For Firefoxのダウンロードページの「You can find an adm file ready to be used for your GPO at the following link.」と書かれた箇所にあるリンクから、管理用テンプレートファイル(admファイル)をダウンロードして、管理コンソールに読み込ませる。
  3. 管理コンソールを使ってFirefoxの設定を行う。

以降は、ドメインに参加したWindows PC上でFirefoxを起動する度に、グループポリシーで変更された設定が読み込まれ、自動的に反映されるようになります。

メリット
  • 構築済みのActive Directoryドメイン上で、他のグループポリシーの設定と同じ流儀でFirefoxの設定を集中管理できる。
  • Locked Settings以下から、ユーザによる設定の変更を禁止したい各種の設定を行える。
  • Default Settings以下から、ユーザによる設定の変更を許可したい各種の設定を行える。
  • Firefoxの設定の内部名や値の意味について、知る必要がない。
デメリット
  • 構築済みのActive Directoryドメインが必要である。
  • Firefoxのインストール、アドオン「GPO For Firefox」のインストールは別途各クライアント上で行う必要がある。
  • MCDの設定ファイルでは使えていたような、forfunctionなどのJavaScriptの機能、環境変数とifを使った設定の自動振り分けなどが、グループポリシー経由での管理では行えない。 (代わりに、設定の振り分けはグループポリシーの適用範囲をの制御を通じて行う。)
  • プリファレンス以外の仕組みで管理されている設定を変更できない。
  • 公開されている管理用テンプレートファイルが英語の物しかない。
  • Firefoxのバージョンアップによってプリファレンスの設定項目の名前や値の意味などが変わった場合、管理用テンプレートファイルを更新するか、自力で修正する必要がある。
  • 公開されている管理用テンプレートファイルで用意されていない設定項目を変更したい場合は、管理用テンプレートファイルを自力で編集する必要がある。
適切な用途
  • 既にActive Directoryドメインを運用している場合に、特に有用である。
  • クライアント数が数千を超えるような大規模でも運用できる。
  • ユーザによる設定の変更を禁止することができるため、全権を委任してしまうといったことまではできない信頼できないメンバーを含む組織でも有用である。

5. CCK2 Wizard

CCK2 Wizardは、Firefoxのカスタマイズ用のファイルを作成するためのウィザードを提供するアドオンです。このウィザードに従って操作を行い、作成された設定用ファイルを各クライアントにインストールすることで、様々なカスタマイズ内容を一度に反映することができます。

利用手順
  1. 管理者のPC上のFirefoxに、CCK2 Wizardをインストールする。
  2. ツールバー上に追加される「CCK2 Wizard」ボタンをクリックし、ウィザードを起動する。
  3. 「File」→「New」と辿り、カスタマイズ用設定の名前と一意な識別子を入力する。
  4. ウィザード(設定の入力画面)が出るので、行いたいカスタマイズの内容を決定する。
  5. ウィザードの最後のページで「Create an Extension」または「Use AutoConfig」ボタンを押下し、カスタマイズ用のファイルを出力する。
    • 「Create an Extension」を選択した場合、アドオンのインストールパッケージが出力されるので、各クライアントにアドオンをインストールする。 (ユーザ権限ではなく管理者権限でインストールする場合は、具体的なインストール方法は法人向けFAQの記述などを参考にする)
    • 「AutoConfig」を選択した場合、カスタマイズ用ファイルを圧縮したZIPファイルが出力されるので、各クライアントのFirefoxのインストール先にZIPファイルの内容を展開して設定ファイル群をインストールする。
メリット
  • ユーザによる設定の変更を禁止したい設定と、ユーザによる設定の変更を許可したい設定を行える。
  • Firefoxの設定の内部名や値の意味について、知る必要がない。
  • プリファレンスでは行えないカスタマイズも行える。 具体的には以下のことが行える。
    • 他のアドオンのバンドル。
    • プラグインのDLLファイルのバンドル。
    • 検索プロバイダ(検索エンジン)の定義ファイルのバンドル。
    • ブックマークの内容の初期設定の変更。
    • Windowsのレジストリの値の変更。
    • 独自の証明書の自動インポート。
    • about:configへのアクセスの禁止。
  • カスタマイズ用設定のプロジェクトを複数保存しておき、カスタマイズ用ファイルを作り分けることができる。
  • アドオンの自動アップデートという形で、カスタマイズ内容の更新をクライアントに自動配信し、設定を集中管理することができる。
デメリット
  • 設定の仕方が独特なので、Active Directoryのような他の集中管理の仕組みとは別に運用する必要がある。
  • ウィザードが英語の物しかない。
  • CCK2 Wizard自体が対応している設定項目以外の設定には、MCDの設定ファイルを手描きするのと同じ程度の手間と知識が必要。
  • CCK2 Wizard自体が対応しているカスタマイズ項目以外のカスタマイズは難しい。
  • カスタマイズ内容の更新をクライアントに自動配信して集中管理するためには、アドオンのアップデート情報を独自に提供する必要がある。
適切な用途
  • アドオン形式で独自にアドオンのアップデート情報まで含めて提供するのであれば、数千クライアント以上の規模にも対応できると思われる。
  • その場合、最初の1回の設置以後は、重要な設定は各クライアントに置いておかなくてもよいため、設定の変更が度々発生するような場合に特に有用である。
  • ユーザによる設定の変更を禁止することができるため、全権を委任してしまうといったことまではできない信頼できないメンバーを含む組織でも有用である。
  • カスタマイズ用のアドオンの数をあまり増やしたくない人にも有用である。

6. それ以外のアドオン

ここまでで挙げた中ではCCK2 Wizardが最も柔軟性の高いカスタマイズ手段となりますが、CCK2 Wizardでもできないようなカスタマイズを行いたい場合には、現実的にはやはり、「そのためのアドオンを使用する」ということになります。例えば、以下のような例があります。

  • Thunderbirdの新規メールアカウント作成用ウィザードをカスタマイズしたい場合→AutoConfiguration Hookを利用する。
  • メジャーアップデートの適用を禁止してセキュリティアップデートの適用だけを許可するという運用をしたい場合→Only Minor Updateを利用する。

法人向けFAQでも、組織内での運用で便利と思われるアドオンをいくつか紹介しています。また、既存のアドオンでニーズを満たせない場合は、独自にアドオンを開発するという選択肢もあります。

アドオンを全ユーザ向けに管理者権限でインストールする方法も、目的に応じていくつかの選択肢があります。法人向けFAQに詳しい記述がありますので、そちらも併せて参照して下さい。

まとめ

以上、FirefoxやThunderbirdを組織内で利用するにあたって管理者の手でカスタマイズ内容を管理するいくつかの選択肢を比較する形で紹介しました。

この記事では、それぞれのカスタマイズ手法のメリットとデメリットという所に焦点を当てて紹介しましたが、そもそもどんな点をカスタマイズできるのか?という事自体に関心があるという方もいらっしゃることでしょう。上記文中でも紹介していますが、組織内での利用で行いたくなりがちな様々なカスタマイズについて、現在Mozilla Japanと共同でFAQの編纂を進めています。概要を把握するためにも、まずはFAQをざっと眺めてみて下さい。

また、クリアコードでは、FirefoxおよびThunderbirdの利用にあたってお困りのお客様について、問題を解決するお手伝いをしています。FirefoxやThunderbirdの導入やカスタマイズでお困りで、自力での解決が難しいという場合には、弊社有償サポート窓口までぜひ一度ご相談下さい。

ところで、4月9日に行われるIE6はEOLだが、これからのWeb系システムは本当にブラウザでいいのか? - エンタープライズWebプラットフォーム大戦争というイベントで、Firefoxの企業での利用について弊社の結城が発表させていただくことになりました。イベントのタイトルからは少し離れた話題となりますが、上記の話も含めて、FirefoxやThunderbirdの企業利用のカスタマイズ事例について紹介させていただく予定です。定員は既に満席のようですが、直前になるとキャンセルが出ることが予想されますので、このような話題に関心があるという方は、諦めず補欠登録しておいてみてはいかがでしょうか?

タグ: Mozilla
2014-03-27

«前の記事: test-unitならRSpec 3のComposable Matchers相当のことをどう書くか 最新記事 次の記事: Debianでパッケージをリリースできるようにしたい - よりDebianらしく»
タグ:
年・日ごとに見る
2008|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|02|03|04|05|06|07|08|09|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|11|12|
2014|01|02|03|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|05|06|07|08|09|10|11|12|
2016|01|02|03|04|05|06|07|08|09|10|11|12|
2017|01|02|03|04|05|06|07|08|09|10|11|12|
2018|01|02|03|04|05|06|07|08|09|10|11|12|
2019|01|02|03|04|