組み合わせ可能な認証系モジュール

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

新たな認証系モジュールを組み合わせる

 ここで認証バックエンドを提供するモジュールを変更してみましょう。フロントエンドの認証はmod_auth_basic、承認モジュールはmod_authz_userをそのまま使います。ユーザー情報の読み出し・保存を行うモジュールのみ新たなモジュールを利用します。

 例えばApacheには、DBMファイルへのアクセスを可能にするモジュール「mod_authn_dbm」が用意されています。mod_authn_fileで提供される機能に比べ、高速なユーザー検索が可能です。

 「mod_authn_file」を使った場合、ユーザー情報は1行1ユーザーで記録され、エディターで編集することも可能です。しかし簡易的な反面、登録ユーザー数が膨らんだ場合に、検索に時間がかかります。一方「mod_authn_dbm」が提供するDBMファイルは、検索に優れ、ユーザー認証時のパフォーマンスを改善することができます。

 設定は図3の上のようになります。LoadModuleでmod_authn_dbm.soを読み込み、AuthDBMUserFileディレクティブでDBMファイルを指定します。その際、同時にAuthBasicProviderディレクティブで「dbm」と指定するようにします。

 前ページの「mod_authn_file」を使った設定では、そのようなディレクティブの指定は不要でしたが、省略されていただけで、実際には「AuthBasicProvider file」と指定されていた場合と同様の働きをしています。今回「mod_authn_dbm」に変更したことで、fileに替わってdbmを指定し、DBMファイルを使用できるようにします。

 DBMファイルを作成・更新するには「htdbm」コマンドを使用します。詳しいコマンドの使用方法はオンラインマニュアル(# man htdbm)などを参考にしてください。

# htdbm -c /etc/httpd/conf/htdbm.dat user
(「/etc/httpd/conf/htdbm.dat」ファイルを新規作成する場合。「user」は登録するユーザー名)

# htdbm /etc/httpd/conf/htdbm.dat user
(作成済みのファイルに、ユーザー「user」を追加する場合)

 3タイプの認証系モジュールのうち、バックエンドを受け持つモジュールを交換することで、フロントエンドはBasic認証のまま、バックエンドにDBMファイルを利用ことができるようになりました。

認証系モジュールのよくある組み合わせ

 交換可能なのはバックエンドを受け持つモジュールだけではありません。フロントエンドのモジュールを「mod_auth_basic」から「mod_auth_digest」に交換することで、Digest認証を利用できるようになります。

 ほかにも「mod_authn_anon」を使用することで匿名FTPサーバーのように、匿名サイトを公開することができます。匿名サイトでは、ユーザー名に「anonymous」、パスワードに「メールアドレス」を入力することで、誰でも利用できます。その場合は図3の下のように設定します。

 詳細は公式サイトの「Apache モジュール mod_authn_anon(http://httpd.apache.org/docs/2.2/ja/mod/mod_authn_anon.html)」を確認してください。

 承認機能を受け持つモジュールでも、「mod_authz_user」に替えて「mod_authz_host」を導入することで、クライアントのIPアドレスやドメイン名で、承認(アクセス制御)を行うことができるようになります。

 今回、Apacheに標準的に採用されているモジュールを中心に、認証系モジュールを取り上げました。Apacheを独自にソースからインストールした場合や、利用したバイナリパッケージによっては、ここで紹介したモジュールがインストールされていない場合があります。その場合でもソースからのインストールなど、比較的簡単な操作で導入できます。

 認証系モジュールは標準的なもの以外にも、サードパーティー製など多くのモジュールを利用することができます。次回は少し特殊なサードパーティー製の認証系モジュールを取り上げます。

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

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

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

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

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