mod_wsgi によって実行される wsgi スクリプトに Apache2 ダイジェスト認証情報を渡す
-
02-07-2019 - |
質問
指令が出ました
<VirtualHost *>
<Location />
AuthType Digest
AuthName "global"
AuthDigestDomain /
AuthUserFile /root/apache_users
<Limit GET>
Require valid-user
</Limit>
</Location>
WSGIScriptAlias / /some/script.wsgi
WSGIDaemonProcess mywsgi user=someuser group=somegroup processes=2 threads=25
WSGIProcessGroup mywsgi
ServerName some.example.org
</VirtualHost>
/some/script.wsgi で知りたいのですが
def application(environ, start_response):
start_response('200 OK', [
('Content-Type', 'text/plain'),
])
return ['Hello']
ログインしているユーザー。
それ、どうやったら出来るの?
解決
追加 WSGIPassAuthorization On
:
<VirtualHost *>
<Location />
AuthType Digest
AuthName "global"
AuthDigestDomain /
AuthUserFile /root/apache_users
<Limit GET>
Require valid-user
</Limit>
</Location>
WSGIPassAuthorization On
WSGIScriptAlias / /some/script.wsgi
WSGIDaemonProcess mywsgi user=someuser group=somegroup processes=2 threads=25
WSGIProcessGroup mywsgi
ServerName some.example.org
</VirtualHost>
それなら読んでください environ['REMOTE_USER']
:
def application(environ, start_response):
start_response('200 OK', [
('Content-Type', 'text/plain'),
])
return ['Hello %s' % environ['REMOTE_USER']]
詳細については、 mod_wsgi ドキュメント.
他のヒント
Apache/mod_wsgi とアクセス、認証、認可メカニズムに関する追加情報は、次の場所にあります。
http://code.google.com/p/modwsgi/wiki/AccessControlMechanisms
デフォルトでは情報は渡されません。そうすることで、パスワード情報を取得すべきではないアプリケーションにパスワード情報が漏洩する可能性があるからです。
所属していません StackOverflow