2011-11-07 20 views
6

Sto proteggendo il mio server di sviluppo utilizzando nginx e il modulo auth_basic, ma non riesco a trovare un modo per specificare l'intervallo a cui scade l'autenticazione.nginx auth_basic limite di tempo

Mi piacerebbe essere in grado di forzare nginx per chiedere la password dicono ogni 6 ore. C'è un modo per farlo? In caso contrario, qual è una soluzione accettabile?

risposta

5

Probabilmente non è possibile. Non sembra esserci alcuna documentazione sullo nginx HttpAuthBasicModule page per suggerire che è possibile timeout dell'autenticazione HTTP di base.

Le intestazioni HTTP specification per Authorization non specificano inoltre un meccanismo di timeout. Non mi aspetto che tu possa fare affidamento sull'autenticazione di base se hai bisogno di timeout, a meno che tu non stia anche guardando un'applicazione web.

Se stai fronteggia un'applicazione web, si potrebbe mantenere una sessione in un cookie e time out la sessione dopo un periodo di inattività. Quando il timeout di sessione termina, utilizzare l'applicazione web per inviare i seguenti intestazioni:

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

che chiederà al browser di richiedere le credenziali di nuovo. Se hai bisogno di accedere all'identità dell'utente nella tua applicazione web, devi trovarlo nella variabile di ambiente CGI nella variabile REMOTE_USER.

Per servire in modo efficiente le risorse statiche utilizzando questa tecnica, XSendfilemight be useful.

+0

CGI non fornisce automaticamente 'REMOTE_USER'. Puoi impostarlo con 'fastcgi_param REMOTE_USER $ remote_user;'. – bzeaman

Problemi correlati