[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

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.

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 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.

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 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>
  • 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.

    usuario-sustituto: El servidor cambia la identidad de las hebras por un usuario sustituto específico. El servidor debe tener acceso de lectura al perfil BPX.SRV.usuario-sustituto. Cuando se utiliza esta opción, tanto el ID original como el sustituto del servidor web deben tener acceso a los objetos del sistema de archivos que se están solicitando. Esta restricción es exclusiva de este método SAFRunAs y depende del modelo de seguridad de z/OS. El servidor ejecuta la solicitud bajo el ID asociado con el ID sustituto de SAF especificado.

  • %%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.

    <usuario_sustituto>: El servidor cambia la identidad de las hebras por un usuario sustituto específico. El servidor debe tener acceso de lectura a BPX.SRV."usuario_sustituto". Cuando se utiliza esta opción, _both_ el sustituto y el ID original del servidor web deben tener acceso a los objetos del sistema de archivos que se están solicitando. Esta restricción es exclusiva de este método SAFRunAs y depende del modelo de seguridad de z/OS.

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

  • %%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.
    Avoid trouble Avoid trouble:
    • Esta sintaxis sólo es válida en el contexto global y de <virtualHost>.
    • 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 <Location> o <Directory>.
    • Esta característica puede utilizarse junto con "AuthBasicProvider saf".
    gotcha
  • nombre_usuario_sustituto /prefix: El servidor cambia la identidad de las hebras por un ID de usuario sustituto para los URL bajo /prefix.

    Cuando se utiliza esta opción, _both_ el sustituto y el ID original del servidor web deben tener acceso a los objetos del sistema de archivos que se están solicitando. Esta restricción es exclusiva de este método SAFRunAs y depende del modelo de seguridad de z/OS.

    Avoid trouble Avoid trouble:
    • Esta sintaxis sólo es válida en el contexto global y de <virtualHost>.
    • 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 <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 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.

Avoid trouble Avoid trouble: Puede configurar la directiva SAFRunAS para los recursos que se procesan con la directiva Action. Al hacerlo, debe configurar la directiva SAFRunAS en un ámbito que cubre el segundo parámetro de la directiva Action en lugar de la vía de acceso al recurso original.
Por ejemplo, un uso típico de la directiva SAFRunAs está en la directiva Location:
<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.
Sin embargo, cuando se utiliza la directiva Action, el servidor también altera la raíz de contexto que utiliza para las coincidencias:
# 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.
Cuando incluya la directiva Action, incluya también una directiva SAFRunAs en la directiva Location, como en el ejemplo siguiente:
<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.

gotcha

Directiva 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
Cuando se recibe una solicitud con SAFRunAs establecido en %%CLIENT%%, IHS intenta acceder al archivo que debe servirse en la respuesta antes de conmutar los ID de usuario. Esto puede provocar problemas cuando existen directorios/archivos que no son accesibles para el usuario bajo el que se ejecuta IHS, pero son accesibles para el usuario %%CLIENT%%. Se podría producir un error como éste cuando se intenta acceder a uno de estos directorios:
[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.

Nota:

SAFRunAsEarly debe utilizarse en contextos <Location> o en el contexto global. No puede utilizarse en contextos <Directory>.

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
</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>

Icon that indicates the type of topic Reference topic



Timestamp icon Last updated: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=ihs-dist&topic=rihs_safdirs
File name: rihs_safdirs.html