2016-08-16 13 views
0

Apache 2.4での認証にmod_authn_dbdを使用しようとしています。私は文書に従ってすべてを設定し、指示文AuthDBDUserPWQueryでテストしたところ、細かく動作します。私が代わりにディレクティブAuthDBDUserRealmQueryを使用しよう、と私は、サーバーへのアクセスを試みると今、​​error.logは、私は私がする必要があるとして、(私はそこに私のものを入れている私の000-default.confファイルを報告し、以下ではApache 2.4でAuthDBDUserRealmQueryが設定されている場合、No AuthDBDUserPWQueryが指定されていません 'エラーログ

[authn_dbd:error] [pid 24419:tid 140371559429888] [client some_ip:some_port] AH01654: No AuthDBDUserPWQuery has been specified 

を示しリバースプロキシ)。

<VirtualHost *:80> 

    ServerAdmin [email protected] 
    DocumentRoot /var/www/html 

    ErrorLog ${APACHE_LOG_DIR}/error.log 
    CustomLog ${APACHE_LOG_DIR}/access.log combined 

    DBDriver mysql 
    DBDParams "host=localhost port=3306 user=my_user pass=my_pass dbname=the_db" 
    DBDMin 2 
    DBDKeep 4 
    DBDMax 10 
    DBDExptime 300 

    <Location /> 
     AuthName "You Must Login" 
     AuthType Basic 
     AuthBasicProvider dbd 
     AuthDBDUserRealmQuery "SELECT ENCRYPT(password) FROM password WHERE username = %s AND realm = %s" 
     Require valid-user 
    <Location/> 

</VirtualHost> 
# vim: syntax=apache ts=4 sw=4 sts=4 sr noet 

答えて

0

少し苦労して、私は答えを見つけました。 documentationによれば、AuthDBDUserRealmQuerymod_auth_digestとしか動作しません。これは説明に書かれていますが、少し隠されて誤解を招くものです。最後の設定ファイルは、パスワードを送信するときに、ブラウザによって適用ダイジェストに一致するように、クエリで呼び出さMD5方法に注意してください

<Directory /> 
     AuthName "Your realm" 
     AuthType Digest 
     AuthDigestDomain/
     AuthDigestProvider dbd 
     AuthDBDUserRealmQuery "SELECT MD5(password) FROM password WHERE username = %s AND realm = %s" 
     Require valid-user 
    </Directory> 

のようなものが表示されます。この呼び出しは、DBのパスワードがまだ「消化されていない」場合にのみ実行する必要があります。

関連する問題