web-dev-qa-db-ja.com

Apacheでディレクトリをパスワードで保護します:「ユーザーを確認できませんでした。認証プロバイダーを確認してください!」

ApacheでWebディレクトリをパスワードで保護しようとしています。私はこのようにサイトを設定しています:

D:/
   webapp/
      lib/
         .htpasswd
   document_root/
      admin/
         index.php
         .htaccess

.htaccess持っている:

AuthName "Authorization Required" 
AuthType Basic 
AuthUserFile D:\webapp\lib\.htpasswd
require valid-user

そしてその .htpasswd持っている:

user:passworddigest

アクセスしようとするとlocalhost/index.phpブラウザで500エラーが発生します。 Apacheエラーログには次のものがあります。

["date"] [crit] [client "ip"] configuration error:  couldn't check user.  Check your authn provider!: /admin/

私はグーグルで検索しましたが、サーバーのコンテキストでこのエラーが何を意味するのか理解できません。誰もが何が起こっているのか知っていますか?また、Windowsサーバー上のWebディレクトリを認証するためにApacheを使用する簡単な方法があれば、問題は解決します。

3
Explosion Pills

上記で提案したJimBのような権限の問題ではない場合(私もそうだと思います)、Apacheにauthnモジュールをロードしていない可能性があります--mod_authn。 Windowsでそれを行う方法はわかりませんが、グーグルで検索すれば、それがどのように行われるかがわかると確信しています。

1
danakim

.htaccessの認証タイプ(_AuthType Basic_)が間違っていると思います。_.htpasswd_を見ると、パスワードはhtdigestではなくhtpasswdによって設定されていることがわかります(間違っている場合は修正してください)。したがって、構成エラーです。

これを解決するには、次の_.htaccess_情報を試してください。問題は解決するはずです。

_AuthName "Authorization Required" 
AuthType Digest
AuthUserFile D:\webapp\lib\.htpasswd
require valid-user
_

ただし、_password is transmitted in_ MD5 Digest _in the network whereas_ AuthType Basic`はパスワードをクリーンなテキストで転送するため、上記の方法を使用することをお勧めします。

ただし、_AuthType Basic_が必要な場合は、次の_.htaccess_を試してください。

_AuthName "Authorization Required" 
AuthType Basic
AuthUserFile D:\webapp\lib\.htpasswd
require valid-user
_

&次のリンクからhtpasswordを作成します。

http://www.htaccesstools.com/htpasswd-generator/

_.htpasswd_ファイルを更新します。

0
Rakesh Sankar

私はWindowsでこれを行っていませんが、コメントアウトされている場合は、この行のコメントを解除して、httpd.confファイルのauth_digestモジュールを有効にしてみてください。デフォルトでは無効になっています。

LoadModule auth_digest_module modules/mod_auth_digest.so
0
pkout