Pasando apache2 digerir la información de autenticación a un wsgi script se ejecute por mod_wsgi
-
02-07-2019 - |
Pregunta
Tengo la directiva
<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>
Me gustaría saber en el /algunos/script.wsgi
def application(environ, start_response):
start_response('200 OK', [
('Content-Type', 'text/plain'),
])
return ['Hello']
Lo que el usuario inicia la sesión.
¿Cómo puedo hacer eso?
Solución
agregar 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>
A continuación, sólo lectura environ['REMOTE_USER']
:
def application(environ, start_response):
start_response('200 OK', [
('Content-Type', 'text/plain'),
])
return ['Hello %s' % environ['REMOTE_USER']]
Más información en mod_wsgi documentación.
Otros consejos
Información adicional sobre Apache/mod_wsgi y de acceso, autenticación y mecanismos de autorización se puede encontrar en:
http://code.google.com/p/modwsgi/wiki/AccessControlMechanisms
La información no está aprobada por defecto, ya que hacerlo podría perder la información de la contraseña a las aplicaciones que tal vez no lo consigue.
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow