[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

Em liberações anteriores, a diretiva AuthSAFAuthoritative configura se a autorização é transmitida para módulos de nível inferior. Devido às mudanças na API do Servidor HTTP Apache nesta liberação, AuthSAFAuthoritative não é mais necessário ou aceito.

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

Em liberações anteriores, a diretiva AuthSAFAuthoritative configura se a autorização é passada para módulos de nível inferior. Devido às mudanças na API do Servidor HTTP Apache nesta liberação, AuthSAFAuthoritative não é mais necessário ou aceito.

Se for usada em uma liberação anterior, ela deverá ser removida da configuração.

Diretiva AuthSAFExpiration

A diretiva AuthSAFExpiration configura o valor exibido no prompt do navegador. O servidor envia o valor especificado para a diretiva AuthName e essa frase curta em um cabeçalho de resposta HTTP, depois o navegador os exibe para o usuário em uma janela do prompt de senha. A frase curta está sujeita às mesmas limitações de caractere 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 no idioma alemão "CharsetSourceEnc IBM-1141" e a página de códigos ASCII "CharsetDefault ISO08859-1", deve-se codificar a frase usando o valor hexadecimal '43', que é convertido 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 para uma frase permite que o IBM HTTP Server solicite ao usuário 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 prompt consiste na região (o valor da diretiva AuthName) seguida pelo 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, que é 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 para uma frase diferente de "Reinserir nova senha" permite que o administrador exiba uma mensagem alternativa após uma senha expirada ter sido atualizada com sucesso. Se AuthSAFExpiration tiver sido configurado para 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>

Neste exemplo, após a senha expirada ser atualizada com sucesso, o servidor enviará outra resposta Autenticação Necessá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 SAFAPPLID

Substitui o parâmetro ID do aplicativo (APPLID) transmitido para sub-rotinas pthread_security_applid_np() dos sistemas operacionais sob configurações com SAFRunAs".

Diretiva Descrição
Sintaxe application-id do SAFAPPLID
Padrão Nenhum (Algumas configurações de SO tratam-no como "OMVSAPPL" implicitamente)
Contexto directory, .htaccess
Módulo mod_authnz_saf
Valores application-id

Quando a diretiva SAFRunAs é usada sob algumas configurações de produto de segurança onde a classe "APPL" está ativa, o produto de segurança verificará se o usuário autenticado tem acesso à classe "OMVSAPPL". Se o SAFAPPLID estiver configurado, o application-id é usado em seu lugar.

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

    surrogate-user: O servidor muda a identidade dos encadeamentos para um usuário substituto específico. O servidor deve ter acesso de leitura ao perfil BPX.SRV.surrogate-user. Quando essa opção for usada, os IDs substituto e original do servidor da web deverão ter acesso aos objetos do sistema de arquivos que estão sendo solicitados. Essa restrição é exclusiva desse método SAFRunAs e é uma função do modelo de segurança do z/OS. O servidor executa a solicitação com o ID associado ao ID substituto do SAF especificado.

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

    <surrogate-user>: O servidor muda a identidade dos encadeamentos para um usuário substituto específico. O servidor deve ter acesso de leitura ao BPX.SRV."surrogate-user". Quando essa opção é usada, tanto o substituto quanto o ID original do servidor da web devem ter acesso aos objetos do sistema de arquivos sendo solicitados. Essa restrição é exclusiva desse método SAFRunAs e é uma função do modelo de segurança do z/OS.

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

  • %%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 no contexto global e <virtualHost>.
    • 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 <Localização> ou <Diretório>.
    • Este recurso pode ser usado junto com "AuthBasicProvider saf".
    gotcha
  • surrogate-username /prefix: O servidor altera a identidade dos encadeamentos para um ID do usuário substituto específico para URLs sob /prefix.

    Quando essa opção é usada, tanto o substituto quanto o ID original do servidor da web devem ter acesso aos objetos do sistema de arquivos sendo solicitados. Essa restrição é exclusiva desse método SAFRunAs e é uma função do modelo de segurança do z/OS.

    Evitar Problemas Evitar Problemas:
    • Esta sintaxe é válida somente no contexto global e <virtualHost>.
    • 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 <Localização> ou <Diretório>.
    • 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, durante o uso de SAFRunAs para solicitações FastCGI, deve-se usar 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 de usuário alternativo controlado com a diretiva SAFRunAs não tem permissão para acessar os soquetes UNIX, portanto, as solicitações falharão.

Para configurar FastCGI para usar soquetes TCP, defina o aplicativo FastCGI para o módulo mod_fastcgi usando a diretiva FastCGIServer com a opção -port ou usando a diretiva FastCGIExternalServer. Servidores FastCGI dinâmicos que você não configurar com FastCGIServer ou FastCGIExternalServer não são utilizáveis com SAFRunAs.

Se você não ativar SAFRunAs para solicitações FastCGI, os soquetes TCP não serão necessários.

Evitar Problemas Evitar Problemas: É possível configurar a diretiva SAFRunAS para recursos que são processados com a diretiva Action. Ao fazer isso, é necessário configurar a diretiva SAFRunAS em um escopo que cobre o parâmetro secundário da diretiva Action em vez do caminho para o recurso original.
Por exemplo, um uso típico da diretiva SAFRunAs está na diretiva Location:
<Location /context-root-A/>
   SAFRunAS %%CLIENT%%
 </Location>
As solicitações para caminhos que contêm o parâmetro /context-root-A/* são executadas como o usuário remoto.
No entanto, ao usar também a diretiva Action, o servidor substitui a raiz de contexto que ele usa para correspondência:
# 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
A diretiva Action transforma uma solicitação para o arquivo /context-root-A/hello.phtml em uma solicitação para um caminho que contém o parâmetro /cgi-bin/php-cgi com um argumento de linha de comandos de /context-root-A/hello.phtml.
Quando incluir a diretiva Action, inclua também uma diretiva SAFRunAs na diretiva Location, como no exemplo a seguir:
<Location /cgi-bin/php-cgi>
   SAFRunAS %%CLIENT%%
 </Location>

Se precisar de várias configurações de SAFRunAs, dispense totalmente a diretiva Action ou crie várias diretivas Action com parâmetros secundários diferentes.

gotcha

Diretiva SAFRunAsEarly

A diretiva SAFRunAsEarly permite que o SAFRunAs seja executado antes de quaisquer diretórios serem acessados.

Diretiva Descrição
Sintaxe SAFRunAsEarly on | off
Padrão off
Contexto local
Módulo mod_authnz_saf
Valores on | off
Quando uma solicitação é recebida com SAFRunAs configurado para %%CLIENT%%, o IHS tenta acessar o arquivo a ser entregue na resposta antes de alternar os IDs de usuário. Isso pode causar problemas quando houver diretórios/arquivos inacessíveis para o usuário sob os quais o IHS está em execução, mas acessíveis para o usuário do %%CLIENT%%. Um erro como esse ocorreria durante uma tentativa desse diretório:
[Tue Aug 11 14:03:16 2015] [error] [client x.x.x.x] (111)EDC5111I Permission denied. (errno2=0x5B4B0002): 
access to /saf/privileged/index.html deniedIf SAFRunAsEarly is set to on with SAFRunAs set to %%CLIENT%%, IHS will switch
user before any directory/file access are attempted.

Se SAFRunAsEarly estiver configurado com SAFRunAs definido para %%CLIENT%%, o IHS alternará o usuário antes de qualquer tentativa de acesso ao diretório/arquivo.

Nota:

SAFRunAsEarly deve ser usada em contextos <Location> ou contexto global. Ela não pode ser usada em contextos <Directory>.

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

Ícone que indica o tipo de tópico Tópico de Referência



Ícone de registro de data e hora Última atualização: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=ihs-dist&topic=rihs_safdirs
Nome do arquivo: rihs_safdirs.html