mod_wsgi によって実行される wsgi スクリプトに Apache2 ダイジェスト認証情報を渡す

StackOverflow https://stackoverflow.com/questions/123499

質問

指令が出ました

<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

デフォルトでは情報は渡されません。そうすることで、パスワード情報を取得すべきではないアプリケーションにパスワード情報が漏洩する可能性があるからです。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top