Diese Konfigurationsparameter steuern das SAF-Feature (System Authorization Facility) für IBM HTTP Server. Verwenden Sie die SAF-Anweisungen, um Benutzerauthentifizierung für IBM HTTP Server bereitzustellen.
Mit der Anweisung "AuthSAFAuthoritative" wird festgelegt, ob die Berechtigung an untergeordnete Module weitergegeben werden kann.
Anweisung | Beschreibung |
---|---|
Syntax | AuthSAFAuthoritative on | off |
Standardeinstellung | on |
Kontext | Verzeichnis, .htaccess |
Modul | mod_authnz_saf |
Werte | on oder off |
Wenn Sie die Anweisung "AuthSAFAuthoritative" auf off setzen, kann die Berechtigungsprüfung an untergeordnete Module (wie sie in den Dateien vom Typ "modules.c" definiert sind) übergeben werden, wenn keine Benutzer-ID oder Regel der angegebenen Benutzer-ID entspricht. Wenn eine Benutzer-ID oder Regel angegeben ist, werden die normalen Kennwort- und Zugriffsüberprüfungen durchgeführt. Bei einem Fehler wird die Antwort Berechtigung erforderlich ausgegeben.
Wenn eine Benutzer-ID in der Datenbank mehrerer Module angezeigt wird oder eine gültige Require-Anweisung für mehr als ein Modul verwendet wird, überprüft das erste Modul die Berechtigungsnachweise, und der Zugriff wird unabhängig von der Einstellung der Anweisung AuthSAFAuthoritative nicht weitergegeben.
Standardmäßig wird die Steuerung nicht weitergegeben. Kann eine Benutzer-ID oder Regel nicht identifiziert werden, wird die Antwort Berechtigung erforderlich ausgegeben. Das System ist geschützt und führt zu einem mit NCSA kompatiblen Verhalten, wenn diese Anweisung auf "off" gesetzt ist.
Mit der Anweisung "AuthSAFExpiration" wird der in der Eingabeaufforderung des Browsers angezeigte Wert festgelegt. Der Server sendet den für die Anweisung "AuthName" angegebenen Wert und diese Phrase in einem HTTP-Antwortheader, und der Browser zeigt sie dann dem Benutzer in einem Fenster zur Aufforderung zur Kennworteingabe an. Die Kurzphrase unterliegt denselben Zeicheneinschränkungen wie der für die Anweisung "AuthName" angegebene Wert. Wenn also ein Sonderzeichen im Fenster zur Aufforderung zur Kennworteingabe angezeigt werden soll, muss der Server das Sonderzeichen aus der EBCDIC-CharsetSourceEnc-Codepage in die ASCII-CharsetDefault-Codepage konvertieren. Wenn Sie den Kleinbuchstaben 'a' mit Umlaut (ä) anzeigen möchten und die Datei "httpd.conf" die EBCDIC-Codepage "CharsetSourceEnc IBM-1141" und die ASCII-Codepage "CharsetDefault ISO08859-1" für Deutsch enthält, müssen Sie die Phrase mit dem Hexadezimalwert '43' codieren, der in das richtige ASCII-Zeichen konvertiert wird.
Anweisung | Beschreibung |
---|---|
Syntax | AuthSAFExpiration kurze_Phrase |
Standardeinstellung | off |
Kontext | Verzeichnis, .htaccess |
Modul | mod_authnz_saf |
Werte | off oder kurze_Phrase |
Wenn Sie für die Anweisung "AuthSAFExpiration" eine Phrase festlegen, kann IBM® HTTP Server den Benutzer auffordern, sein SAF-Kennwort zu aktualisieren, wenn dieses abgelaufen ist. Wenn der Benutzer eine gültige ID und ein SAF-Kennwort eingibt, das Kennwort jedoch abgelaufen ist, gibt der Server die Antwort Berechtigung erforderlich mit einer besonderen Eingabeaufforderung aus, in der der Benutzer das abgelaufene Kennwort durch ein neues ersetzen kann. Die Eingabeaufforderung enthält den Namen des Realm (den Wert der Anweisung AuthName) und die kurze_Wortfolge aus der Anweisung AuthSAFExpiration.
<Location /js>
AuthType basic
AuthName "zwasa051_SAF"
AuthBasicProvider saf
Require valid-user
Require saf-group SYS1 WASUSER
AuthSAFExpiration "EXPIRED! oldpw/newpw/newpw"
</Location>
Wenn der Benutzer auf eine Datei zugreifen möchte, deren URL mit /js beginnt, wird er vom Server zur Eingabe einer SAF-ID und dem entsprechenden Kennwort aufgefordert. Im Browser wird eine Eingabeaufforderung mit dem Realm angezeigt. Der Realm ist der Wert aus der Anweisung AuthName. In diesem Beispiel ist der Wert zwasa051_SAF.
Wenn der Benutzer eine gültige ID und ein Kennwort eingibt, das Kennwort jedoch abgelaufen ist, zeigt der Server die Eingabeaufforderung erneut an, dieses Mal jedoch mit dem Wert zwasa051_SAF EXPIRED! oldpw/newpw/newpw. Der Benutzer muss nun das abgelaufene Kennwort, das neue Kennwort und dann erneut das neue Kennwort, jeweils getrennt durch Schrägstriche, eingeben.
Wenn die Aktualisierung des Kennworts erfolgreich war, gibt der Server erneut die Antwort Berechtigung erforderlich aus, dieses Mal jedoch mit einer besonderen Eingabeaufforderung. Diese letzte Interaktion ist erforderlich, damit das richtige Kennwort im Cache des Browsers gespeichert wird. Die Eingabeaufforderung, die jetzt angezeigt wird, enthält den Realm und die Aufforderung zur erneuten Eingabe des neuen Kennworts. In diesem Beispiel würde Folgendes angezeigt: zwasa051_SAF Re-enter new password.
Die Anweisung gibt einen URL an, an den eine Anforderung umgeleitet werden soll, falls Ihr Kennwort abgelaufen ist, wenn Sie mod_authnz_saf zur Authentifizierung unter z/OS verwenden.
Das ist eine Alternative zur Verwendung von "AuthSAFExpiration".
Anweisung | Beschreibung |
---|---|
Syntax | AuthSAFExpiredRedirect URL |
Standardeinstellung | off |
Kontext | Verzeichnis, .htaccess |
Modul | mod_authnz_saf |
Werte | off oder URL |
Mit der Anweisung AuthSAFReEnter wird der Wert, der an den Namen des Realm nach erfolgreicher Kennwortänderung angehängt wird, definiert. Informationen zum Codieren von Sonderzeichen finden Sie in der Beschreibung der Anweisung "BAuthSAFExpiration".
Anweisung | Beschreibung |
---|---|
Syntax | AuthSAFReEnter kurze_Phrase |
Standardeinstellung | Re-enter new password |
Kontext | Verzeichnis, .htaccess |
Modul | mod_authnz_saf |
Werte | off oder kurze_Phrase |
Der Administrator kann die Anweisung AuthSAFReEnter auch so definieren, dass anstelle der Wortfolge "Re-enter new password" eine andere Nachricht nach der erfolgreichen Änderung des abgelaufenen Kennworts angezeigt wird. Wenn jedoch die Anweisung AuthSAFExpiration auf off gesetzt wurde, ist diese Anweisung wirkungslos.
<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>
In diesem Beispiel sendet der Server nach der erfolgreichen Änderung des abgelaufenen Kennworts eine weitere Antwort Berechtigung erforderlich mit dem Wert aus der Anweisung AuthSAFReEnter. Diese letzte Interaktion ist erforderlich, damit das richtige Kennwort im Cache des Browsers gespeichert wird. Die Eingabeaufforderung, die jetzt angezeigt wird, enthält den Namen des Realm gefolgt von einer besonderen Wortfolge. In diesem Beispiel wird Folgendes angezeigt: zwasa051_SAF Enter new password one more time.
Mit der Anweisung SAFRunAs legen Sie die SAF-Benutzer-ID fest, unter der eine Anforderung bedient wird.
Anweisung | Beschreibung |
---|---|
Syntax | SAFRunAs Wert |
Standardeinstellung | off |
Kontext | Verzeichnis, .htaccess |
Modul | mod_authnz_saf |
Werte | off | %%CLIENT%% | %%CERTIF%% | %%CERTIF_REQ%% | %%CERTIF%% /prefix | %%CERTIF%% / ? ? | surrogate-username
/prefix | <surrogate ID> Off: Der Server führt die Anforderung unter der Web-Server-Benutzer-ID aus. %%CLIENT%%: Der Server führt die Anforderung unter der ID aus, die im Header der Berechtigungsanforderung angegeben ist. Im Allgemeinen gibt der Benutzer die ID und das Kennwort in einem Popup-Fenster im Browser ein, und der Browser erstellt den Header. SAF muss für die Authentifizierung des URL konfiguriert werden. %%CERTIF%%: Der Server führt die Anforderung unter der ID aus, die dem SSL-Clientzertifikat in SAF zugeordnet ist. Wenn es kein SSL-Zertifikat gibt oder dem SSL-Zertifikat keine ID in SAF zugeordnet ist, wird die Verarbeitung so fortgesetzt, als sei %%CLIENT%% codiert. Weder authn noch authz von SAF muss konfiguriert werden. %%CERTIF_REQ%%: Der Server führt die Anforderung unter der ID aus, die dem SSL-Clientzertifikat in SAF zugeordnet ist. Wenn es kein SSL-Zertifikat gibt oder dem SSL-Zertifikat keine ID in SAF zugeordnet ist, lässt der Server keinen Zugriff zu. Weder authn noch authz von SAF muss konfiguriert werden. ![]() ![]()
![]() ![]()
![]() ![]()
<Ersatz-ID>: Der Server führt die Anforderung unter der ID aus, die der angegebenen SAF-Ersatz-ID zugeordnet ist. |
IBM HTTP Server kann mit FastCGI-Anwendungen über TCP-Sockets oder UNIX-Sockets kommunizieren. Wenn jedoch SAFRunAs für FastCGI-Anforderungen verwendet wird, müssen Sie TCP-Sockets für die Kommunikation mit der Anwendung verwenden. UNIX-Sockets werden für FastCGI-Anwendungen erstellt, auf die nur mit der Benutzer-ID des Web-Servers zugegriffen werden kann. Die alternative Benutzer-ID, die über die SAFRunAs-Anweisung gesteuert wird, besitzt keine Zugriffsberechtigung für UNIX-Sockets, daher werden entsprechende Anforderungen fehlschlagen.
Wenn Sie FastCGI für die Verwendung mit TCP-Sockets konfigurieren möchten, definieren Sie die FastCGI-Anwendung für das Modul mod_fastcgi mit der FastCGIServer-Anweisung und der Option -port, oder verwenden Sie die Anweisung FastCGIExternalServer. Dynamische FastCGI-Server, die Sie nicht mit den Anweisungen FastCGIServer oder FastCGIExternalServer konfigurieren, können nicht mit SAFRunAS verwendet werden.
Wenn Sie SAFRunAs nicht für FastCGI-Anforderungen a ktivieren, werden keine TCP-Sockets benötigt.
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
# Codieren Sie "Require valid-user", wenn jeder gültige
# SAF-Benutzer auf die Ressource zugreifen darf.
Require valid-user
#
# Alternativ können Sie eine Liste bestimmter SAF-Benutzer
# bereitstellen, die auf die Ressource zugreifen dürfen.
# Require saf-user USER84 USER85
#
# Alternativ können Sie eine Liste bestimmter SAF-Gruppen
# bereitstellen, deren Member auf die Ressource zugreifen dürfen.
# 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 "SAF auth with hfs groupfile"
AuthBasicProvider saf
AuthGroupFile /www/config/foo.grp
# Codieren Sie "Require file-group" und eine Liste mit Gruppen, wenn
# ein Benutzer aus jeder der Gruppen in der angegebenen Gruppendatei
# auf die Ressource zugreifen darf.
# Anmerkung: Es kann jedes Berechtigungsmodul mit seiner Standardkonfiguration verwendet werden.
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 "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>
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 "Support expired PW"
Require valid-user
AuthBasicProvider saf
AuthSAFEXpiration "EXPIRED PW: oldpw/newpw/newpw"
AuthSAFReEnter "New PW again:"
</Location>
Wenn ein Clientzertifikat vorausgesetzt werden soll, damit ein Benutzer auf eine Ressource zugreifen kann, verwenden Sie die Anweisung "mod_ibm_ssl". Die Anweisung "mod_authnz_saf" ist für diese Konfiguration nicht erforderlich. Weitere Informationen finden Sie in der Dokumentation zu den Anweisungen "SSLClientAuth" und "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
# Kann mit SAF- und Nicht-SAF-Authentifizierung/-Berechtigung kombiniert werden
</Location>