2011-11-07 15 views
6

Estoy protegiendo mi servidor de desarrollo usando nginx y el módulo auth_basic, pero parece que no puedo encontrar la manera de especificar el intervalo en el que caduca la 'autenticación'.nginx auth_basic limitación de tiempo

Me gustaría poder forzar a nginx a pedir la contraseña cada 6 horas. ¿Hay una manera de hacer eso? Si no, ¿qué es una solución aceptable?

Respuesta

5

Probablemente no sea posible. No parece haber ninguna documentación en el nginx HttpAuthBasicModule page que sugiera que puede superar el tiempo de autenticación HTTP básica.

El encabezado HTTP specification para Authorization tampoco especifica un mecanismo de tiempo de espera. No espero que pueda confiar en la autenticación básica si necesita tiempos de espera, a menos que también esté al frente de una aplicación web.

Si está al frente de una aplicación web, puede mantener una sesión en una cookie y agotar el tiempo de espera después de un período de inactividad. Cuando el tiempo de espera de la sesión termina, utilizar la aplicación web para enviar los siguientes encabezados:

HTTP/1.1 401 Unauthorized 
WWW-Authenticate: Basic Realm="MyApp" 

Eso le pedirá el navegador para solicitar credenciales de nuevo. Si necesita acceder a la identidad del usuario en su aplicación web, debería en la variable de entorno CGI REMOTE_USER.

Para servir los activos estáticos de manera eficiente utilizando esta técnica, XSendfilemight be useful.

+0

CGI no proporciona 'REMOTE_USER' automáticamente. Puede configurarlo por 'fastcgi_param REMOTE_USER $ remote_user;'. – bzeaman