[z/OS]

Diretivas SAF

Estes parâmetros de configuração controlam o recurso System Authorization Facility (SAF) para o IBM® HTTP Server. Use as diretivas SAF para fornecer ao IBM HTTP Server a autenticação do usuário.

Diretiva AuthSAFAuthoritative

A diretiva AuthSAFAuthoritative configura se a autorização é transmitida para módulos de nível inferior.

Diretiva Descrição
Sintaxe AuthSAFAuthoritative on | off
Padrão on
Contexto directory, .htaccess
Módulo mod_authnz_saf
Valores on ou off

Configurando a diretiva AuthSAFAuthoritative como desativada permite que a autorização seja passada para módulos de nível inferior (conforme definido nos arquivos modules.c), se não houver nenhum ID do usuário ou regra correspondente ao ID do usuário fornecido. Se houver um ID do usuário ou regra especificada, a senha usual e as verificações de acesso serão aplicadas e será resultado uma falha em uma resposta Autenticação Requerida.

Se um ID do usuário aparecer no banco de dados demais de um módulo ou se uma diretiva Require válida se aplicar a mais de um módulo, o primeiro módulo verificará as credenciais e nenhum acesso será transmitido, independente da configuração AuthSAFAuthoritative.

Por padrão, o controle não é transmitido e um ID do usuário desconhecido ou regra resultará em uma resposta de Autorização Obrigatória. Desta forma, a não configuração deste mantém o sistema seguro e força um comportamento compatível com o NCSA.

Diretiva AuthSAFExpiration

A diretiva AuthSAFExpiration configura o valor exibido no prompt do navegador. O servidor envia o valor especificado para a diretiva AuthName e esta frase curta em um cabeçalho de resposta HTTP e, então, o navegador os exibe ao usuário em uma janela do prompt de senha. A frase curta é o assunto para as mesmas limitações de caracteres que o valor especificado para a diretiva AuthName. Portanto, para exibir um caractere especial na janela do prompt de senha, o servidor deve converter o caractere especial da página de códigos EBCDIC CharsetSourceEnc para a página de códigos ASCII CharsetDefault. Por exemplo, se desejar exibir um 'a' minúsculo com trema, e o arquivo httpd.conf contiver a página de códigos EBCDIC do idioma alemão "CharsetSourceEnc IBM-1141" e a página de códigos ASCII "CharsetDefault ISO08859-1", você deverá codificar a frase usando o valor hexadecimal '43', o qual converte para o caractere ASCII correto.

Diretiva Descrição
Sintaxe AuthSAFExpiration short_phrase
Padrão off
Contexto directory, .htaccess
Módulo mod_authnz_saf
Valores off ou short_phrase

A configuração da diretiva AuthSAFExpiration em uma frase permite que o IBM HTTP Server solicite ao usuário para atualizar sua senha SAF se ela expirar. Quando o usuário digita um ID e senha do SAF válidos e a senha expirou, o servidor retornará uma resposta Autenticação Obrigatória com um aviso especial para permitir que o usuário atualize a senha expirada. O aviso consiste na região (o valor da diretiva AuthName) seguido do valor short_phrase da diretiva AuthSAFExpiration.

Por exemplo, considere a seguinte configuração:
<Location /js>
AuthType basic
AuthName "zwasa051_SAF"
AuthBasicProvider saf
Require valid-user
Require saf-group SYS1 WASUSER
AuthSAFExpiration "EXPIRED! oldpw/newpw/newpw"
</Location>

Se o usuário tentar acessar um arquivo cuja URL começa com /js, o servidor solicitará um ID do SAF e senha. O navegador exibirá um aviso que contém a região. A região é o valor da diretiva AuthName, o qual é zwasa051_SAF neste exemplo.

Quando o usuário fornece um ID e senha válidos e a senha expirou, o servidor repetirá o aviso, mas dessa vez com o valor zwasa051_SAF EXPIRADO! oldpw/newpw/newpw. Seja qual for o aviso, o usuário deve digitar novamente a senha expirada, seguido de uma barra, de uma nova senha, de outra barra e da nova senha novamente.

Se a atualização da senha for bem-sucedida, o servidor enviará outra resposta Autenticação Obrigatória com um aviso especial distinto. Essa última interação é necessária, para forçar o navegador a entender qual senha é necessário armazenar em cache. O aviso dessa vez irá consistir na região seguida pelo aviso Digitar Novamente a Nova Senha. Nesse exemplo, seria zwasa051_SAF Digitar Novamente a Nova Senha.

Diretiva AuthSAFExpiredRedirect

A diretiva AuthSAFExpiredRedirect especifica a URL para a qual uma solicitação deverá ser redirecionada caso sua senha expire quando estiver usando mod_authnz_saf para autenticação no z/OS.

Essa é uma alternativa para usar AuthSAFExpiration.

Diretiva Descrição
Sintaxe AuthSAFExpiredRedirect url
Padrão off
Contexto directory, .htaccess
Módulo mod_authnz_saf
Valores off ou url

Diretiva AuthSAFReEnter

A diretiva AuthSAFReEnter configura o valor anexado à região após uma alteração de senha bem-sucedida. Para obter informações sobre como codificar caracteres especiais, consulte a diretiva BAuthSAFExpiration.

Diretiva Descrição
Sintaxe AuthSAFReEnter short_phrase
Padrão Reinsira a nova senha
Contexto directory, .htaccess
Módulo mod_authnz_saf
Valores off ou short_phrase

A configuração da diretiva AuthSAFReEnter explicitamente em uma frase diferente de "Digitar novamente a nova senha" permite que o administrador exiba uma mensagem alternativa após uma senha expirada ter sido atualizada com êxito. Se AuthSAFExpiration foi configurada como off, essa diretiva não terá efeito.

Por exemplo, considere a seguinte configuração:
<Location /js>
AuthType basic
AuthName "zwasa051_SAF"
AuthBasicProvider saf
Require saf-user SYSADM USER152 BABAR
AuthSAFExpiration "EXPIRED! oldpw/newpw/newpw"
AuthSAFReEnter "Enter new password one more time"
</Location>

Nesse exemplo, após a senha expirada ser atualizada com êxito, o servidor enviará outra resposta Autenticação Obrigatória com o valor da diretiva AuthSAFReEnter. Essa última interação é necessária, para forçar o navegador a entender qual senha é necessário armazenar em cache. O aviso dessa vez irá consistir na região seguida pela frase especial. Nesse exemplo, seria zwasa051_SAF Digitar Novamente a Nova Senha.

Diretiva SAFRunAs

A diretiva SAFRunAs configura o ID do usuário do SAF, no qual um pedido será atendido.

Diretiva Descrição
Sintaxe SAFRunAs value
Padrão off
Contexto directory, .htaccess
Módulo mod_authnz_saf
Valores off | %%CLIENT%% | %%CERTIF%% | %%CERTIF_REQ%% | %%CERTIF%% /prefix | %%CERTIF%% / ? ? | surrogate-username /prefix | <surrogate ID>

Off: O servidor executará o pedido no ID do usuário do servidor da Web.

%%CLIENT%%: O servidor executará o pedido no ID fornecido no cabeçalho do pedido de Autorização. Geralmente, o usuário fornece o ID e a senha em uma janela pop-up no navegador e o navegador cria o cabeçalho. Requer que o SAF seja configurado para autenticar a URL.

%%CERTIF%%: O servidor executará o pedido no ID associado ao certificado cliente SSL no SAF. Se não houver nenhum certificado SSL ou se esse certificado não foi associado a um ID no SAF, o processamento continuará como se %%CLIENT%% tivesse sido codificado. Não requer que o SAF authn ou authz seja configurado.

%%CERTIF_REQ%%: O servidor executará o pedido no ID associado ao certificado cliente SSL no SAF. Se não houver nenhum certificado SSL ou se esse certificado não foi associado a um ID no SAF, o servidor não permitirá o acesso. Não requer que o SAF authn ou authz seja configurado.

[8.5.5.2 or later] %%CERTIF%% /prefix: O servidor altera a identidade dos encadeamentos para a identidade fornecida pela autenticação de cliente SSL para URLs sob /prefix.
Evitar Problemas Evitar Problemas:
  • Esta sintaxe é válida somente nos contextos global e <virtualHost>.
  • Nenhum outro valor é permitido como segundo argumento.
  • O servidor não alternará identidades duas vezes durante uma solicitação se SAFRunAS também for configurado usando a versão de um argumento dentro do contexto de <Location> ou <Directory>.
  • Este recurso pode ser usado junto com "AuthBasicProvider saf".
gotcha
[8.5.5.2 or later] %%CERTIF%% / ? ?: O servidor muda antecipadamente para o diretório inicial do usuário (supõe que mod_userdir esteja configurado).
Evitar Problemas Evitar Problemas:
  • Esta sintaxe é válida somente nos contextos global e <virtualHost>.
  • Nenhum outro valor é permitido como segundo argumento.
  • O servidor não alternará identidades duas vezes durante uma solicitação se SAFRunAS também for configurado usando a versão de um argumento dentro do contexto de <Location> ou <Directory>.
  • Este recurso pode ser usado junto com "AuthBasicProvider saf".
gotcha
[8.5.5.2 or later] surrogate-username /prefix: O servidor altera a identidade dos encadeamentos para um ID do usuário substituto específico para URLs sob /prefix.
Evitar Problemas Evitar Problemas:
  • Esta sintaxe é válida somente nos contextos global e <virtualHost>.
  • Nenhum outro valor é permitido como segundo argumento.
  • O servidor não alternará identidades duas vezes durante uma solicitação se SAFRunAS também for configurado usando a versão de um argumento dentro do contexto de <Location> ou <Directory>.
  • Este recurso pode ser usado junto com "AuthBasicProvider saf".
gotcha

<surrogate ID>: O servidor executará a solicitação sob o ID associado ao ID substituto do SAF especificado.

O IBM HTTP Server pode se comunicar com aplicativos FastCGI usando soquetes TCP ou soquetes UNIX. Entretanto, ao utilizar o SAFRunAs para pedidos FastCGI, utilize soquetes TCP para comunicação com o aplicativo. Os soquetes UNIX que são criados para aplicativos FastCGI estão acessíveis apenas para o ID do usuário do servidor da Web. O ID do usuário alternativo controlado com a diretiva SAFRunAs não possui permissão para acessar os soquetes do UNIX, portanto, as solicitações falharão.

Para configurar o FastCGI para utilizar soquetes TCP, defina o aplicativo FastCGI para o módulo mod_fastcgi utilizando a diretiva FastCGIServer com a opção -port ou utilizando a diretiva FastCGIExternalServer. Servidores dinâmicos FastCGI que você não configura com FastCGIServer ou FastCGIExternalServer não podem ser utilizados com SAFRunAS.

Se você não ativar o SAFRunAs para pedidos FastCGI, não serão necessários soquetes TCP.

Se desejar usar SAF para autenticação e autorização, considere o exemplo a seguir. Este é o cenário mais comum para usuários e grupos SAF e atende aos requisitos para acesso à 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 
# Code "Require valid-user" if you want any valid
# SAF user to be able to access the resource.
Require valid-user
#
# Alternately, you can provide a list of specific SAF users
# who may access the resource.
# Require saf-user USER84 USER85
#
# Alternatively, you can provide a list of specific SAF groups
# whose members may access the resource.
# Require saf-group WASGRP1 WASGRP2
</Location>
Se desejar usar um arquivo SAF para autenticação, mas usar um arquivo do grupo não SAF para autorização, considere o exemplo a seguir. Neste exemplo, usuários são autenticados usando SAF, mas autorizados usando um 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 "SAF auth with hfs groupfile"
AuthBasicProvider saf
AuthGroupFile /www/config/foo.grp
# Code "Require file-group" and a list of groups if you want
# a user in any of the groups in the specified group file to be able
# to access the resource.
# Note: Any authorization module, with its standard configuration, can be used here.
Require group admin1 admin2
</Location>
Se desejar permitir o acesso a um usuário se o usuário for autorizado por SAF ou por um arquivo do grupo, considere o exemplo a seguir.
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 "SAF auth with SAF groups and hfs groupfile"
AuthBasicProvider saf
AuthGroupFile /www/groupfiles/foo.grp
Require saf-group WASGRP
Require saf-group ADMINS
AuthzGroupFileAuthoritative Off
AuthSAFAuthoritative Off
</Location>
Se desejar requerer uma solicitação para execução usando os privilégios de SAF associados ao nome de usuário autenticado, considere o exemplo a seguir.
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 "SAF RunAs client"
AuthType basic
Require valid-user
AuthBasicProvider saf
SAFRunAs %%CLIENT%%
</Location>
Se desejar suportar a alteração de senhas SAF expiradas, considere o exemplo a seguir.
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 "Support expired PW"
Require valid-user
AuthBasicProvider saf
AuthSAFEXpiration "EXPIRED PW: oldpw/newpw/newpw"
AuthSAFReEnter "New PW again:"
</Location>

Se desejar requerer um certificado de cliente antes de um usuário poder acessar um recurso, use a diretiva mod_ibm_ssl. A diretiva mod_authnz_saf não é necessária para esta configuração. Para obter informações adicionais, consulte a documentação para as diretivas SSLClientAuth e SSLClientAuthRequire.

Se desejar usar um certificado de cliente para determinar o usuário para que o processamento da solicitação é executado, considere o exemplo a seguir. Se o usuário não tiver um certificado válido, o acesso será negado.
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>
Se desejar requerer que uma solicitação seja executada usando os privilégios SAF associados a um certificado de cliente, mas requer o nome de usuário e a autenticação de senha se o certificado de cliente não for mapeado para um usuário SAF, considere o exemplo a seguir. Se o usuário fornecer um certificado que o SAF pode mapear para um ID do usuário, o ID do usuário também deverá transmitir quaisquer diretivas Require.
<Location /certificate_or_basic>
AuthName "SAF RunAs certif"
AuthType basic
Require saf-user USER84 USER103
AuthBasicProvider saf
SAFRunAs %%CERTIF%%
</Location>
Se desejar requerer que uma solicitação seja executada usando os privilégios SAF associados a um ID substituto, considere o exemplo a seguir.
<Location /runas_public>
SAFRunAs PUBLIC
# This can be combined with SAF or non-SAF authentication/authorization
</Location>
Tópico de Referência    

Termos e condições para centros de informações | Feedback

Última atualização: October 28, 2014 11:09 AM EDT
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=phil&product=ihs-dist&topic=rihs_safdirs
Nome do arquivo: rihs_safdirs.html