以下主题介绍了在设置访问控制时可以选择的各种选项。对于 Administration Server,头两行为默认设置,且不能编辑。
本节包含以下主题:
您可以指定当请求符合访问控制规则时服务器要执行的操作。
Allow 意味着用户或系统可以访问请求的资源
Deny 意味着用户或系统不能访问该资源
服务器将检查整个控制访问条目 (Access Control Entries, ACE) 列表以确定访问权限。例如,第一个 ACE 通常为拒绝每个用户。如果将第一个 ACE 设置为 "Continue",服务器将检查列表中的第二个 ACE。如果该 ACE 匹配,将使用下一个 ACE。如果未选择 "Continue",将拒绝任何用户访问该资源。服务器将继续检查列表,直至找到某个不匹配的 ACE,或匹配但不会继续执行的 ACE。最后一个匹配的 ACE 将确定允许访问还是拒绝访问。
使用用户和组验证时,将提示用户提供用户名和密码,然后才能访问在访问控制规则中指定的资源。
Proxy Server 将检查在 LDAP 服务器(例如 Sun Java System Directory Server)或基于内部文件的验证数据库中存储的用户和组的列表。
可以允许或拒绝数据库中每个用户的访问,也可以使用通配符模式允许或拒绝特定用户的访问,还可以从用户和组的列表中选择允许或拒绝其访问的用户。
在用户界面内 "Access Control Rules" 页面的 "Users/Groups" 中,将显示以下元素。
Anyone (No Authentication) 是默认设置,意味着任何用户都可以访问该资源而不必提供用户名或密码。但是,根据其他设置(例如主机名或 IP 地址)的不同,该用户也可能被拒绝访问。对于 Administration Server,此设置意味着您为分布式管理指定的管理员组中的任何用户都可以访问各个页面。
Authenticated People Only
All In The Authentication Database 将匹配在数据库中具有用户条目的任何用户。
Only The following People 将指定要匹配的用户和组。您可以用逗号分隔各个条目以分别列出用户或用户组,也可以使用通配符模式,还可以从数据库中存储的用户和组的列表中选择。Group 将匹配您指定的组中的所有用户。User 将匹配您指定的单个用户。对于 Administration Server,用户还必须位于您为分布式管理指定的管理员组中。
Prompt For Authentication 将指定在验证对话框中显示的消息文本。您可以使用此文本来说明用户需要键入的内容。基于不同的操作系统,用户大约会看到该提示的前 40 个字符。大多数浏览器会缓存用户名和密码,并将它们与提示文本关联。如果用户访问的服务器文件和目录区域具有相同的提示,则该用户不需要重新键入用户名和密码。反过来,如果要强制用户针对不同区域再次进行验证,则必须为该资源的 ACL 更改提示。
Authentication Methods 指定服务器用于从客户机获取验证信息的方法。 Administration Server 仅提供了基本验证方法。Server Manager 提供了以下验证方法:
默认 将使用在 obj.conf 文件中指定的默认方法;如果 obj.conf 中没有设置,则使用基本验证。如果选中 "Default",ACL 规则将不会在 ACL 文件中指定方法。如果选择 "Default",您只需编辑 obj.conf 文件中的一行文本即可方便地更改所有 ACL 的方法。
基本使用 HTTP 方法从客户机获取验证信息。仅当为服务器启用了加密(启用 SSL)后才对用户名和密码加密。否则,用户名和密码将以明文形式发送,在受到拦截时可被读取。
SSL 使用客户机证书验证用户。要使用此方法,必须为服务器启用 SSL。如果启用了加密,可以组合使用基本方法和 SSL 方法。
只能以反向代理模式而不是正向代理模式启用安全性。
摘要使用这样一种验证机制:通过该机制,浏览器可以基于用户名和密码来验证用户,而不必以明文形式发送用户名和密码。浏览器使用用户的密码和 Proxy Server 提供的某些信息,利用 MD5 算法来创建摘要值。服务器端也可以计算此摘要值(使用摘要验证插件)并与客户机提供的摘要值进行比较。
"Prompt For Authentication" 是摘要验证中的一个必需参数。请将此值更改为与领域相匹配(摘要文件所要求的)。例如,如果在摘要文件中,您已经将所有用户配置为位于领域 test 中,则 "Prompt For Authentication" 字段中应当包含文本 test。
Authentication Database 指定服务器用于验证用户的数据库。此选项仅在 Server Manager 中可用。如果选择 "Default",服务器将查找配置为默认的目录服务中的用户和组。如果要将各个 ACL 配置为使用不同的数据库,请选 "Other",然后指定数据库。必须在 server-root/userdb/dbswitch.conf 中指定非默认数据库和 LDAP 目录。如果为某个自定义数据库使用访问控制 API,请选择 "Other",然后键入数据库名称。
您可以基于请求来自哪台计算机限制对 Administration Server 的访问。
在用户界面内 "Access Control Rules For" 页面的 "From Host" 中,将显示以下元素:
"Anyplace" 允许对所有用户和系统进行访问
"Only From" 仅允许特定主机名或 IP 地址进行访问
如果选择 "Only From" 选项,请在 "Host Names" 或 "IP Addresses" 字段中键入通配符模式或逗号分隔的列表。按主机名进行限制要比按 IP 地址进行限制更为灵活。如果用户的 IP 地址发生更改,您也不需要更新此列表。但是,按 IP 地址进行限制更可靠。如果某个连接的客户机的 DNS 查找失败,将无法使用主机名限制。
您只能使用通配符模式的 * 通配符表示法来匹配计算机的主机名或 IP 地址。例如,要允许或拒绝特定域中的所有计算机,您可以输入匹配该域中所有主机的通配符模式,例如 *.example.com。您可以为访问 Administration Server 的超级用户设置不同的主机名和 IP 地址。
对于主机名,* 必须替换名称完整的一部分,即,*.example.com 有效,但 *users.example.com 无效。当 * 出现在主机名中时,它必须是最左侧的字符。例如,*.example.com 有效,但 users.*.com 无效。
对于 IP 地址,* 必须替换地址中的整个字节,例如,198.95.251.* 有效,但 198.95.251.3* 无效。当 * 出现在 IP 地址中时,它必须是最右侧的字符。例如,198.* 有效,但 198.*.251.30 无效。
对程序的访问只能由 Administration Server 来限制。通过限制对程序的访问,可以仅允许指定的用户查看 Server Manager 页面,并确定这些用户是否能够配置该服务器。例如,您可能允许某些管理员配置 Administration Server 的 "Users and Groups" 部分,但是拒绝他们访问 "Global Settings" 部分。
您可以配置不同的用户访问不同的功能域。为某个用户授予了对若干选定功能域的访问权限后,该用户登录后只能访问这些功能域的 Administration Server 页面。
在用户界面内 "Access Control Rules For" 页面的 "Programs" 中,将显示以下元素:
"All Programs" 允许或拒绝访问所有程序。默认情况下,管理员可以访问某个服务器的所有程序。
"Only The Following" 用于指定用户可以访问的程序。
Program Groups 反映了 Administration Server 的各个选项卡(例如 "Preferences" 和 "Global Settings"),代表了对这些页面的访问。当管理员访问 Administration Server 时,服务器将使用他们的用户名、主机和 IP 地址来确定他们可以查看哪些页面。
"Program Items" 用于通过在字段中键入页面名称来控制对某程序内特定页面的访问。
服务器实例的访问权限只能由 Server Manager 设置。访问权限限制了对您服务器上的文件和目录的访问。除了允许或拒绝所有访问权限外,您还可以指定一个规则以允许或拒绝部分访问权限。例如,您可以授予用户对您文件的只读访问权限,这样他们可以查看信息,但不能更改文件。
在用户界面内 "Access Control Rules For" 页面的 "Rights" 中,将显示以下元素。
您可以为 ACL 输入自定义表达式。仅当您熟悉 ACL 文件的语法和结构时,才能选择此选项。有若干功能只有通过编辑 ACL 文件或创建自定义表达式才能实现。例如,您可以基于一天中的某个时间和/或一周中的某一天来限制对服务器的访问。
以下自定义表达式显示了如何基于一天中的某个时间和一周中的某一天来限制访问。本例假设您的 LDAP 目录中有两个组。"Regular" 组可以在星期一到星期五的 8:00 am 到 5:00 pm 进行访问。"Critical" 组在任何时间均可进行访问。
allow (read){(group=regular and dayofweek=”mon,tue,wed,thu,fri”); (group=regular and (timeofday>=0800 and timeofday<=1700));(group=critical)}
有关有效语法和 ACL 文件的更多信息,请参见第 18 章。
如果在 "Access Control Rules For" 页面中取消选中标记为 "Access Control Is On" 的选项,将会收到提示,询问您是否要删除 ACL 中的记录。单击 "OK" 后,便会从 ACL 文件中删除该资源的 ACL 条目。
如果要取消激活 ACL,请在文件 generated-proxy- serverid.acl 中每个 ACL 行的开头添加 # 符号,使 ACL 行变为注释。
在 Administration Server 中,您可以为特定服务器实例创建并启用访问控制,而为其他服务器禁用访问控制(默认设置为禁用)。例如,您可以通过 Administration Server 页面拒绝对 Server Manager 的任何访问。对于默认情况下启用了分布式管理且禁用了访问控制的任何其他服务器,管理员仍可以访问和配置这些服务器,但不能配置 Administration Server。
Proxy Server 提供了访问被拒绝时显示的默认消息,您可以根据需要自定义响应。也可以为每个访问控制对象创建不同的消息。
默认情况下,对于 Administration Server,用户会收到 server-root/httpacl/admin-denymsg.html 中的 "Permission Denied" 消息。