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 AuthSAF wird festgelegt, ob die Basisauthentifizierung mit der SAF des Betriebssystems durchgeführt wird.
Syntax | AuthSaf on | off |
Standardwert | off |
Kontext | Verzeichnis, .htaccess |
Modul | mod_auth_saf |
Werte | on oder off |
Setzen Sie die Anweisung AuthSAF auf on, um alle SAF-Funktionen zu verwenden: SAFRunAs, SAFRequire und SAF-Authentifizierung. Wenn Sie den Wert AuthSAF on festlegen, sollten Sie auch AuthType Basic konfigurieren.
Sie müssen eine Require-Anweisung für valid-user oder für eine Liste mit Benutzern festlegen.
Require valid-userIst valid-user angegeben, lässt der Server keinen Zugriff zu, es sei denn die ID und das Kennwort gehören zu einem in SAF registrierten Benutzer mit OMVS-Segment.
Require user SYSADM USER152 BABAR
Ist eine Benutzerliste angegeben, lässt der Server keinen Zugriff zu, es sei denn, die ID wurde authentifiziert und gehört zu einer der in der Liste aufgeführten Benutzern. Sie müssen die Benutzernamen in der Datei httpd.conf in Großbuchstaben codieren, unabhängig davon, wie Benutzer die Benutzernamen im Browser eingeben.
Optional können Sie eine Require-Anweisung für eine Gruppe hinzufügen.
Require group SYS1 WASUSER
In diesem Beispiel müssen die Gruppen SYS1 und WASUSER in SAF definiert sein und OMVS-Segmente haben. Der Zugriff wird erst erteilt, wenn die ID und das Kennwort zu einem in SAF registrierten Benutzer gehören, der zu einer der in der Liste genannten Gruppen gehört.
Mit der Anweisung AuthSAFAuthoritative wird festgelegt, ob die Berechtigung und Authentifizierung an untergeordnete Module weitergegeben werden kann.
Syntax | AuthSAFAuthoritative on | off |
Standardwert | on |
Kontext | Verzeichnis, .htaccess |
Modul | mod_auth_saf |
Werte | on oder off |
Wenn Sie die Anweisung AuthSAFAuthoritative auf off setzen, kann die Authentifizierung und die Berechtigungsprüfung an untergeordnete Module (wie sie in den Dateien modules.c definiert sind) übergegeben 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.
Syntax | AuthSAFExpiration kurze_Wortfolge |
Standardwert | off |
Kontext | Verzeichnis, .htaccess |
Modul | mod_auth_saf |
Werte | off oder kurze_Wortfolge |
Wenn Sie für die Anweisung AuthSAFExpiration eine Wortfolge 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" AuthSAF on Require valid-user Require 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.
Mit der Anweisung AuthSAFReEnter wird der Wert, der an den Namen des Realm nach erfolgreicher Kennwortänderung angehängt wird, definiert.
Syntax | AuthSAFReEnter kurze_Wortfolge |
Standardwert | Re-enter new password |
Kontext | Verzeichnis, .htaccess |
Modul | mod_auth_saf |
Werte | off oder kurze_Wortfolge |
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" AuthSAF on Require 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 SAFRequire legen Sie fest, ob mod_auth_saf die Anweisung Require ausführt.
Syntax | SAFRequire on | off |
Standardwert | off |
Kontext | Verzeichnis, .htaccess |
Modul | mod_auth_saf |
Werte | on oder off |
Wenn Sie die Anweisung SAFRequire auf on setzen, kann das Modul mod_auth_saf Benutzernamen und Gruppennamen in der Anweisung Require verarbeiten. Sie müssen die Anweisung auf on setzen, wenn Sie in SAF definierte Gruppen verwenden. Wenn Sie jedoch Gruppen verwenden, die nicht in SAF definiert wurden, sollten Sie die Anweisung auf off setzen bzw. die Anweisung nicht verwenden.
Das Modul mod_auth_saf kann beispielsweise die Anweisung Require verarbeiten, wenn Sie die Anweisung AuthGroupFile verwenden, statt die Anweisung SAFRequire auf on zu setzen. Codieren Sie nicht beide Anweisungen.
Wenn Sie die Anweisung SAFRequire auf on setzen, werden alle Benutzernamen in Großbuchstaben aufgelistet, da SAF Benutzernamen auf diese Weise verwaltet. Der Benutzer kann den Benutzernamen und das Kennwort ohne Berücksichtigung der Groß-/Kleinschreibung im Browser eingeben. Wenn Sie das Modul mod_auth_saf nicht für die Verarbeitung der Anweisung Require verwenden, müssten Sie alle Benutzernamen in allen Schreibweisen (Groß-/Kleinschreibung) codieren, die der Benutzer möglicherweise im Browser verwenden könnte.
Mit der Anweisung SAFRunAs legen Sie die SAF-Benutzer-ID fest, unter der eine Anforderung bedient wird.
Syntax | SAFRunAs Wert |
Standardwert | off |
Kontext | Verzeichnis, .htaccess |
Modul | mod_auth_saf |
Werte | off | %%CLIENT%% | %%CERTIF%% | %%CERTIF_REQ%% | <Ersatz-ID Off: Der Server führt die Anforderung unter der Webserver-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. %%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. %%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. <Ersatz-ID: Der Server führt die Anforderung unter der ID aus, die der SAF-Ersatz-ID zugeordnet ist. Für %%CERTIF%%, %%CERTIF_REQ%% und alle anderen SAF-Authentifizierungs- und Berechtigungsarten müssen Sie eine Require-Anweisung codieren, und die Anweisung AuthSAF auf on setzen. |
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 Web-Server-Benutzer-ID 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.
<Location /x1> AuthType Basic AuthName x1 Require valid-user SAFRequire On AuthSAF on </Location>
<Location /x2> AuthType Basic AuthName x2 Require user ALICE123 BOB456 CAROL789 SAFRequire On AuthSAF on <IfModule mod_auth.c> # Wenn "mod_auth" geladen ist, müssen Sie sicherstellen, dass anderen Modulen # die Authentifizierung erlaubt wird, falls "mod_auth" zuerst ausgeführt wird. AuthAthoritative off </IfModule> </Location>
<Location /x3> AuthType Basic AuthName x3 Require group WASUSER SAFRequire on AuthSAF on </Location>
<Location /x4> AuthType Basic AuthName x4 Require group wasuser # File x4.grp contains this line: wasuser: alice123 ALICE123 guest3 GUEST3 AuthGroupFile /usr/lpp/config/x4.grp AuthBasicProvider saf </Location>