[z/OS]

Directives SAF

Ces paramètres de configuration contrôlent la fonction SAF (System Authorization Facility) pour IBM® HTTP Server. Utilisez les directives SAF pour accorder à IBM HTTP Server l'authentification d'utilisateur.

Directive AuthSAFAuthoritative

La directive AuthSAFAuthoritative indique si l'autorisation est transmise à des modules de niveau inférieur.

Directive Description
Syntaxe AuthSAFAuthoritative on | off
Valeur par défaut on
Contexte répertoire, .htaccess
Module mod_authnz_saf
Valeurs on ou off

La définition de la directive AuthSAFAuthoritative off permet de transmettre l'autorisation à des modules de niveau inférieur (selon ce qui est défini dans les fichiers modules.c), si aucun ID utilisateur ou aucune règle ne correspond à l'ID utilisateur fourni. S'il est spécifié un ID utilisateur ou une règle, le mot de passe et les vérifications d'accès habituels sont appliqués et un échec apparaît dans une réponse d'authentification requise.

Si un ID utilisateur apparaît dans la base de données de plusieurs modules, ou si une directive Require valide s'applique à plusieurs modules, le premier module vérifie les données d'identification et aucun accès n'est transmis, quel que soit le paramètre défini pour AuthSAFAuthoritative.

Par défaut, le contrôle n'est pas transmis et un ID utilisateur inconnu aboutit à une réponse Authentification requise. Si vous n'en définissez aucune, le système reste sécurisé et le comportement respecte obligatoirement le format NCSA.

Directive AuthSAFExpiration

La directive AuthSAFExpiration définit la valeur affichée dans l'invite du navigateur. Le serveur envoie la valeur spécifiée pour la directive AuthName et cette phrase courte dans un en-tête de la réponse HTTP, puis le navigateur les affiche pour l'utilisateur dans une fenêtre d'invite de mot de passe. L'expression courte est soumise aux mêmes limitations de caractères que la valeur spécifiée pour la directive AuthName. Par conséquent, pour afficher un caractère spécial dans la fenêtre d'invite de mot de passe, le serveur doit convertir le caractère spécial de la page de codes EBCDIC CharsetSourceEnc en page de codes ASCII CharsetDefault. Par exemple, si vous souhaitez afficher un 'a' minuscule avec un tréma et si le fichier httpd.conf contient la page de codes EBCDIC "CharsetSourceEnc IBM-1141" et la page de codes ASCII "CharsetDefault ISO08859-1" de la langue allemande, vous devez coder l'expression en utilisant la valeur '43' hexadécimale, qui effectue la conversion vers le caractère ASCII correct.

Directive Description
Syntaxe AuthSAFExpiration short_phrase
Valeur par défaut désactivé
Contexte répertoire, .htaccess
Module mod_authnz_saf
Valeurs off ou phrase_courte

Si vous définissez la directive AuthSAFExpiration sur une expression, IBM HTTP Server peut inviter l'utilisateur à mettre à jour son mot de passe SAF à son expiration. Lorsque l'utilisateur entre un ID valide et un mot de passe SAF mais que ce dernier a expiré, le serveur lui renvoie une réponse indiquant que l'authentification est requise avec une invite spéciale permettant à l'utilisateur de mettre à jour le mot de passe expiré. L'invite est constituée d'un domaine (la valeur de la directive AuthName), suivi de la valeur phrase_courte de la directive AuthSAFExpiration.

Par exemple, considérons la configuration suivante :
<Location /js>
AuthType basic
AuthName "zwasa051_SAF"
AuthBasicProvider saf
Require valid-user
Require saf-group SYS1 WASUSER
AuthSAFExpiration "EXPIRED! oldpw/newpw/newpw"
</Location>

Si l'utilisateur essaie d'accéder à un fichier dont l'URL commence par /js, le serveur invite à entrer un ID et un mot de passe SAF. Le navigateur affiche une invite contenant le domaine. Le domaine correspond à la valeur contenue dans la directive AuthName, c'est-à-dire zwasa051_SAF dans cet exemple.

Lorsque l'utilisateur entre un ID et un mot de passe valide, si le mot de passe a expiré, le serveur relance l'invite, mais avec la valeur zwasa051_SAF EXPIRED! oldpw/newpw/newpw. Quelle que soit l'invite, l'utilisateur doit entrer à nouveau le mot de passe expiré, suivi d'une barre oblique, un nouveau mot de passe, une autre barre oblique et encore le nouveau mot de passe.

Si le mot de passe est mis à jour correctement, le serveur envoie une autre réponse indiquant authentification requise avec une invite spéciale différente. Cette dernière interaction est nécessaire pour forcer le navigateur à comprendre quel mot de passe il doit mettre en mémoire cache. L'invite cette fois est constituée du domaine suivi de l'invite Entrez à nouveau le mot de passe. Dans cet exemple, ce serait zwasa051_SAF Ré-entrer nouveau mot de passe.

Directive AuthSAFExpiredRedirect

La directive AuthSAFExpiredRedirect spécifie une URL vers laquelle une requête doit être redirigée si votre mot de passe est arrivé à expiration lorsque vous utilisez mod_authnz_saf pour l'authentification sous z/OS.

Il s'agit d'une alternative à l'utilisation d'AuthSAFExpiration.

Directive Description
Syntaxe AuthSAFExpiredRedirect url
Valeur par défaut désactivé
Contexte répertoire, .htaccess
Module mod_authnz_saf
Valeurs off ou url

Directive AuthSAFReEnter

La directive AuthSAFReEnter définit la valeur ajoutée au domaine après la modification d'un mot de passe. Pour plus d'informations concernant le codage des caractères spéciaux, consultez la directive BAuthSAFExpiration.

Directive Description
Syntaxe AuthSAFReEnter phrase_courte
Valeur par défaut Ré-entrer nouveau mot de passe
Contexte répertoire, .htaccess
Module mod_authnz_saf
Valeurs off ou phrase_courte

La définition explicite d'une phrase autre que "Ré-entrer nouveau mot de passe" pour la directive AuthSAFReEnter permet à l'administrateur d'afficher un autre message après la mise à jour d'un mot de passe expiré. Si AuthSAFExpiration a été définie sur off, cette directive n'a pas d'effet.

Par exemple, considérons la configuration suivante :
<Location /js>
AuthType basic
AuthName "zwasa051_SAF"
AuthBasicProvider saf
Require saf-user SYSADM USER152 BABAR
AuthSAFExpiration "EXPIRED! oldpw/newpw/newpw"
AuthSAFReEnter "Entrez de nouveau le mot de passe"
</Location>

Dans cet exemple, une fois que le mot de passe expiré a été mis à jour, le serveur envoie une autre réponse indiquant que l'authentification est requise avec la valeur issue de la directive AuthSAFReEnter. Cette dernière interaction est nécessaire pour forcer le navigateur à comprendre quel mot de passe il doit mettre en mémoire cache. L'invite cette fois est constituée du domaine suivi d'une phrase spéciale. Dans cet exemple, ce serait zwasa051_SAF Ré-entrer nouveau mot de passe.

Directive SAFRunAs

La directive SAFRunAs définit l'ID utilisateur SAF sous lequel une demande sera servie.

Directive Description
Syntaxe Valeur SAFRunAs
Valeur par défaut désactivé
Contexte répertoire, .htaccess
Module mod_authnz_saf
Valeurs off | %%CLIENT%% | %%CERTIF%% | %%CERTIF_REQ%% | %%CERTIF%% /prefix | %%CERTIF%% / ? ? | surrogate-username /prefix | <surrogate ID>

Off : le serveur exécute la demande sous l'ID utilisateur du serveur Web.

%%CLIENT%% : le serveur exécute la demande sous l'ID proposé dans l'en-tête de la demande d'autorisation. Généralement, l'utilisateur entre l'ID et le mot de passe dans une fenêtre en incrustation du navigateur et le navigateur crée l'en-tête. Nécessite la configuration de SAF pour authentifier l'URL.

%%CERTIF%% : le serveur exécute la demande sous l'ID associé au certificat de client SSL dans SAF. S'il n'existe aucun certificat SSL ou si le certificat SSL n'a pas encore été associé à un ID dans SAF, le traitement se poursuit comme si %%CLIENT%% avait été codé. Ne nécessite pas la configuration de SAF authn ou authz.

%%CERTIF_REQ%% : le serveur exécute la demande sous l'ID associé au certificat de client SSL dans SAF. S'il n'existe aucun certificat SSL ou si le certificat SSL n'a pas encore été associé à un ID dans SAF, le serveur ne permettra pas d'accès. Ne nécessite pas la configuration de SAF authn ou authz.

<surrogate ID>: le serveur exécute la demande sous l'ID associé à l'ID de substitut SAF spécifié.

IBM HTTP Server peut communiquer avec des applications FastCGI en utilisant des sockets TCP ou UNIX. Toutefois, si vous utilisez SAFRunAs pour des demandes FastCGI, vous devez utiliser des sockets TCP pour pouvoir communiquer avec l'application. Les sockets UNIX créés pour des applications FastCGI sont accessibles uniquement par l'ID utilisateur du serveur Web. L'ID utilisateur substitut contrôlé par la directive SAFRunAs n'a pas les droits suffisants pour accéder aux sockets UNIX, d'où l'échec des demandes.

Pour configurer FastCGI de façon à utiliser des sockets TCP, définissez l'application FastCGI sur le module mod_fastcgi à l'aide de la directive FastCGIServer avec l'option -port ou à l'aide de la directive FastCGIExternalServer. Les serveurs FastCGI dynamiques que vous ne configurez pas avec les directives FastCGIServer ou FastCGIExternalServer ne peuvent pas être utilisés avec FRunAS.

Si vous n'activez pas SAFRunAs pour les demandes FastCGI, les sockets TCP ne sont pas requis.

Si vous envisagez d'utiliser l'authentification et l'autorisation SAF, examinez l'exemple suivant. Il s'agit du scénario le plus courant pour les utilisateurs et les groupes SAF. Il respecte les exigences de l'accès 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 
# Codez "Require valid-user" si vous voulez qu'un utilisateur
# SAF valide puisse accéder à la ressource.
Require valid-user
#
 Vous pouvez également fournir la liste des utilisateurs SAF spécifiques
# pouvant accéder à la ressource.
# Require saf-user USER84 USER85
#
# Vous pouvez également fournir la liste des groupes SAF spécifiques
# dont les membres peuvent accéder à la ressource.
# Require saf-group WASGRP1 WASGRP2
</Location>
Si vous souhaitez utiliser un fichier SAF pour l'authentification mais un groupe non SAF pour l'autorisation, examinez l'exemple suivant. Dans cet exemple, les utilisateurs sont authentifiés via SAF mais autorisés via un mécanisme différent.
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 avec fichier de groupe hfs"
AuthBasicProvider saf
AuthGroupFile /www/config/foo.grp
# Codez "Require file-group" et la liste des groupes si vous voulez
# qu'un utilisateur de l'un quelconque des groupes du fichier de groupe spécifié soit en mesure
# d'accéder à la ressource.
# Remarque : n'importe quel module d'autorisation, avec sa configuration standard, peut être utilisé ici.
Require group admin1 admin2
</Location>
Si vous souhaitez autoriser l'accès à un utilisateur déjà autorisé par SAF ou par un fichier de groupe, examinez l'exemple suivant.
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 avec groupes SAF et fichier de groupe hfs"
AuthBasicProvider saf
AuthGroupFile /www/groupfiles/foo.grp
Require saf-group WASGRP
Require saf-group ADMINS
AuthzGroupFileAuthoritative Off
AuthSAFAuthoritative Off
</Location>
Si vous souhaitez qu'une demande s'exécute avec les privilèges SAF associés au nom d'utilisateur authentifié, examinez l'exemple suivant.
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>
Si vous envisagez de prendre en charge la modification des mots de passe arrivés à expiration, examinez l'exemple suivant.
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 "Prise en charge des mots de passe arrivés à expiration"
Require valid-user
AuthBasicProvider saf
AuthSAFEXpiration "EXPIRED PW: oldpw/newpw/newpw"
AuthSAFReEnter "Confirmer le nouveau mot de passe :"
</Location>

Si vous souhaitez demander un certificat client avant qu'un utilisateur ne puisse accéder à une ressource, utilisez la directive mod_ibm_ssl. La directive mod_authnz_saf n'est pas nécessaire pour cette configuration. Pour plus d'informations, consultez la documentation des directives SSLClientAuth et SSLClientAuthRequire.

Si vous envisagez d'utiliser un certificat client pour déterminer l'utilisateur pour lequel le traitement de la requête est réalisé, examinez l'exemple suivant. Si l'utilisateur ne dispose pas d'un certificat valide, l'accès est refusé.
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 vous souhaitez qu'une demande s'exécute avec les privilèges SAF associés à un certificat client, mais souhaitez également demander l'authentification par nom d'utilisateur et par mot de passe si le certificat client n'est pas mappé sur un utilisateur SAF, examinez l'exemple suivant. Si l'utilisateur fournit un certificat que SAF peut mapper sur un ID utilisateur, ce dernier doit également transmettre les éventuelles directives Require.
<Location /certificate_or_basic>
AuthName "SAF RunAs certif"
AuthType basic
Require saf-user USER84 USER103
AuthBasicProvider saf
SAFRunAs %%CERTIF%%
</Location>
Si vous souhaitez qu'une demande s'exécute via les privilèges SAF associés à un ID de substitution, examinez l'exemple suivant.
<Location /runas_public>
SAFRunAs PUBLIC
# Cette commande peut être combinée avec l'authentification/autorisation SAF ou non-SAF
</Location>
Rubrique de référence    

Dispositions pour les centres de documentation | Commentaires

Dernière mise à jour : October 09, 2014 04:36 AM EDT
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=phil&product=ihs-dist&topic=rihs_safdirs
Nom du fichier : rihs_safdirs.html