Basic認証の設定

Basic認証の設定

 Basic認証のための設定は図2のとおりです。これはhttpd.confファイルに記述します。Apache起動時に、読み込むモジュールを追加するには、冒頭3行のような「LoadModule」を使用しますが、Basic認証のためのモジュールは、標準で設定されているため追加の必要はありません。

 続く「」でBasic認証の対象となるディレクトリを指定します。パスワード認証をディレクトリに対して設定する場合は「~」コンテキストを、URLに対して設定する場合は「~」コンテキストを使用します。コンテキストの中で「AuthType/AuthName/AuthUserFile/Require」ディレクティブを使ってBasic認証に必要な項目を設定します。設定方法は図2を参考にしてください。

 ほかにも認証制限を実施しているディレクトリやURLがある場合には、「AuthName」に指定する文字列を重複しないようにします。この文字列をもとにWebブラウザはユーザー名とパスワードを記憶します。

 パスワード認証が必要なURLにアクセスした場合には、Webブラウザは記憶している文字列と、サーバーから送られてくる文字列を比較し、アクセスしたことがあるURLか、もしアクセスしたことがあれば、その時パスワード認証に成功していたかどうか判断します。もしそうであれば記憶されたユーザー名とパスワードを使ってURLにアクセスし、ユーザーが直接、ユーザー名やパスワードを入力する手間を省きます。AuthNameで指定された文字列は、パスワード入力画面に表示されるだけでなく、このような用途にも使用されています。

 「AuthUserFile」ではユーザー名とパスワードを記載したユーザー情報ファイルを指定します。ユーザー情報ファイルの作成、更新には以下のように「htpasswd」コマンドを使用します。

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

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

 ここまでが、一般的なBasic認証の設定です。設定終了後Apacheを再起動し、Basic認証が機能していることを確認します。

エラーログから認証系モジュールの役割を知る

 次に3タイプのモジュールの役割を理解するために、順番に「LoadModule」行をコメントアウトします。コメントアウトには「#」を行頭に挿入します。例えば1行目をコメントアウトし、「#LoadModule auth_basic_module modules/mod_auth_basic.so」とした場合、認証制限されたURLへアクセスすると「configuration error: couldn't check user. No user file?: /foo」と、正しいユーザーかどうかチェックすることができない(=認証できない)といった内容をエラーログに出力します。

 また2行目「mod_authz_user」をコメントアウトした場合、「configuration error: couldn't check access. No groups file?: /foo/」といったエラーで、ユーザーアクセスを制御(=アクセス承認)できていないことが分かります。

 3行目の「mod_authn_file」をコメントアウトした場合には、設定ファイルの構文チェックで引っかかり、Apacheを起動することさえできません。その時に表示されるログは「Invalid command 'AuthUserFile', perhaps misspelled or defined by a module not included in the server configuration」といったもので、「AuthUserFile」ディレクティブを使用できない(=ユーザー情報の保存読み出しができない)ことが分かります。

 さらに各モジュールの働きを理解するために、次のページでは新たなモジュールを組み合わせ、Basic認証をアレンジします。

人気記事トップ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