您可以通过多种安全服务和机制(包括验证、授权和访问控制)来保护驻留在 Web 服务器上的资源。
验证是确认身份的过程。授权表示将受限制资源的访问权限授予某个身份,而访问控制机制则强制执行这些限制。验证和授权可以通过多种安全模型和服务来强制执行。
以下各节介绍为选定的配置配置安全性设置的过程。
验证数据库,也称为 auth-db,是指已知用户的数据库,同时也代表用于对照该数据库验证客户机请求的一种机制。服务器可以同时配置多个 auth-db 条目,这些条目可以属于同一类型,也可以属于不同类型或任何组合。这些 auth-db 用户数据库由 ACL 引擎使用。请注意,服务器还支持另一类型的用户数据库,称为 Java Realm。
LDAP — 用户数据存储在任意 LDAP 目录服务器(包括 Sun Java System Directory Server)中。
文件-用户数据存储在磁盘文件中。对于不提供(或不需要)集中用户管理的开发或小型部署,此 auth-db 尤其方便。文件 auth-db 支持若干不同的文件格式:
keyfile — keyfile 格式用于存储用户(以及每个用户的可选组成员资格)列表。密码存储为单向(不可恢复)散列。这是默认格式。
digestfile — digestfile 与 keyfile 极为类似,其重要区别在于 digestfile 也能支持 HTTP 摘要验证方法。
htaccess — 这只是一种传统格式,不应将其用于新的安装或添加新用户。
PAM — PAM 是受 Sun Java System Web Server 7.0 支持的新 auth-db。PAM auth-db 将验证委派给 Solaris PAM 堆栈,从而允许 Web 服务器系统上的现有 Solaris 用户也可对 Web 服务器进行验证。请注意,仅在 Solaris 9 和 Solaris 10(或更高版本)中支持 PAM auth-db,并且必须以超级用户身份运行 Web 服务器实例。
使用管理服务器可编辑 LDAP 和文件 auth-db 类型的用户帐户、组列表、访问权限、组织单元和其他特定用户和组信息。
用户和组信息以文本格式存储在平面文件中或支持轻量目录访问协议 (Lightweight Directory Access Protocol, LDAP) 的目录服务器(如 Sun Java System Directory Server)中。LDAP 是一种运行在 TCP/IP 上的开放式目录访问协议,它可以扩展到全局规模,甚至上百万个条目。
密钥文件是一个文本文件,其中包含散列格式的用户密码以及该用户所属组的列表。存储在密钥文件中的用户和组仅供 file 领域用来进行授权和验证,而与系统用户和组无关。
添加用户
选择配置。
从配置列表中选择相应的配置。单击“配置”选项卡以获取列表。
单击“访问控制”>“用户”选项卡。
单击“新建”按钮。
添加用户信息。
输入用户 ID 和密码。(可选)输入用户所属的组。用户 ID 必须是唯一的。如果是基于 LDAP 的验证数据库,则 Administration Server 通过从搜索基(基 DN)开始向下搜索整个目录来查看该用户 ID 是否正在使用,以确保用户 ID 的唯一性。但请注意,如果您使用 Directory Server ldapmodify 命令行实用程序(如果可用)创建用户,则不能确保用户 ID 是唯一的。
添加组
选择配置。
从配置列表中选择相应的配置。单击“配置”选项卡以获取列表。
单击“访问控制”>“组”选项卡。
单击“新建”按钮。
输入组名。
从“将用户添加到组”部分中搜索现有用户并将其添加到组中。
注 – 在 keyfile 或 digestfile 等验证数据库中创建组需要至少指定一个用户。
删除用户
选择配置。
从配置列表中选择相应的配置。单击“配置”选项卡以获取列表。
单击“访问控制”>“用户”选项卡。
选择您需要从中删除用户的验证数据库。
在“搜索用户”文本框中输入用户 ID,然后单击“搜索”按钮。
从“用户 ID”列中选择相应的用户,然后单击“删除”按钮。
注意 – 如果删除用户后组中不包含任何成员,从 keyfile/digestfile 验证数据库中删除用户也将删除关联的组。出现这种情况是因为 keyfile/digestfile 验证数据库不允许组中不包含任何成员。
删除组
选择配置。
从配置列表中选择相应的配置。单击“配置”选项卡以获取列表。
单击“访问控制”>“组”选项卡。
选择您需要从中删除组的验证数据库。
在“搜索用户”文本框中输入用户 ID,然后单击“搜索”按钮。
从“用户 ID”列中选择相应的用户,然后单击“删除”按钮。
注 – 删除组并不会删除该组中包含的用户。您必须手动删除用户或重新指定组。
服务器通过使用本地存储的访问控制列表 (access control list, ACL) 来支持验证和授权,这些列表用于说明用户对资源所具有的访问权限。例如,ACL 中的条目可以为名为 John 的用户授予特定文件夹 (misc) 的读取权限。
本节介绍如何限制对您 Web 站点上的文件或目录的访问。您可以为所有服务器设置全局访问控制规则,也可以单独为特定服务器进行设置。例如,人力资源部门可以创建 ACL,允许所有通过验证的用户查看他们自己的工资单数据,但是只允许负责工资单的人力资源人员更新数据。
服务器支持的核心 ACL 有三种类型的验证: 基本验证、SSL 验证和摘要验证。
要编辑访问控制设置,请执行以下步骤:
单击配置选项卡并选择相应的配置。
单击访问控制选项卡 > 访问控制列表子选项卡。
单击新建按钮添加新 ACL 或单击现有 ACL 以编辑设置。
下节介绍将新 ACL 添加至配置的过程。
单击配置选项卡并选择相应的配置。
单击访问控制选项卡 > 访问控制列表子选项卡。
单击新建按钮添加新的 ACL。
下表介绍了“添加新 ACL”页面中的字段。
表 18 字段说明 > 添加 ACL
字段 | 描述 |
|---|---|
资源 | 命名/URI/路径。 选择需要设置访问限制的资源类型,并指定其值。 URI 资源示例 — "/sales"。 路径资源示例 — "/usr/sun/server4/docs/cgi-bin/*"。 |
验证数据库 | 验证数据库使您可以选择服务器用于验证用户的数据库。 默认值为 keyfile。 |
验证方法 |
|
验证提示 | 验证提示选项使您可以输入要在验证对话框中显示的消息文本。您可以使用此文本来说明用户需要输入的内容。基于不同的浏览器,用户大约会看到该提示的前 40 个字符。 Web 浏览器通常会高速缓存用户名和密码,并将它们与提示文本关联。当用户访问具有相同提示的服务器的文件和目录时,无需再输入用户名和密码。如果您希望用户对特定文件和目录再次进行验证,只需更改该资源的 ACL 的提示。 |
拒绝的访问响应 | 指定拒绝对资源的访问时所进行的响应操作。 1. 响应并显示默认消息-选择该选项可以显示从服务器返回的标准访问拒绝消息。 2. 响应并显示 URL-选择该选项可以将请求转发至其他任何外部 URL 或错误页面。 |
另请参见添加新 ACE
本节介绍为选定的配置添加新访问控制条目 (Access Control Entry, ACE) 的过程。
单击配置选项卡并选择相应的配置。
单击访问控制选项卡 > 访问控制列表 > 新建按钮。
在访问控制条目下,单击新建按钮添加新 ACE。
下表介绍“新建 ACE”向导页面中的字段。
表 19 字段说明 > 添加新 ACE
字段 | 描述 |
|---|---|
操作 |
|
用户 | 1.任意用户-无验证。将访问权限授予每个用户。 2. 验证数据库中的所有用户-将访问权限授予在验证数据库中指定的所有用户。 3. 仅验证数据库中的以下用户-仅允许验证数据库中的选定用户进行访问。 您可以基于通用属性(如名字、姓氏和电子邮件地址)查询验证数据库。 |
组 | 使用组验证时,将提示用户输入用户名和密码,然后才允许其访问在访问控制规则中指定的资源。 使用该选项可以只允许特定组的访问。 |
主机地址 | 您可以基于请求来自的计算机限制对 Administration Server 或 Web 站点的访问。
如果选择“仅以下位置”选项,请在“主机名”或“IP 地址”字段中输入通配符模式或逗号分隔的列表。按主机名进行限制比按 IP 地址进行限制更灵活: 如果用户的 IP 地址发生更改,将不需要更新此列表。但是,按 IP 地址进行限制更可靠: 如果对某个连接的客户机的 DNS 查找失败,则无法使用主机名限制。 您只能使用通配符模式的 * 通配符表示法来匹配计算机的主机名或 IP 地址。例如,要允许或拒绝特定域中的所有计算机,可以输入与该域中所有主机均匹配的通配符模式,例如 *.sun.com。您可以为访问 Administration Server 的超级用户设置不同的主机名和 IP 地址。 对于主机名,* 必须替换名称中的整个部分。即,*.sun.com 有效,但 *users.sun.com 无效。当 * 出现在主机名中时,它必须是最左侧的字符。 例如,*.sun.com 有效,但 users.*.com 无效。对于 IP 地址,* 必须替换地址中的整个字节。例如,198.95.251.* 有效,但 198.95.251.3* 无效。当 * 出现在 IP 地址中时,它必须是最右侧的字符。例如,198.* 有效,但 198.*.251.30 无效。 |
权限 | 访问权限限制了对 Web 站点上的文件和目录的访问。除了允许或拒绝所有访问权限外,您还可以指定一个规则以允许或拒绝部分访问权限。例如,可以授予用户对文件的只读访问权限,这样他们可以查看信息,但不能更改文件。
|
继续 | 服务器将检查整个访问控制表达式 (access control expression, ACE) 列表以确定访问权限。例如,第一个 ACE 通常为拒绝每个用户。如果将第一个 ACE 设置为“继续”,服务器将检查列表中的第二个 ACE,如果该 ACE 匹配,则使用下一个 ACE。 如果未选中“继续”,则会拒绝所有用户访问该资源。服务器将继续检查列表,直至找到某个不匹配的 ACE,或匹配但未被设置为“继续”的 ACE。最后一个匹配的 ACE 将确定是否允许访问。 |
另请参见添加新 ACL。