![[z/OS]](../images/ngzos.gif)
Directivas SAF
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.
- Directiva AuthSAFAuthoritative
- Directiva AuthSAFExpiration
- Directiva AuthSAFExpiredRedirect
- Directiva AuthSAFReEnter
- Directiva SAFAPPLID
- Directiva SAFRunAs
- Directiva SAFRunAsEarly
Directiva AuthSAFAuthoritative
En releases anteriores, la directiva AuthSAFAuthoritative establece si la autorización se pasa a módulos de nivel inferior. Debido a los cambios realizados en la API de Apache HTTP Server en este release, AuthSAFAuthoritative ya no es necesario o no se acepta.
Directiva | Descripción |
---|---|
Sintaxis | AuthSAFAuthoritative on | off |
Valor predeterminado | on |
Contexto | directorio, .htaccess |
Módulo | mod_authnz_saf |
Valores | on | off |
En releases anteriores, la directiva AuthSAFAuthoritative establece si la autorización se pasa a módulos de nivel inferior. Debido a los cambios realizados en la API de Apache HTTP Server en este release, AuthSAFAuthoritative ya no es necesario o no se acepta.
Si se utiliza en un release anterior, debe eliminarse de la configuración.
Directiva AuthSAFExpiration
La directiva AuthSAFExpiration establece el valor visualizado en el indicador del navegador. El servidor envía el valor especificado para la directiva AuthName y esta frase corta en una cabecera de respuesta HTTP y, a continuación, el navegador los muestra al usuario en una ventana de solicitud de contraseña. La frase corta está sujeta a las mismas limitaciones de caracteres que el valor especificado para la directiva AuthName. Por lo tanto, para mostrar un carácter especial en la ventana de solicitud de contraseña, el servidor debe convertir el carácter especial de la página de códigos EBCDIC CharsetSourceEnc a la página de códigos ASCII CharsetDefault. Por ejemplo, si desea visualizar una 'a' minúscula con diéresis y el archivo httpd.conf contiene la página de códigos EBCDIC de alemán "CharsetSourceEnc IBM-1141" y la página de códigos ASCII "CharsetDefault ISO08859-1", debe codificar la frase utilizando el valor hexadecimal '43', que lo convierte al carácter ASCII correcto.
Directiva | Descripción |
---|---|
Sintaxis | AuthSAFExpiration frase_corta |
Valor predeterminado | off |
Contexto | directorio, .htaccess |
Módulo | mod_authnz_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"
AuthBasicProvider saf
Require valid-user
Require saf-group 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.
Directiva AuthSAFExpiredRedirect
La directiva AuthSAFExpiredRedirect especifica el URL al que debe redirigirse una solicitud si la contraseña ha caducado cuando se utiliza mod_authnz_saf para la autenticación en z/OS.
Es una alternativa a utilizar AuthSAFExpiration.
Directiva | Descripción |
---|---|
Sintaxis | AuthSAFExpiredRedirect url |
Valor predeterminado | off |
Contexto | directorio, .htaccess |
Módulo | mod_authnz_saf |
Valores | off o url |
Directiva AuthSAFReEnter
La directiva AuthSAFReEnter establece el valor anexado al reino después de un cambio correcto de contraseña. Para obtener más información sobre la codificación de caracteres especiales, consulte la directiva BAuthSAFExpiration.
Directiva | Descripción |
---|---|
Sintaxis | AuthSAFReEnter frase_corta |
Valor predeterminado | Vuelva a entrar la nueva contraseña |
Contexto | directorio, .htaccess |
Módulo | mod_authnz_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 tiene ningún efecto.
<Location /js>
AuthType basic
AuthName "zwasa051_SAF"
AuthBasicProvider saf
Require saf-user SYSADM USER152 BABAR
AuthSAFExpiration "EXPIRED! oldpw/newpw/newpw"
AuthSAFReEnter "Entre la nueva contraseña otra vez"
</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).
Directiva SAFAPPLID
Altera temporalmente el parámetro de ID de aplicación (APPLID) que se pasa a la subrutina pthread_security_applid_np() de los sistemas operativos con "SAFRunAs".
Directiva | Descripción |
---|---|
Sintaxis | SAFAPPLID id-aplicación |
Valor predeterminado | Ninguno (Algunas configuraciones de SO lo tratan implícitamente como "OMVSAPPL") |
Contexto | directorio, .htaccess |
Módulo | mod_authnz_saf |
Valores | id-aplicación |
Cuando se utiliza la directiva SAFRunAs, en algunas configuraciones del producto de seguridad en las que la clase "APPL" está activa, el producto de seguridad comprobará que el usuario autenticado tenga acceso a la clase "OMVSAPPL". Si se configura SAFAPPLID, se utiliza el ID de aplicación especificado en su lugar.
Directiva SAFRunAs
La directiva SAFRunAs establece el ID de usuario SAF bajo el cual se servirá una solicitud.
Directiva | Descripción |
---|---|
Sintaxis | SAFRunAs valor |
Valor predeterminado | off |
Contexto | directorio, .htaccess |
Módulo | mod_authnz_saf |
Valores | off | %%CLIENT%% | %%CERTIF%% | %%CERTIF_REQ%% | %%CERTIF%% /prefix |
nombre_usuario_sustituto /prefix | <ID sustituto>
|
IBM HTTP Server puede comunicarse con las aplicaciones FastCGI utilizando los sockets TCP o UNIX. No obstante, cuando se utiliza SAFRunAs para solicitudes 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 y, por tanto, las solicitudes no se realizarán correctamente.
Si desea configurar FastCGI para utilizar sockets TCP, defina la aplicación FastCGI en el módulo mod_fastcgi utilizando la directiva FastCGIServer con la opción -port o bien utilizando la directiva FastCGIExternalServer. Los servidores FastCGI dinámicos que no configure con FastCGIServer o FastCGIExternalServer no se pueden utilizar con SAFRunAs.
Si no habilita SAFRunAs para solicitudes FastCGI, los sockets TCP no son necesarios.

<Location /context-root-A/>
SAFRunAS %%CLIENT%%
</Location>
Solicita a las vías de acceso que contienen el
parámetro /context-root-A/* que se
ejecuten como usuario remoto.# Process *.phtml with the "php-script" handler.
AddHandler php-script .phtml
# Define the "php-script" handler as an existing CGI.
Action php-script /cgi-bin/php-cgi
La directiva Action convierte una solicitud para el archivo
/context-root-A/hello.phtml en una solicitud
para el parámetro /cgi-bin/php-cgi con un
argumento de línea de mandatos de /context-root-A/hello.phtml.<Location /cgi-bin/php-cgi>
SAFRunAS %%CLIENT%%
</Location>
Si necesita varios valores SAFRunAs, renuncie completamente a la directiva de Action o cree varias directivas Action con diferentes segundos parámetros.
gotchaDirectiva SAFRunAsEarly
La directiva SAFRunAsEarly permite ejecutar SAFRunAs antes de acceder a cualquier directorio.
Directiva | Descripción |
---|---|
Sintaxis | SAFRunAsEarly on | off |
Valor predeterminado | off |
Contexto | location |
Módulo | mod_authnz_saf |
Valores | on | off |
[Tue Aug 11 14:03:16 2015] [error] [client x.x.x.x]
(111)EDC5111I Permiso denegado. (errno2=0x5B4B0002):
Se ha denegado el acceso a /saf/privileged/index.html Si
SAFRunAsEarly se establece en on con SAFRunAs establecido en
%%CLIENT%%, IHS conmutará
el usuario antes de intentar cualquier acceso a
directorio/archivo.
Si SAFRunAsEarly está establecido en on con SAFRunAs establecido en %%CLIENT%%, IHS conmutará el usuario antes de intentar cualquier acceso a directorio/archivo.
SAFRunAsEarly debe utilizarse en contextos <Location> o en el contexto global. No puede utilizarse en contextos <Directory>.
LoadModule auth_basic_module modules/mod_auth_basic.so
LoadModule authnz_saf_module modules/mod_authnz_saf.so
LoadModule authz_default_module modules/mod_authz_default.so
...
<Location /saf_protected>
AuthType basic
AuthName x1
AuthBasicProvider saf
# Codifique "Require valid-user" si desea que cualquier usuario
# SAF válido pueda acceder al recurso.
Require valid-user
#
# De forma alternativa, puede proporcionar una lista de usuarios SAF específicos
# que puedan acceder al recurso.
# Require saf-user USER84 USER85
#
# De forma alternativa, puede proporcionar una lista de grupos SAF específicos
# cuyos miembros puedan acceder al recurso.
# Require saf-group WASGRP1 WASGRP2
</Location>
LoadModule auth_basic_module modules/mod_auth_basic.so
LoadModule authnz_saf_module modules/mod_authnz_saf.so
LoadModule authz_groupfile_module modules/mod_authz_groupfile.so
LoadModule authz_default_module modules/mod_authz_default.so
...
<Location /saf_password>
AuthType basic
AuthName "Aut SAF con archgrupo hfs"
AuthBasicProvider saf
AuthGroupFile /www/config/foo.grp
# Codifique "Require file-group" y una lista de grupos si desea
# que un usuario de cualquiera de los grupos en el archivo de grupos especificado
# pueda acceder al recurso.
# Nota: Se puede utilizar cualquier módulo de autorización, con su configuración estándar.
Require group admin1 admin2
</Location>
LoadModule auth_basic_module modules/mod_auth_basic.so
LoadModule authnz_saf_module modules/mod_authnz_saf.so
LoadModule authz_groupfile_module modules/mod_authz_groupfile.so
LoadModule authz_default_module modules/mod_authz_default.so
...
<Location /either_group>
AuthType basic
AuthName "Aut SAF con grupos SAF y archgrupo hfs"
AuthBasicProvider saf
AuthGroupFile /www/groupfiles/foo.grp
Require saf-group WASGRP
Require saf-group ADMINS
</Location>
LoadModule auth_basic_module modules/mod_auth_basic.so
LoadModule authnz_saf_module modules/mod_authnz_saf.so
LoadModule authz_default_module modules/mod_authz_default.so
...
<Location /runas_admin_bin>
AuthName "Cliente SAF RunAs"
AuthType basic
Require valid-user
AuthBasicProvider saf
SAFRunAs %%CLIENT%%
</Location>
LoadModule auth_basic_module modules/mod_auth_basic.so
LoadModule authnz_saf_module modules/mod_authnz_saf.so
LoadModule authz_default_module modules/mod_authz_default.so
...
<Location /custom_password_change>
AuthType basic
AuthName "Soporte contraseñas caducadas"
Require valid-user
AuthBasicProvider saf
AuthSAFEXpiration "EXPIRED PW: oldpw/newpw/newpw"
AuthSAFReEnter "Repita la nueva contraseña:"
</Location>
Si desea requerir un certificado de cliente antes de que un usuario pueda acceder a un recurso, utilice la directiva mod_ibm_ssl. La directiva mod_authnz_saf no es necesaria para esta configuración. Para obtener más información, consulte la documentación de las directivas SSLClientAuth y SSLClientAuthRequire.
LoadModule authnz_saf_module modules/mod_authnz_saf.so
LoadModule ibm_ssl_module modules/mod_ibm_ssl.so
...
<Location /certificate_required>
SAFRunAs %%CERTIF_REQ%%
</Location>
<Location /certificate_or_basic>
AuthName "Certif SAF RunAs"
AuthType basic
Require saf-user USER84 USER103
AuthBasicProvider saf
SAFRunAs %%CERTIF%%
</Location>
<Location /runas_public>
SAFRunAs PUBLIC
# Esto puede combinarse con autenticación/autorización SAF y no SAF
</Location>