メニュー

プロダクト



プログラミング


  • Java
    • Web 技術
    • メール技術
      • JavaMail
      • Apache James Mailet
    • Web フレームワーク
      • Jakarta Struts
      • Jakarta Velocity
      • Jakarta Tapestry
      • WebWork2
      • Jakarta Jetspeed
      • Apache Cocoon 2
    • DB 技術
      • JDBC
      • Hibernate
      • Apache Torque
    • DI (IoC) コンテナ
      • Spring Framework
      • Seasar2
      • Apache HiveMind
      • PicoContainer
    • 属性プログラミング
    • テスティング
      • JUnit
      • Jakarta Cactus
      • DBUnit
      • djUnit
      • FitNesse
    • ロギング
      • Apache Log4j
      • Jakarta Commons logging
    • 分散コンポーネント技術
      • EJB
    • リッチ クライアント
      • Java Web Start
    • GUI
    • XML Web サービス
      • Apache Axis
      • Apache SOAP
    • アプリケーション管理
    • トランザクション
    • 開発環境
      • Apache Ant
      • Apache Maven
      • Apache Maven2
    • Eclipse
    • Tips
  • .NET Framework
  • PHP
  • XML
    • SmartDoc
  • 正規表現
  • VB, VBA, VBScript, ASP
  • C/C++

DBMS


  • MySQL
  • PostgreSQL
  • Oracle
  • Microsoft SQL Server
  • HSQLDB
  • SQLite
  • Apache Xindice

アプリケーション サーバ



OS



バージョン管理システム



未整理


最近更新したページ
このウィキの読者になる
更新情報がメールで届きます。
このウィキの読者になる

Apache HTTP Server/Tips/Basic Authentication

Basic 認証を設定し、特定の URL 、ディレクトリ、ファイルへのアクセスに対してユーザ名、パスワードを要求し、それが正当な場合のみ閲覧を許可します。

パスワード ファイルの作成


閲覧を許可するユーザ特定するため、パスワード ファイルを作成します。ファイルは Apache に含まれる htpasswd というプログラムを使用します。コマンドプロンプトを開き、 ${APACHE2}\bin ディレクトリに移動し、次のように実行します。

htpasswd -c C:\usr\Apache2\passwd\foo.passwd foo

第 1 引数の -c は新規にパスワード ファイルを作成することを表します。第 2 引数の C:\usr\Apache2\passwd\foo.passwd は作成するパスワード ファイルのパスを表します。第 3 引数の foo は作成するユーザ名を表します。

この後、 2 回パスワードを要求されます。

New password: 
Re-type new password: 
Adding password for user foo

こうしてパスワード ファイルを作成します。既に存在するパスワード ファイルにユーザを追加する場合は第 1 引数の -c を省略してください。

パスワード ファイルの中身は次のようになっています。

foo:$apr1$A23.....$uxG/YLJWra.PNsIj1nwQY0

先ほど追加したユーザ foo とパスワードが 1 行で記述されています。パスワードが意味不明な文字列になっていますが、これは先ほど入力したパスワードを MD5 ハッシュ化したものです。

作成したパスワード ファイルはこの後どこに移動しても構いませんが、通常、 Web からアクセスできる場所には置きません。もし誰かに入手されてしまい、頑張って解読されたら、制限されたリソースにアクセスされてしまう可能性があるからです。

認証を設定


作成したパスワード ファイルで保護するリソースを設定します。これは通常、 <Location> 、 <Directory> ディレクティブの範囲内に次のように記述します。

<Location /foo/special>
    AuthType Basic
    AuthName "foo special zone"
    AuthUserFile "C:\usr\Apache2\passwd\foo.passwd"
    Require user foo bar boo
</Location>

これで、 http://servername/foo/special 以下のリソースの要求に対して Basic 認証を行い、ユーザ foo 、 bar 、 boo の場合のみ許可します。

AuthType
ディレクティブは認証の種類を表します。この場合は Basic 認証を表します。 Digest を指定するとダイジェスト認証を行います。
AuthName
ディレクティブは認証に使用するレルムを表します。クライアントに表示されるパスワード ダイアログに表示される文字列と認識して構わないと思います。
AuthUserFile
ディレクティブは認証に使用するパスワード ファイルのパスを表します。
Require
ディレクティブはアクセスを許可するユーザを表します。ユーザ名を列挙することで、複数のユーザに対して許可することができます。

色々なユーザの指定の仕方


Require valid-user

このように指定すると、パスワード ファイルに記述されている全てのユーザに対してアクセスを許可します。

AuthUserFile "C:\usr\Apache2\passwd\foo.passwd"
AuthGroupFile "C:\usr\Apache2\passwd\foo.group"
Require group foobar

このように指定すると、グループ ファイルに記述されているグループに対してアクセスを許可します。この場合はグループ foobar に対してアクセスを許可します。
2005年11月17日(木) 18:43:46 Modified by uguuxp




スマートフォン版で見る