IBM HTTP Server for WebSphere Application Server, V6.1
             操作系统: z/OS

             使目录和搜索结果个性化
本主题仅适用于 z/OS 操作系统。

SAF 伪指令

这些配置参数控制 IBM HTTP Server 的系统授权工具(SAF)功能部件。请使用 SAF 伪指令为 IBM HTTP Server 提供用户认证。

AuthSAF 伪指令

AuthSAF 伪指令设置是否使用操作系统的 SAF 来执行基本认证。

语法 AuthSaf on | off
缺省值 off
上下文 directory, .htaccess
模块 mod_auth_saf
on 或 off

将 AuthSAF 伪指令设置为 on 以使用以下任一 SAF 工具:SAFRunAs、SAFRequire 或 SAF 认证。当您设置 AuthSAF on 时,还应该设置 AuthType Basic

必须对 valid-user 或用户列表设置 Require 伪指令。

示例:valid-user
Require valid-user
在使用 valid-user 的情况下,如果标识和密码不属于在 SAF 中注册并且具有 OMVS 段的用户,那么服务器将不允许访问。
示例:用户列表
Require user SYSADM USER152 BABAR 

在使用用户列表的情况下,如果标识未经过认证并且不是其中一个列示的用户,那么服务器将不允许访问。不管用户在浏览器中如何输入用户名,您都必须在 httpd.conf 文件中使用大写字母对用户名进行编码。

(可选)可以对组添加 Require 伪指令。

示例:组列表
Require group SYS1 WASUSER

在本示例中,组 SYS1 和 WASUSER 都必须在 SAF 中定义,并且必须具有 OMVS 段。如果标识和密码不属于在 SAF 和其中一个列示的组中注册的用户,那么访问将被拒绝。

AuthSAFAuthoritative 伪指令

AuthSAFAuthoritative 伪指令设置是否将授权和认证传递至较低级别的模块。

语法 AuthSAFAuthoritative on | off
缺省值 on
上下文 directory, .htaccess
模块 mod_auth_saf
on 或 off

将 AuthSAFAuthoritative 伪指令设置为 off 以允许在没有与提供的用户标识相匹配的用户标识或规则的情况下,传递认证和授权到较低级别的模块(如 modules.c 文件中所定义的那样)。如果指定了用户标识或规则,那么像平常一样检查密码和访问权,并且会由于失败而导致 Authentication Required 应答。

如果用户标识出现在多个模块的数据库中,或者有效的 Require 伪指令适用于多个模块,那么第一个模块将验证凭证,此时,不管 AuthSAFAuthoritative 设置是什么,都不会传递访问权。

缺省情况下,不会传递控制权,而且将由于用户标识或规则未知而导致 Authentication Required 应答。因此,即使不对该伪指令进行任何设置,也能够保持系统安全并强制符合 NCSA 的行为。

AuthSAFExpiration 伪指令

AuthSAFExpiration 伪指令设置在浏览器的提示中显示的值。

语法 AuthSAFExpiration short_phrase
缺省值 off
上下文 directory, .htaccess
模块 mod_auth_saf
offshort_phrase

将 AuthSAFExpiration 伪指令设置为短语可以允许 IBM HTTP Server 在用户的 SAF 密码过期时提示更新该密码。如果用户输入有效标识和 SAF 密码,但该密码已过期,那么服务器将返回 Authentication Required 应答并显示特别提示,以允许用户更新过期密码。该提示包含域(来自 AuthName 伪指令的值),后跟来自 AuthSAFExpiration 伪指令的 short_phrase 值。

例如,考虑以下配置:
<Location /js>
AuthType Basic
AuthName "zwasa051_SAF"
AuthSAF on
Require valid-user
Require group SYS1 WASUSER
AuthSAFExpiration "EXPIRED! oldpw/newpw/newpw"
</Location>

如果用户尝试访问 URL 以 /js 开头的文件,那么服务器将提示用户输入 SAF 标识和密码。浏览器将显示一个包含该域的提示。域是来自 AuthName 伪指令的值,在本示例中为 zwasa051_SAF

当用户提供有效标识和密码时,如果密码已过期,那么服务器将重复提示,但这次是值 zwasa051_SAF EXPIRED! oldpw/newpw/newpw。不管提示是什么,用户都必须重新输入已过期的密码,后加斜杠,并输入新密码,后加另一斜杠,然后再次输入新密码。

如果密码成功更新,那么服务器将发送另一 Authentication Required 应答,它带有完全不同的特别提示。为了强制浏览器理解应该对哪个密码进行高速缓存,这一最后交互操作是必需的。此次的提示将包含域,后加提示 Re-enter new password。在本示例中,它将是 zwasa051_SAF Re-enter new password

AuthSAFReEnter 伪指令

在成功更改密码之后,AuthSAFReEnter 伪指令设置追加到域的值。

语法 AuthSAFReEnter short_phrase
缺省值 Re-enter new password
上下文 directory, .htaccess
模块 mod_auth_saf
offshort_phrase

将 AuthSAFReEnter 伪指令显式设置为“Re-enter new password”之外的短语可以允许管理员在过期密码已成功更新之后显示替代消息。如果 AuthSAFExpiration 已设置为 off,那么此伪指令无效。

例如,考虑以下配置:
<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>

在本示例中,在过期密码成功更新之后,服务器将发送另一 Authentication Required 应答,它带有来自 AuthSAFReEnter 伪指令的值。为了强制浏览器理解应该对哪个密码进行高速缓存,这一最后交互操作是必需的。此次的提示将包含域,后加一个特殊短语。在本示例中,它将是 zwasa051_SAF Enter new password one more time

SAFRequire 伪指令

SAFRequire 伪指令确定 mod_auth_saf 是否将处理 Require 伪指令。

语法 SAFRequire on | off
缺省值 off
上下文 directory, .htaccess
模块 mod_auth_saf
on 或 off

将 SAFRequire 伪指令设置为 on 允许 mod_auth_saf 处理 Require 伪指令中的用户名和组名。如果使用在 SAF 中定义的组,那么必须将该伪指令设置为 on,但是,如果使用在其他位置定义的组,那么应该将该伪指令设置为 off 或者忽略该伪指令。

例如,如果将 AuthGroupFile 伪指令(而不是 SAFRequire 伪指令)编码为 on,那么 mod_auth_saf 可以处理 Require 伪指令。不要同时对两者进行编码。

如果将 SAFRequire 设置为 on,那么将以大写字母列示所有用户名,因为这是 SAF 保存用户名的方式。在浏览器中,用户可以用任意大小写的字母来输入用户名和密码。如果不使用 mod_auth_saf 来处理 Require 伪指令,那么可能需要根据用户在浏览器中输入用户名时使用大小写字母的各种情况,来对每个用户名进行编码。

SAFRunAs 伪指令

SAFRunAs 伪指令可以设置将用来处理请求的 SAF 用户标识。

语法 SAFRunAs
缺省值 off
上下文 directory, .htaccess
模块 mod_auth_saf
off | %%CLIENT%% | %%CERTIF%% | %%CERTIF_REQ%% | <surrogate ID>

Off:服务器将以 Web 服务器用户标识运行请求。

%%CLIENT%%:服务器将以授权请求头中提供的标识来运行请求。通常,用户在浏览器上的弹出窗口中提供标识和密码,并且浏览器将创建头。

%%CERTIF%%:服务器将以 SAF 中与 SSL 客户机证书相关联的标识来运行请求。如果没有 SSL 证书或者该 SSL 证书尚未与 SAF 中的标识相关联,那么处理将继续,如同 %%CLIENT%% 已被编码。

%%CERTIF_REQ%%:服务器将以 SAF 中与 SSL 客户机证书相关联的标识来运行请求。如果没有 SSL 证书或者该 SSL 证书尚未与 SAF 中的标识相关联,那么服务器将不允许访问。

<surrogate ID>:服务器将以与所指定 SAF 替代标识相关联的标识来运行请求。

对于 %%CERTIF%%%%CERTIF_REQ%% 和所有其他形式的 SAF 认证或授权,您必须对 Require 伪指令进行编码,然后将 AuthSAF 伪指令设置为 on

IBM HTTP Server 可通过 TCP 套接字或 Unix 套接字来与 FastCGI 应用程序通信。但是,当将 SAFRunAs 用于 FastCGI 请求时,必须将 TCP 套接字用于与应用程序进行的通信。为 FastCGI 应用程序创建的 Unix 套接字仅可通过 Web 服务器用户标识访问。使用 SAFRunAs 伪指令控制的备用用户标识不具有访问 Unix 套接字的许可权,因此请求将失败。

要将 FastCGI 配置为使用 TCP 套接字,请使用带有 -port 选项的 FastCGIServer 伪指令或使用 FastCGIExternalServer 伪指令来对 mod_fastcgi 模块定义 FastCGI 应用程序。不随 FastCGIServer 或 FastCGIExternalServer 配置的动态 FastCGI 服务器不能与 SAFRunAS 配合使用。

如果没有为 FastCGI 请求启用 SAFRunAs,那么 TCP 套接字不是必需的。

示例

如果要使用基本 SAF 认证,请考虑以下容器定义。
<Location /x1>
AuthType Basic
AuthName x1  
Require valid-user
SAFRequire On  
AuthSAF on
</Location>
如果要将访问权限制为简短用户列表,请考虑以下容器定义。
注: 使用 Require user 伪指令时,必须使用 AuthAuthoritative 伪指令,并且名称列表必须仅包含大写字母。
<Location /x2>
	AuthType Basic  
	AuthName x2  
	Require user ALICE123 BOB456 CAROL789 
	SAFRequire On  
	AuthSAF on
	<IfModule mod_auth.c>
# If mod_auth is loaded, ensure that it allows other 
# modules to authenticate in case mod_auth runs first.
	AuthAthoritative off
	</IfModule>
</Location>
如果要将访问权限制为某一在 SAF 中定义的组,请考虑以下容器定义。
<Location /x3>
AuthType Basic
AuthName x3  
Require group WASUSER  
SAFRequire on  
AuthSAF on
</Location>
如果要将 SAF 认证与 AuthUserFile 或 AuthGroupFile 伪指令一起使用,请考虑以下容器定义。
注: 如果将 SAFRequire 伪指令的值设置为 on,那么您不能使用 AuthUserFile 或 AuthGroupFile 伪指令。必须用 Require user 伪指令或在 SAF 组中设置该用户列表。如果 SAFRequire 伪指令已设置为 off,那么您可以使用通过 AuthUserFile 或 AuthGroupFile 伪指令定义的用户列表或组,但对于 IBM HTTP Server 而言,名称匹配区分大小写。
<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>



相关任务
在 IBM HTTP Server(z/OS 系统)上使用 SAF 来认证
相关参考
FastCGI 伪指令
参考主题    

使用条款 | 反馈

最近更新日期: Mar 31, 2008 3:11:26 AM EDT
http://publib.boulder.ibm.com/infocenter/wasinfo/v6r1/index.jsp?topic=/com.ibm.websphere.ihs.doc/info/ihs/ihs/rihs_safdirs.html