サードパーティー製認証モジュール!

2008年8月22日(金)
Shin.鶴長

サードパーティー製認証系モジュールの探し方

 「第2回:組み合わせ可能な認証系モジュール(http://www.thinkit.co.jp/article/120/2/)」では、Apacheの認証系モジュールの仕組みを紹介しました。フロントエンドを担当するモジュールと、バックエンドを担当するモジュールの組み合わせで、バリエーションに富んだ認証方式を実現でき、その一例としてBasic認証や、DBMファイルを使ったユーザー情報管理、匿名ユーザー(anonymous)でのアクセスなどを取り上げました。

 「第2回:組み合わせ可能な認証系モジュール(http://www.thinkit.co.jp/article/120/2/)」で取り上げた認証系モジュールはApacheに標準で採用されているモジュールでしたが、今回はサードパーティー製モジュールを取り上げ、概要やインストール方法を紹介します。

 認証系モジュールに限らず、Apacheモジュールに関する仕様や方式は、広く公開されており、必要に応じて独自モジュールを作成することができます。

 Apacheモジュールを開発する際に参考となるWebサイトとして「Developer Documentation for Apache 2.0(http://httpd.apache.org/docs/2.2/developer/)」「Module API References(http://modules.apache.org/reference.php)」などがあります。

 こうして独自に作成されたモジュールは公開され、ネット上に見つけることができます。例えば「Apache Module Registry(http://modules.apache.org/)」には400を超えるサードパーティー製モジュールが登録されており、機能や名前をキーワードにモジュールを探し出すことができます。

 まず上部のメニューから「Search」を選択し、図1のような検索画面を表示します。次に「Search String」に「auth」を入力し認証系(authentication)モジュールに関連するモジュールを表示します。100以上のモジュールが表示されますが、リンク切れのものや、メンテナンスが行われてないものも含まれているので注意してください。

 なお「第2回:組み合わせ可能な認証系モジュール(http://www.thinkit.co.jp/article/120/2/)」でも説明したように、Apache2.2ではそれまでの認証システムと異なる仕組みを採用しているため、下位バージョンのモジュールと互換性がありません。モジュールを選択する際にはApache 2.2への対応も確認する必要があります。

 またSourceForge.net(http://sourceforge.net/)でも多くのApache認証系モジュールが登録されています。「Apache authentication」などをキーワードにして検索することで、モジュールを見つけることができます。

 サードパーティー製には、特定の要件で威力を発揮するもや、かゆいところに手の届くような機能を持つモジュールを多く見つけることができます。ただしテストが十分行われていないものや、指定された環境以外では動作しないものなど、品質が劣るものも多々あります。サードパーティー製モジュールを使用する際は、万全な動作が保証されているわけではないことを理解しておくようにします。

今回取り上げる認証系モジュール

 以降では、2つのサードパーティー製モジュールを取り上げます。

 1つ目は「mod_auth_timeout」です。このモジュールは「Idle timeouts for basic-auth schemes in Apache 2.2.(http://secure.linuxbox.com/tiki/tiki-index.php?page=mod_auth_timeout)」よりダウンロードできます。これは、ユーザー認証後、一定時間アクセスが行われなかった場合に、タイムアウトを発生させ、再アクセス時にユーザー認証を要求するモジュールです。

 2つ目は「mod_auth_shadow」です。このモジュールはSourceForge.netのmod_auth_shadowのWebページ(http://sourceforge.net/projects/mod-auth-shadow)よりダウンロードできます。ユーザー情報の管理に/etc/shadowファイルを利用し、システムに登録されているユーザーに対し、Webアクセスを許可するモジュールです。

 インストール作業は、Linuxディストリビューションの1つ、「CentOS 5.2」を例に解説しています。ほかのUNIX系OSでも、同様の作業が可能ですが、事前にgccなどの開発環境や、apxsコマンドなどのApacheモジュール開発ツールをインストールしておく必要があります。

 apxsはApacheモジュールをビルドしてインストールするためのツール(APache eXtenSion tool)で、ソースからApacheをインストールした場合にはデフォルトで導入されますが、Apacheをバイナリパッケージでインストールした場合には、別途導入する必要があります。

 例えばFedoraやCentOSでは「httpd-devel」として提供されており、「# yum install httpd-devel」を実行することでオンラインインストールが可能です。詳細は「第1回:モジュールのインストール!(http://www.thinkit.co.jp/article/120/1/3.html)」の3ページを参考にしてください。

 コマンド実行例で、「$」プロンプトは一般ユーザーによる作業、「#」プロンプトはrootユーザーによる作業を表します。rootユーザーが直接使用できない場合には、sudoコマンドで代用します。また紹介しているインストール方法や設定ではセキュリティーに対する考慮が不十分ですので十分注意してください。

 今回紹介する認証モジュールでは、Basic認証をフロントエンドに使用します。Basic認証の脆弱(ぜいじゃく)性については、「第2回:組み合わせ可能な認証系モジュール(http://www.thinkit.co.jp/article/120/2/)」で解説した通りです。こうした点を理解の上、導入作業を実施するようにします。

愛知県出身、東京都在住。現在通信会社勤務。在学中にかかわったISPの立ち上げにはじまり、古くからオープンソースソフトウェアに親しみ、現在ではシステム構築を中心に執筆を手がけている。

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています