2016-08-16 7 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으로 만 작동합니다. 약간 숨겨져 있지만 오해의 소지가 있지만 설명에 쓰여 있습니다. 마지막 설정 파일

<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> 

주와 같은 암호를 보낼 때 브라우저에 의해 적용 다이제스트에 맞게 쿼리에서 호출 된 MD5 방법을 무언가를 나타납니다. 이 호출은 DB에있는 암호가 아직 '소화되지'않은 경우에만 수행해야합니다.