htpasswdファイルを動的に決定する

htpasswdファイルを動的に決定する

実行時にどの htpasswd ファイルを使用するかを動的に決定する方法はありますか? たとえば、VirtualHost コンテキスト内で次のコード (動作しませんが、単なる例です) を実行します。

RewriteEngine on
RewriteMap htpasswdfiles txt:/srv/htpasswdfiles/htpasswdfiles.map
RewriteCond %{HTTP_HOST} ^(.*)$
RewriteRule .* - [E=PASSWD_FILE:${htpasswdfiles:%1},L]

<Directory /some/path>
    AuthType Basic
    AuthName "Restricted Access"
    AuthUserFile $PASSWD_FILE
    Require valid-user
</Directory>

上記の例は機能しないことはわかっていますが、このように環境変数を使用する別の方法があるかどうかはわかりません...そうでない場合、実行時に htpasswd ファイルを動的に選択する他の方法があるかどうかはわかりません。htpasswdfiles.map は、左側にドメイン、右側に適切な htpasswd ファイル パスを含むマップになります。

答え1

mod_perl私は、ファイルをまったく使用せずに動的な基本認証を設定していました。Apachehtpasswd構成でハンドラーが宣言され、残りは Perl が処理していました。しかし、これはおそらくあなたが望んでいることではありません (mod_perl最近では一般的に使用されていません)。

答え2

解決策1

Apache 構成をフラット ファイルに指定し、Apache 外部のスクリプトでそのコンテンツを制御します。

解決策2

フラット ファイル内のエントリを検索する代わりに、認証に LDAP を使用します。

答え3

書き換えと認証にはまったく共通点がないため、これは機能しません。

なぜ「htpasswd ファイルを動的に選択する」必要があるのでしょうか?

関連情報