Sun Java System Web Server 7.0 管理员指南

为用户/组设置访问控制

您可以仅允许特定的用户或组访问您的 Web 服务器。用户/组访问控制要求用户输入用户名和密码,然后才能访问服务器。服务器会将客户机证书中的信息与目录服务器条目进行比较。

Administration Server 只使用基本验证。如果希望在 Administration Server 上进行客户机验证,必须手动编辑 ACL 文件,将方法更改为 SSL。

用户/组验证由 Web Server 通过读取用户组数据库中的条目来执行。目录服务用来实现访问控制的信息可能来自以下资源之一:

当服务器使用基于 LDAP 的外部目录服务时,对于服务器实例它支持以下类型的用户/组验证方法:

当服务器使用基于文件的内部目录服务时,对于服务器实例它支持的用户/组验证方法包括:

用户/组验证要求用户验证其自身,然后才能访问服务器或 Web 站点上的文件和目录。借助验证,用户可使用客户机证书并通过输入用户名和密码来验证其身份。只有 SSL 通信才需要客户机证书。

默认验证

默认验证是首选方法。“默认”设置使用 server.xml 文件中的默认方法,或使用“基本”方法(如果 server.xml 中没有设置)。如果选中“默认”,ACL 规则将不会在 ACL 文件中指定方法。选择“默认”后,您便可通过编辑 obj.conf 文件中的一行文本来轻松更改所有 ACL 的方法。

基本验证

基本验证要求用户输入用户名和密码来访问 Web 服务器或 Web 站点。这是默认设置。您必须在 LDAP 数据库(如 Sun Java System Directory Server)或文件中创建和存储用户和组列表。所使用的目录服务器不能与 Web 服务器安装在相同的服务器根目录下;您也可以使用安装在远程计算机上的目录服务器。

当用户试图访问 Administration Server 或 Web 站点中具有用户/组验证的资源时,Web 浏览器将显示一个对话框,要求用户输入用户名和密码。服务器将收到加密或未加密的信息,这取决于您的服务器是否启用了加密。


注 –

如果使用不带 SSL 加密的基本验证,将在网络中以未加密的文本形式发送用户名和密码。网络包可能会被截取,并且用户名和密码可能会被盗用。基本验证在与 SSL 加密、主机/IP 验证或二者组合时最有效。使用摘要验证可以避免此类问题。


SSL 验证

使用安全性证书,服务器可以用两种方式确认用户的身份:

当您将服务器设置为使用证书信息来验证客户机时,服务器将:

要求对特定资源的访问控制进行客户机验证与要求对服务器的所有连接进行客户机验证不同。如果将服务器设置为要求对所有连接进行客户机验证,则客户机只需要提供由信任的 CA 颁发的有效证书。如果将服务器的访问控制设置为使用 SSL 方法来验证用户和组,则客户机需要:

要求对访问控制进行客户机验证时,需要为 Web 服务器启用 SSL 加密算法。

要成功访问要求进行 SSL 验证的资源,客户机证书必须来自 Web 服务器信任的 CA。如果 Web 服务器的 certmap.conf 文件被配置为将浏览器中的客户机证书与目录服务器中的客户机证书相比较,则需要在目录服务器中发布客户机证书。不过,certmap.conf 文件也可以配置为仅将证书中的选定信息与目录服务器条目进行比较。例如,您可以配置 certmap.conf 文件,使其仅将浏览器证书中的用户 ID 和电子邮件地址与目录服务器条目进行比较。


注 –

只有 SSL 验证方法才需要修改 certmap.conf 文件,因为将对照 LDAP 目录对证书进行检查。而要求对服务器的所有连接进行客户机验证则不必如此。如果选择使用客户机证书,则应增加 magnus.confAcceptTimeout 指令的值。


摘要验证

可以将服务器配置为使用基于 LDAP 或文件的目录服务执行摘要验证。

通过摘要验证,用户可以基于用户名和密码进行验证,而不必以明文形式发送用户名和密码。浏览器使用用户的密码和 Web 服务器提供的某些信息,利用 MD5 算法来创建摘要值。

当服务器使用基于 LDAP 的目录服务来执行摘要验证时,服务器端将使用摘要验证插件来计算该摘要值,并且将该值与客户机提供的摘要值进行比较。如果这些摘要值相匹配,用户将通过验证。要进行这种验证,目录服务器需要访问明文形式的用户密码。Sun Java System Directory Server 具有一个可逆的密码插件,它使用对称的加密算法以加密形式存储数据,这些数据可在稍后被解密成原来的形式。只有 Directory Server 保存了数据的密钥。

对于基于 LDAP 的摘要验证,需要启用服务器附带的可逆密码插件和特定的摘要验证插件。要配置 Web 服务器以处理摘要验证,请设置 dbswitch.conf 中数据库定义的 digestauth 属性。

如果未指定 ACL 方法,当要求进行验证时,服务器将使用摘要验证或基本验证;当不要求进行验证时,服务器将使用基本验证。这是首选方法。

表 7–1 摘要验证的不同情况

ACL 方法 

验证数据库支持摘要验证 

验证数据库不支持摘要验证 

"default" 

未指定 

摘要和基本 

基本 

"basic" 

基本 

基本 

"digest" 

摘要 

错误 

处理 method = digest 的 ACL 时,服务器将尝试通过以下操作进行验证: