[z/OS]

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

La directiva AuthSAFAuthoritative establece si la autorización se pasa a módulos de nivel inferior.

Directiva Descripción
Sintaxis AuthSAFAuthoritative on | off
Valor predeterminado on
Contexto directorio, .htaccess
Módulo mod_authnz_saf
Valores on u off

Establecer la directiva AuthSAFAuthoritative en off permite que se pase la autorización 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.

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 el código EBCDIC del idioma 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 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.

Por ejemplo, considere la siguiente configuración:
<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 Volver a especificar 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 tendrá ningún efecto.

Por ejemplo, considere la siguiente configuración:
<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 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 | %%CERTIF%% / ? ? | surrogate-username /prefix | <surrogate ID>

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. Para autenticar el URL, es necesario que el SAF esté configurado.

%%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. No es necesario que SAF authn o authz esté configurado.

%%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. No es necesario que SAF authn o authz esté configurado.

[8.5.5.2 o posterior] %%CERTIF%% /prefix: El servidor cambia la identidad de las hebras por la identidad suministrada por la autenticación de cliente SSL para los URL bajo /prefix.
Evite problemas Evite problemas:
  • Esta sintaxis sólo es válida en el contexto global y de <virtualHost>.
  • No se permiten otros valores como segundo argumento.
  • El servidor no conmutará identidades dos veces durante una solicitud si también se ha configurado SAFRunAS utilizando la versión de un argumento dentro del contexto de <Location> o <Directory>.
  • Esta característica puede utilizarse junto con "AuthBasicProvider saf".
gotcha
[8.5.5.2 o posterior] %%CERTIF%% / ? ?: El servidor cambia pronto al directorio de inicio del usuario /presupone que se ha configurado mod_userdir).
Evite problemas Evite problemas:
  • Esta sintaxis sólo es válida en el contexto global y de <virtualHost>.
  • No se permiten otros valores como segundo argumento.
  • El servidor no conmutará identidades dos veces durante una solicitud si también se ha configurado SAFRunAS utilizando la versión de un argumento dentro del contexto de <Location> o <Directory>.
  • Esta característica puede utilizarse junto con "AuthBasicProvider saf".
gotcha
[8.5.5.2 o posterior] nombre_usuario_sustituto /prefix: El servidor cambia la identidad de las hebras por un ID de usuario sustituto para los URL bajo /prefix.
Evite problemas Evite problemas:
  • Esta sintaxis sólo es válida en el contexto global y de <virtualHost>.
  • No se permiten otros valores como segundo argumento.
  • El servidor no conmutará identidades dos veces durante una solicitud si también se ha configurado SAFRunAS utilizando la versión de un argumento dentro del contexto de <Location> o <Directory>.
  • Esta característica puede utilizarse junto con "AuthBasicProvider saf".
gotcha

<ID sustituto>: el servidor ejecutará la solicitud bajo el ID asociado al ID sustituto de SAF especificado.

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.

Si desea utilizar SAF para la autenticación y la autorización, tenga en cuenta el ejemplo siguiente. Este es el escenario más común para que los usuarios y grupos SAF cumplan los requisitos de acceso web.
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>
Si desea utilizar un archivo SAF para la autenticación y utilizar un grupo no SAF para la autorización, tenga en cuenta el ejemplo siguiente. En este ejemplo, los usuarios se autentican utilizando SAF, pero se les autoriza utilizando un mecanismo diferente.
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>
Si desea permitir el acceso a un usuario si el usuario está autorizado por SAF o por un archivo de grupo, utilice el siguiente ejemplo.
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
AuthzGroupFileAuthoritative Off
AuthSAFAuthoritative Off
</Location>
Si desea requerir una solicitud de ejecución utilizando los privilegios SAF asociados con el nombre de usuario autenticado, utilice el siguiente ejemplo.
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>
Si desea dar soporte al cambio de contraseñas SAF caducadas, utilice el siguiente ejemplo.
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.

Si desea utilizar un certificado de cliente para determinar el usuario para el que se realiza el proceso de petición, utilice el siguiente ejemplo. Si el usuario no tiene un certificado válido, se le deniega el acceso.
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>
Si desea requerir una solicitud de ejecución utilizando los privilegios SAF asociados con un certificado de cliente, pero requiere autenticación de nombre de usuario y contraseña si el certificado de cliente no está correlacionado con un usuario SAF, utilice el siguiente ejemplo. Si el usuario proporciona un certificado que SAF puede correlacionar con un ID de usuario, el ID de usuario debe pasar también las directivas Require.
<Location /certificate_or_basic>
AuthName "Certif SAF RunAs"
AuthType basic
Require saf-user USER84 USER103
AuthBasicProvider saf
SAFRunAs %%CERTIF%%
</Location>
Si desea requerir una solicitud de ejecución utilizando los privilegios SAF asociados con un ID de reemplazo, utilice el siguiente ejemplo.
<Location /runas_public>
SAFRunAs PUBLIC
# Esto puede combinarse con autenticación/autorización SAF y no SAF
</Location>
Tema de referencia    

Términos y condiciones para centros de información | Comentarios

Última actualización: October 10, 2014 03:11 AM EDT
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=phil&product=ihs-dist&topic=rihs_safdirs
Nombre de archivo: rihs_safdirs.html