Estos parámetros de configuración controlan la característica SAF (System Authorization Facility) de IBM HTTP Server. Utilice las directivas SAF para proporcionar la autenticación de usuario a IBM HTTP Server.
La directiva AuthSAF establece si se realiza la autenticación básica con el SAF del sistema operativo.
Sintaxis | AuthSaf on | off |
Valor predeterminado | off |
Context | directorio, .htaccess |
Module | mod_auth_saf |
Valores | on u off |
Establezca la directiva AuthSAF en on para utilizar cualquiera de los recursos de SAF: SAFRunAs, SAFRequire o autenticación SAF. Cuando establezca AuthSAF on, también debe establecer AuthType Basic.
Debe establecer una directiva Require para valid-user o para una lista de usuarios.
Usuario validado necesarioCon valid-user, el servidor no permitirá el acceso, a menos que el ID y la contraseña pertenezcan a un usuario registrado en SAF y que tenga un segmento OMVS.
Se requiere el usuario SYSADM USER152 BABAR
Con una lista de usuarios, el servidor no permitirá el acceso, a menos que el ID se autentifique y sea uno de los usuarios listados. Debe codificar los nombres de usuarios con letras mayúsculas en el archivo httpd.conf, independientemente de cómo escriba el usuario los nombres de usuario en el navegador.
De forma opcional, puede añadir una directiva Require para un grupo.
Se requiere el grupo SYS1 WASUSER
En este ejemplo, los grupos SYS1 y WASUSER deben definirse en SAF y deben tener segmentos OMVS. Se deniega el acceso, a menos que el ID y la contraseña pertenezcan a un usuario registrado en SAF y a uno de los grupos listados.
La directiva AuthSAFAuthoritative establece si la autorización y autenticación se pasan a módulos de nivel inferior.
Sintaxis | AuthSAFAuthoritative on | off |
Valor predeterminado | on |
Context | directorio, .htaccess |
Module | mod_auth_saf |
Valores | on u off |
Si establece la directiva AuthSAFAuthoritative off, permitirá que la autenticación y la autorización se pasen a módulos de nivel inferior (tal como se define en los archivos modules.c), si no existe ningún ID de usuario o norma que coincida con el ID de usuario proporcionado. Si existe una normas o un ID de usuario especificado, se aplicarán las comprobaciones de acceso y de contraseña habituales y se producirá un error en una respuesta Authentication Required (Autenticación necesaria).
Si aparece un ID de usuario en la base de datos de más de un módulo, o si se aplica una directiva Require válida a más de un módulo, el primer módulo verificará las credenciales y no se pasará ningún acceso, independientemente del valor de AuthSAFAuthoritative.
De forma predeterminada, no se pasa el control y se generará una norma o un ID de usuario desconocido en una respuesta Authentication Required. No establecer ningún valor hace que el sistema permanezca seguro y fuerza un comportamiento compatible con NCSA.
La directiva AuthSAFExpiration establece el valor visualizado en el indicador del navegador.
Sintaxis | AuthSAFExpiration frase_corta |
Valor predeterminado | off |
Context | directorio, .htaccess |
Module | mod_auth_saf |
Valores | off o frase_corta |
Si establece la directiva AuthSAFExpiration en una frase, IBM HTTP Server podrá indicar al usuario que actualice su contraseña SAF si caduca. Si el usuario especifica una contraseña SAF y un ID válidos, pero la contraseña ha caducado, el servidor devolverá una respuesta Authentication Required (Autenticación necesaria) con un indicador especial para permitir al usuario actualizar la contraseña caducada. El indicador consta del reino (el valor de la directiva AuthName) seguido del valor frase_corta de la directiva AuthSAFExpiration.
<Location /js> AuthType Basic AuthName "zwasa051_SAF" AuthSAF on Require valid-user Se requiere el grupo SYS1 WASUSER AuthSAFExpiration "EXPIRED! oldpw/newpw/newpw" </Location>
Si el usuario intenta acceder a un archivo cuyo URL empieza por /js, el servidor solicita una contraseña y un ID de SAF. El navegador visualizará un indicador que contiene el reino. El reino es el valor de la directiva AuthName, que es zwasa051_SAF en este ejemplo.
Si el usuario proporciona un ID y una contraseña válidos, si la contraseña ha caducado, el servidor repetirá la solicitud, pero esta vez con el valor zwasa051_SAF EXPIRED! oldpw/newpw/newpw. Sea cual sea la solicitud, el usuario debe volver a especificar la contraseña caducada, seguida por una barra inclinada, la nueva contraseña, otra barra inclinada y la contraseña nueva otra vez.
Si la actualización de la contraseña se realiza correctamente, el servidor enviará otra respuesta Authentication Required (Autenticación necesaria) con un indicador especial distinto. Esta última interacción es necesaria para forzar al navegador a comprender qué contraseña debe almacenar en la memoria caché. Esta vez, el indicador constará del reino seguido por el indicador Re-enter new password (Vuelva a entrar la nueva contraseña). En este ejemplo, sería zwasa051_SAF Re-enter new password.
La directiva AuthSAFReEnter establece el valor anexado al reino después de un cambio correcto de contraseña.
Sintaxis | AuthSAFReEnter frase_corta |
Valor predeterminado | Re-enter new password (Vuelva a entrar la nueva contraseña) |
Context | directorio, .htaccess |
Module | mod_auth_saf |
Valores | off o frase_corta |
Si establece la directiva AuthSAFReEnter explícitamente en una frase distinta a "Re-enter new password", el administrador podrá visualizar un mensaje alternativo después de haber actualizado correctamente una contraseña caducada. Si AuthSAFExpiration se ha establecido en off, esta directiva no tendrá ningún efecto.
<Location /js> AuthType Basic AuthName "zwasa051_SAF" AuthSAF on Se requiere el usuario SYSADM USER152 BABAR AuthSAFExpiration "EXPIRED! oldpw/newpw/newpw" AuthSAFReEnter "Enter new password one more time"</Location>
En este ejemplo, después de actualizar correctamente la contraseña caducada, el servidor enviará otra respuesta Authentication Required (Autenticación necesaria) con el valor de la directiva AuthSAFReEnter. Esta última interacción es necesaria para forzar al navegador a comprender qué contraseña debe almacenar en la memoria caché. Esta vez, el indicador constará del reino seguido por una frase especial. En este ejemplo, sería zwasa051_SAF Enter new password one more time (zwasa051_SAF Escriba otra vez la contraseña nueva).
La directiva SAFRequire determina si mod_auth_saf procesará la directiva Require.
Sintaxis | SAFRequire on | off |
Valor predeterminado | off |
Context | directorio, .htaccess |
Module | mod_auth_saf |
Valores | on u off |
Si establece la directiva SAFRequire en on, permite a mod_auth_saf procesar los nombres de usuario y los nombres de grupo en la directiva Require. Si utiliza los grupos definidos en SAF, debe establecer la directiva on, pero si utiliza los grupos definidos en otro lugar, debe establecer la directiva off u omitir la directiva.
Por ejemplo, mod_auth_saf puede procesar la directiva Require si codifica la directiva AuthGroupFile, en lugar de codificar SAFRequire on. No codifique ambas directivas.
Si establece SAFRequire on, liste todos los nombres de usuario en mayúsculas porque así es como SAF mantiene los nombres de usuario. En el navegador, el usuario puede especificar el nombre y la contraseña del usuario en mayúsculas o minúsculas. Si no utiliza mod_auth_saf para procesar la directiva Require, es posible que necesite codificar cada nombre de usuario en todas las combinaciones de mayúsculas y minúsculas en las que espera que el usuario los escriba en el navegador.
La directiva SAFRunAs establece el ID de usuario SAF bajo el cual se servirá una solicitud.
Sintaxis | SAFRunAs valor |
Valor predeterminado | off |
Context | directorio, .htaccess |
Module | mod_auth_saf |
Valores | off | %%CLIENT%% | %%CERTIF%% | %%CERTIF_REQ%% | <ID reemplazado Off: el servidor ejecutará la solicitud bajo el ID de usuario del servidor Web. %%CLIENT%%: el servidor ejecutará la solicitud bajo ID proporcionado en la cabecera de la solicitud de autorización. Por regla general, el usuario proporciona el ID y la contraseña en una ventana emergente del navegador y el navegador crea la cabecera. %%CERTIF%%: el servidor ejecutará la solicitud bajo el ID asociado con el certificado de cliente SSL en SAF. Si no existe ningún certificado SSL o si el certificado SSL no ha sido asociado a un ID en SAF, el proceso continuará como si %%CLIENT%% se hubiera codificado. %%CERTIF_REQ%%: el servidor ejecutará la solicitud bajo el ID asociado al certificado de cliente SSL en SAF. Si no existe ningún certificado SSL, o si el certificado SSL no se ha asociado a un ID en SAF, el servidor no permitirá el acceso. <ID reemplazado: el servidor ejecutará la solicitud bajo el ID asociado al ID reemplazado de SAF especificado. Para %%CERTIF%%, %%CERTIF_REQ%% y las demás formas de autenticación o autorización de SAF, debe codificar una directiva Require y establecer la directiva AuthSAF en on. |
IBM HTTP Server puede comunicarse con las aplicaciones FastCGI utilizando los sockets TCP o UNIX. No obstante, cuando se utiliza SAFRunAs para peticiones FastCGI, debe utilizar los sockets TCP para la comunicación con la aplicación. Los sockets UNIX creados para aplicaciones FastCGI son accesibles mediante el ID de usuario del servidor Web únicamente. El ID de usuario alternativo controlado con la directiva SAFRunAs no tiene permiso para acceder a los sockets UNIX, por lo tanto las peticiones no se satisfarán.
Para configurar FastCGI para utilizar sockets TCP, defina la aplicación FastCGI con el módulo mod_fastcgi utilizando la directiva FastCGIServer con la opción -port o con la directiva FastCGIExternalServer. Los servidores FastCGI dinámicos que no configura con FastCGIServer o FastCGIExternalServer no se pueden utilizar con SAFRunAS.
Si no habilita SAFRunAs para las peticiones FastCGI, no son necesarios los sockets TCP.
<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> # If mod_auth is loaded, ensure that it allows other # modules to authenticate in case mod_auth runs first. 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 # File x4.grp contains this line: wasuser: alice123 ALICE123 guest3 GUEST3 AuthGroupFile /usr/lpp/config/x4.grp AuthBasicProvider saf </Location>