Questi parametri di configurazione controllano la funzione SAS (System Authorization Facility) per IBM HTTP Server. Utilizzare le direttive SAF per fornire l'autenticazione utenti a IBM HTTP Server.
La direttiva AuthSAF imposta se l'autenticazione di base viene eseguita o meno utilizzando il SAF del sistema operativo.
Sintassi: | AuthSaf on | off |
Valore predefinito | off |
Contesto | directory, .htaccess |
Modulo | mod_auth_saf |
Valori | on o off |
Impostare la direttiva AuthSAF su on per utilizzare una qualsiasi funzione SAF: SAFRunAs, SAFRequire o autenticazione SAF. Quando si imposta AuthSAF on è necessario impostare anche AuthType Basic.
È necessaria una direttiva Require per valid-user o per un elenco di utenti.
Require valid-userCon valid-user, il server non consentirà l'accesso tranne il caso in cui l'ID e la password appartengono a un utente registrato in SAF e disponga di un segmento OMVS.
Require user SYSADM USER152 BABAR
Con un elenco di utenti, il server non consentirà l'accesso tranne il caso in cui l'ID viene autenticato ed è uno degli utenti elencati. È necessario codificare i nomi utente con lettere maiuscole nel file httpd.conf, indipendentemente da come l'utente li immette nel browser.
È possibile, facoltativamente, aggiungere una direttiva Require per un gruppo.
Require group SYS1 WASUSER
In questo esempio, i gruppi SYS1 e WASUSER devono essere definiti in SAF e devono avere segmenti OMVS. L'accesso è negato tranne il caso in cui l'ID e la password appartengano a un utente registrato in SAF e in uno dei gruppi elencati.
La direttiva AuthSAFAuthoritative imposta se l'autorizzazione e l'autenticazione vengono trasferite o meno a moduli di livello inferiore.
Sintassi: | AuthSAFAuthoritative on | off |
Valore predefinito | on |
Contesto | directory, .htaccess |
Modulo | mod_auth_saf |
Valori | on o off |
L'impostazione della direttiva AuthSAFAuthoritative su off consente sia all'autenticazione che all'autorizzazione di essere trasferite a moduli di livello inferiore (come definito nei file modules.c), se non esistono ID utente o regole che corrispondono all'ID utente fornito. Se esiste un ID utente o una regola specificata, allora verranno applicati i normali controlli di password e accesso e si avrà un errore in una risposta di Richiesta di autenticazione.
Se un ID utente è presente nel database di più moduli o se una valida direttiva Require viene applicata a più di un modulo, il primo modulo verificherà le credenziali e non verrà trasferito alcun accesso, indipendentemente dalle impostazioni di AuthSAFAuthoritative.
Per impostazione predefinita, il controllo non viene inoltrato per cui nella risposta di Richiesta di autenticazione risulterà ID utente o regola sconosciuti. Eseguendo una impostazione diversa da questa, si mantiene il sistema sicuro e obbliga NCSA a un comportamento conforme.
La direttiva AuthSAFExpiration imposta il valore visualizzato nel prompt del browser.
Sintassi: | AuthSAFExpiration frase_breve |
Valore predefinito | off |
Contesto | directory, .htaccess |
Modulo | mod_auth_saf |
Valori | off o frase_breve |
L'impostazione della direttiva AuthSAFExpiration su una frase consente a IBM HTTP Server di richiedere all'utente di aggiornare la sua password SAF se scade. Quando l'utente immette un ID valido e la password SAF ma la password è scaduta, il server risponde con Richiesta di autenticazione con una richiesta particolare per consentire all'utente di aggiornare la password scaduta. La richiesta comprende il dominio (il valore della direttiva AuthName) seguito dal valore frase_breve della direttiva AuthSAFExpiration.
<Location /js> AuthType Basic AuthName "zwasa051_SAF" AuthSAF on Require valid-user Require group SYS1 WASUSER AuthSAFExpiration "EXPIRED! oldpw/newpw/newpw" </Location>
Se l'utente cerca di accedere al file il cui URL inizia con /js, il server richiede un ID SAF e la password. Il browser visualizzerà una richiesta contenente il dominio. Il dominio è il valore della direttiva AuthName che in questo esempio è zwasa051_SAF.
Quando l'utente fornisce un ID valido e la password, se la password è scaduta il server ripeterà la richiesta ma questa volta con il valore zwasa051_SAF EXPIRED! oldpw/newpw/newpw. Qualunque sia la richiesta, l'utente deve reimmettere la password scaduta, seguita da una barra, la nuova password, un'altra barra e nuovamente la nuova password.
Se la password viene aggiornata correttamente, il server invierà un'altra risposta di Richiesta di autenticazione con una diversa richiesta speciale. Quest'ultima interazione è necessaria per forzare il browser a memorizzare la password nella cache. La richiesta questa volta riguarda il dominio seguito dalla richiesta di Reinserire la nuova password. In questo esempio, sarebbe zwasa051_SAF Reinserire la nuova password.
La direttiva AuthSAFReEnter imposta il valore aggiunto al dominio dopo una modifica di password riuscita.
Sintassi: | AuthSAFReEnter frase_breve |
Valore predefinito | Reimmettere la nuova password |
Contesto | directory, .htaccess |
Modulo | mod_auth_saf |
Valori | off o frase_breve |
L'impostazione della direttiva AuthSAFReEnter in modo esplicito su una frase diversa da "Reimmettere una nuova password" consente all'amministratore di visualizzare un messaggio alternativo dopo che una password scaduta è stata aggiornata con successo. Se AuthSAFExpiration e stata impostata su off, tale direttiva non ha effetto.
<Location /js> AuthType Basic AuthName "zwasa051_SAF" AuthSAF on Require user SYSADM USER152 BABAR AuthSAFExpiration "EXPIRED! oldpw/newpw/newpw" AuthSAFReEnter "Immettere la nuova password un'altra volta"</Location>
In questo esempio, dopo che la password scaduta viene aggiornata correttamente, il server invierà un altra risposta di Richiesta di autenticazione con il valore della direttiva AuthSAFReEnter. Quest'ultima interazione è necessaria per forzare il browser a memorizzare la password nella cache. La richiesta questa volta riguarda il dominio seguito da una frase particolare. In questo esempio, sarebbe zwasa051_SAF Immettere la nuova password un'altra volta.
La direttiva SAFRequire determina se mod_auth_saf elaborerà la direttiva Require.
Sintassi: | SAFRequire on | off |
Valore predefinito | off |
Contesto | directory, .htaccess |
Modulo | mod_auth_saf |
Valori | on o off |
L'impostazione della direttiva SAFRequire su on consente a mod_auth_saf di elaborare i nomi utente e i nomi di gruppo nella direttiva Require. Se si utilizzano gruppi definiti in SAF, è necessario impostare la direttiva su on, ma se si utilizzano gruppi definiti altrove, è necessario impostare la direttiva su off oppure omettere la direttiva.
Ad esempio, mod_auth_saf può elaborare la direttiva Require se si codifica la direttiva AuthGroupFile al posto della codifica di SAFRequire su on. Non codificare entrambe.
Se si imposta SAFRequire su on, elencare tutti i nomi utente con lettere maiuscole poiché questo è il modo in cui SAF conserva i nomi utente. L'utente può immettere il nome utente e la password sia in minuscolo che in maiuscolo nel browser. Se non si utilizza mod_auth_saf per elaborare la direttiva Require, allora è necessario codificare ogni nome utente in ogni assortimento di lettere maiuscole/minuscole in cui si prevede l'inserimento nel browser da parte dell'utente.
La direttiva SAFRunAs imposta L'ID utente SAF per cui verrà servita una richiesta.
Sintassi: | SAFRunAs valore |
Valore predefinito | off |
Contesto | directory, .htaccess |
Modulo | mod_auth_saf |
Valori | off | %%CLIENT%% | %%CERTIF%% | %%CERTIF_REQ%% | <ID surrogato> Off: il server eseguirà la richiesta per l'ID utente del server Web. %%CLIENT%%: The server will run the request under the ID supplied in the Authorization request header. Di solito, l'utente fornisce l'ID e la password in una finestra pop-up sul browser e il browser crea l'intestazione. %%CERTIF%%: il server eseguirà la richiesta per l'ID associato al certificato client SSL in SAF. Se non esiste alcun certificato SSL o se il certificato SSL non è stato associato a un ID in SAF, l'elaborazione continuerà come se %%CLIENT%% fosse stato codificato. %%CERTIF_REQ%%: il server eseguirà la richiesta per l'ID associato con il certificato client SSL in SAF. Se non esiste alcun certificato SSL o se il certificato SSL non è stato associato a un ID in SAF, il server non consentirà l'accesso. <ID surrogato>: il server eseguirà la richiesta per l'ID associato all'ID surrogato di SAF specificato. Per %%CERTIF%%, %%CERTIF_REQ%% e tutte le altre forme di autenticazione o autorizzazione SAF, è necessario codificare una direttiva Require e impostare la direttiva AuthSAF on. |
IBM HTTP Server è in grado di comunicare con le applicazioni FastCGI mediante i socket TCP o UNIX. Tuttavia, quando si utilizzano le richieste SAFRunAs per FastCGI, occorre utilizzare i socket TCP per la comunicazione con l'applicazione. I socket UNIX creati per le applicazioni FastCGI sono accessibili solo mediante l'ID utente del server Web. L'ID utente alternativo controllato con la direttiva SAFRunAs non dispone dell'autorizzazione per accedere ai socket UNIX, quindi le richieste avranno esito negativo.
Per configurare FastCGI al fine di utilizzare i socket TCP, definire l'applicazione FastCGI sul modulo mod_fastcgi utilizzando la direttiva FastCGIServer con l'opzione -port o utilizzando la direttiva FastCGIExternalServer. I server FastCGI dinamici che non vengono configurati con FastCGIServer o FastCGIExternalServer non sono utilizzabili con SAFRunAS.
Se non si abilitano le richieste SAFRunAs per FastCGI, i socket TCP non sono richiesti.
<Location /x1> AuthType Basic AuthName x1 Require valid-user SAFRequire On AuthSAF on </Location>
<Location /x2> AuthType Basic AuthName x2 Require user ALICE123 BOB456 CAROL789 SAFRequire On AuthSAF on <IfModule mod_auth.c> # Se viene caricato mod_auth, verificare che consenta # l'autenticazione di altri moduli nel caso in cui mod_auth venga eseguito prima. AuthAthoritative off </IfModule> </Location>
<Location /x3> AuthType Basic AuthName x3 Require group WASUSER SAFRequire on AuthSAF on </Location>
<Location /x4> AuthType Basic AuthName x4 Require group wasuser # Il file x4.grp contiene la riga: wasuser: alice123 ALICE123 guest3 GUEST3 AuthGroupFile /usr/lpp/config/x4.grp AuthBasicProvider saf </Location>