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

Apache 2.2で変更された認証モジュールの仕組み 「第1回:モジュールのインストール!(http://www.thinkit.co.jp/article/120/1/)」の後半で、Apacheの認証系モジュールについてふれました。認証系モジュールはApache 2.2で大きく変更された点の1

Shin.鶴長

2008年8月8日 20:00

Apache 2.2で変更された認証モジュールの仕組み

 「第1回:モジュールのインストール!(http://www.thinkit.co.jp/article/120/1/)」の後半で、Apacheの認証系モジュールについてふれました。認証系モジュールはApache 2.2で大きく変更された点の1つです。Apache 2.0で使用できたモジュールファイルや設定内容でも、2.2ではそのまま使用できない場合があります。また2.2では役割や機能でモジュールを組み立てられるよう改善されています。

 今回は最初にBasic認証のインストールを例に、3タイプのモジュールの基本的な役割を解説します。後半ではモジュールの組み合わせで認証システムのバリエーションを増やす方法を紹介します。

 Apacheで利用な可能な認証方式には、「ホストベース認証」と「パスワード認証」があります。ホストベース認証はIPアドレスやドメイン名でクライアントを認証し、パスワード認証はユーザー名とパスワードでクライアントを認証します。

 さらにパスワード認証には、パスワードの送信方法の違いで、「Basic認証」方式と「Digest認証」方式に分類されます。クライアントとWebサーバー間で行われる、認証要求とそれに対するレスポンスの過程で、「Basic認証」方式では平文パスワードを使用し、「Digest認証」ではパスワードから導かれたハッシュ値を使用します。

 なお、Basic認証は実際にはBase64でエンコードされていますが、Base64は簡単な手続きで復号できます。Base64は暗号化のための手段というより、バイナリデータをテキストデータに変換するような用途で使用されるため、ここでは平文パスワードとしました。

 セキュリティーに配慮した場合、Digest認証方式が好ましい場合もありますが、ユーザー情報の管理が複雑になるため、あまり使用されることはありません。ネットバンキングやオンライントレードなど、ユーザー認証が要となるWebサイトでは、HTMLフォームを使った独自の認証アプリケーションが利用されています。

 Apacheのパスワード認証、とりわけBasic認証は、一時的なフォルダーの共有や、限られたメンバーに短期間だけコンテンツを公開するといった、手っ取り早く認証機能を利用する場合に用いられます。

3タイプの認証モジュールの役割

 「第1回:モジュールのインストール!(http://www.thinkit.co.jp/article/120/1/)」で、1つの認証方法を実現するために、役割の異なる3タイプのモジュールを組み合わせて使用することを解説しました。

 各モジュールは役割が分かるよう命名されており、「mod_auth_○○」は認証の方法を提供するモジュール、「mod_authz_○○」は承認(アクセス制御)を提供するモジュール、「mod_authn_○○」は認証バックエンド(ユーザー情報の保存読み出し)をサポートするモジュールとして利用します。

 「認証」はユーザーを特定し、識別するための手順です。ユーザー名とパスワードの組み合わせで、本人と特定するようなプロセスになります。「承認」では識別されたユーザーやクライアントに対し、どのようなアクセスが許可(または禁止)されているかを照合し、アクセスを受け入れるか拒絶するか判断します。これら認証、承認するためのユーザー情報や、制限の内容を記載した情報へのアクセス方法が「認証バックエンド」で提供されます。

 Basic認証を使ったパスワード認証では、「mod_auth_basic」「mod_authz_user」「mod_authn_file」の3つのモジュールを組み合わせ使用します。mod_auth_basicはBasic認証を提供するモジュールとして、mod_authz_userはユーザー単位でアクセス制限を実施するためのモジュールとして、mod_authn_fileはユーザー情報の保存や読み出しのためのモジュールとして利用します。

 これら3つのモジュールは、Apacheのインストール時に標準でインストールされます。意図的にモジュールを除外してApacheをインストールしていない限り、利用するための新たな作業は発生しません。「httpd -M」を実行しモジュール一覧を表示すると、その中にauth_basic_module、authz_user_module、authn_file_moduleが含まれていることが確認できるでしょう。

 次のページでは、Basic認証が正常に設定されたApacheで、認証系モジュールをわざと外しエラーを発生させます。そのエラー内容からそれぞれのモジュールの働きを読み取ります。

人気記事トップ10

人気記事ランキングをもっと見る

企画広告も役立つ情報バッチリ! Sponsored

ClickHouse Cloudが実現した広告運用SaaS「ATOM」のデータ基盤革新、パフォーマンスを向上しながら、運用負荷とコストを削減 11月11日 6:20 AIで開発が加速する時代、品質保証はどう変わる? Tricentisが示すAIエージェント活用の実像 11月9日 6:45 悪用までの猶予が「1分」に迫るフロンティアAI時代に開発と本番を貫く脆弱性管理が必要 10月29日 8:30 欧州CRA対応とSBOM運用。AI生成コードのOSS混入問題の対策とは ――スニペット単位で検出する「FossID」「Insignary Clarity」によるSBOM運用 9月16日 6:40 PostgreSQLからTiDBへ、稼働中SaaSで進める段階的DB移行の実践と再設計への展望 9月7日 6:30 機能安全開発におけるGoogleTestの活用を支援!「Parasoft C/C++test CT」で実現する効率化&AI連携 4月14日 6:30 【CNDW2025】Grafanaが明かす「オブザーバビリティの哲学」ー最小限の労力で実用的なインサイトを得るには 1月23日 6:30 【CNDW2025】プロダクト急増に備える基盤刷新 ーウェルスナビがECSからEKSへの移行で得た知見とは 1月15日 6:30 【CNDW2025】250環境を5人で運用、構築時間は30分に ーKINTOテクノロジーズが語るインフラ基盤組織の作り方 2025年12月18日 6:30 新たな自動化で熱視線! AIエージェントの「推論能力」を支える2つのコンポーネントとは? 2025年11月28日 6:30