[z/OS]

SAF-Anweisungen

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.

Anweisung AuthSAFAuthoritative

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.

Anweisung "AuthSAFExpiration"

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.

Sehen Sie sich beispielsweise die folgende Konfiguration an:
<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.

Anweisung AuthSAFExpiredRedirect

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

Anweisung AuthSAFReEnter

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.

Sehen Sie sich beispielsweise die folgende Konfiguration an:
<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.

Anweisung SAFRunAs

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.

[8.5.5.2 oder höher] %%CERTIF%% /prefix: Der Server ändert die Threadidentität in die für die SSL-Clientauthentifizierung angegebene Identität für URLs unter /prefix.
Fehler vermeiden Fehler vermeiden:
  • Diese Syntax ist nur gültig im globalen und im <virtualHost>-Kontext.
  • Als zweites Argument sind keine anderen Werte zulässig.
  • Der Server wird die Identität während einer Anforderung nicht zweimal wechseln, falls SAFRunAS auch mit der Ein-Argument-Version innerhalb des <Location>- oder <Directory>-Kontextes konfiguriert ist.
  • Dieses Feature kann zusammen mit "AuthBasicProvider saf" verwendet werden.
gotcha
[8.5.5.2 oder höher] %%CERTIF%% / ? ?: Der Server wechselt am Anfang in das Ausgangsverzeichnis des Benutzers (es wird vorausgesetzt, dass mod_userdir konfiguriert ist).
Fehler vermeiden Fehler vermeiden:
  • Diese Syntax ist nur gültig im globalen und im <virtualHost>-Kontext.
  • Als zweites Argument sind keine anderen Werte zulässig.
  • Der Server wird die Identität während einer Anforderung nicht zweimal wechseln, falls SAFRunAS auch mit der Ein-Argument-Version innerhalb des <Location>- oder <Directory>-Kontextes konfiguriert ist.
  • Dieses Feature kann zusammen mit "AuthBasicProvider saf" verwendet werden.
gotcha
[8.5.5.2 oder höher] surrogate-username /prefix: Der Server ändert die Threadidentität in eine bestimmte Ersatzbenutzer-ID für URLs unter /prefix.
Fehler vermeiden Fehler vermeiden:
  • Diese Syntax ist nur gültig im globalen und im <virtualHost>-Kontext.
  • Als zweites Argument sind keine anderen Werte zulässig.
  • Der Server wird die Identität während einer Anforderung nicht zweimal wechseln, falls SAFRunAS auch mit der Ein-Argument-Version innerhalb des <Location>- oder <Directory>-Kontextes konfiguriert ist.
  • Dieses Feature kann zusammen mit "AuthBasicProvider saf" verwendet werden.
gotcha

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

Wenn Sie SAF für Authentifizierung und Berechtigung verwenden möchten, sehen Sie sich das folgende Beispiel an. Dieses Beispiel zeigt das gängigste Szenario für SAF-Benutzer und -Gruppen und entspricht den Voraussetzungen für Webzugriffe.
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>
Wenn Sie eine SAF-Datei für die Authentifizierung, aber eine Nicht-SAF-Gruppendatei für die Berechtigung verwenden möchten, sehen Sie sich folgende Beispiel an. In diesem Beispiel werden Benutzer mit SAF authentifiziert, aber mit einem anderen Mechanismus berechtigt.
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>
Wenn Sie einem Benutzer den Zugriff gewähren möchten, der über SAF oder eine Gruppendatei berechtigt ist, sehen Sie sich das folgende Beispiel an:
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>
Wenn eine Anforderung mit den SAF-Berechtigungen ausgeführt werden soll, die dem authentifizierten Benutzernamen zugeordnet sind, sehen Sie sich das folgende Beispiel an:
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>
Wenn Sie die Änderung abgelaufener SAF-Kennwörter unterstützen möchten, sehen Sie sich das folgende Beispiel an:
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".

Wenn Sie ein Clientzertifikat verwenden möchten, um den Benutzer zu bestimmen, für den die Anforderungsverarbeitung durchgeführt wird, sehen Sie sich das folgende Beispiel an. Sollte der Benutzer kein gültiges Zertifikat haben, wird der Zugriff verweigert.
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>
Wenn eine Anforderung mit den SAF-Berechtigungen ausgeführt werden soll, die einem Clientzertifikat zugeordnet sind, aber eine Authentifizierung mit Benutzernamen und Kennwort durchgeführt werden soll, falls das Clientzertifikat keinem SAF-Benutzer zugeordnet ist, sehen Sie sich das folgende Beispiel an. Wenn der Benutzer ein Zertifikat bereitstellt, das SAF einer Benutzer-ID zuordnen kann, muss die Benutzer-ID auch alle Require-Anweisungen übergeben.
<Location /certificate_or_basic>
AuthName "SAF RunAs certif"
AuthType basic  
Require saf-user USER84 USER103
AuthBasicProvider saf
SAFRunAs %%CERTIF%%
</Location>
Wenn eine Anforderung mit den SAF-Berechtigungen ausgeführt werden soll, die einer Ersatz-ID zugeordnet sind, sehen Sie sich das folgende Beispiel an:
<Location /runas_public>
SAFRunAs PUBLIC
# Kann mit SAF- und Nicht-SAF-Authentifizierung/-Berechtigung kombiniert werden
</Location>
Referenzartikel    

Nutzungsbedingungen für Information Center | Feedback

Letzte Aktualisierung: October 08, 2014 06:53 AM EDT
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=phil&product=ihs-dist&topic=rihs_safdirs
Dateiname: rihs_safdirs.html