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.
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.
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.
<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.
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 |
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.
<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.
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.
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>
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>
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>
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>
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.
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>
<Location /certificate_or_basic>
AuthName "SAF RunAs certif"
AuthType basic
Require saf-user USER84 USER103
AuthBasicProvider saf
SAFRunAs %%CERTIF%%
</Location>
<Location /runas_public>
SAFRunAs PUBLIC
# Cette commande peut être combinée avec l'authentification/autorisation SAF ou non-SAF
</Location>