万 飞 (长江大学计算机科学学院,湖北 荆州434023;武汉职业技术学院轻工学院,湖北 武汉430074)
随着网络信息时代的日益发展,很多中小企业在Internet网络上建立门户网站或网络信息系统,这样在Internet网络中使用Windows Server系列服务器架设的站点越来越多,为了确保站点的可靠性,必须配置合法的身份验证以便对站点进行安全访问。下面,笔者对基于Windows Server 2003配置信息服务器 (Internet Information Services,IIS)站点的身份验证问题进行了研究。
在Windows Server 2003Enterprise操作系统中安装IIS的操作步骤如下[1]:①打开 “控制面板”→“添加/删除程序”→ “添加/删除 Windows组件”,系统经过初始化后显示 Windows组件向导;②在Windows组件向导里选择 “应用程序服务器”→ “详细信息”→ “Internet信息服务器 (IIS)”;③点击确定,系统会提示需要IIS的安装包路径,一般使用Windows Server 2003Enterprise安装光盘即可完成。
1)匿名身份认证 如果启用了匿名访问,访问站点时,不要求提供经过身份认证的用户凭据。当需要让用户公开访问那些没有安全要求的信息时,使用该选项最合适。IIS创建IUSR_Computer Name帐户 (其中Computer Name是正在运行IIS服务器的名称),用来在匿名用户请求Web内容时对他们进行身份认证。该帐户授予用户本地登录权限。用户可以将匿名用户访问重置为使用任何有效的Windows帐户。用户可以为不同网站、虚拟目录、物理目录和文件建立不同的匿名帐户。如果基于Windows Server 2003的计算机是独立服务器,则IUSR_Computer Name帐户位于本地服务器上。如果该服务器是域控制器,则IUSR_Computer Name帐户是针对该域定义的。
2)基本身份认证 使用基本身份认证可限制对NTFS格式的Web服务器上文件的访问。使用基本身份认证,用户必须输入凭据,而且访问是基于用户ID的。用户ID和密码都以明文形式在网络间进行发送。要使用基本身份认证,应授予每个用户进行本地登录的权限;为了使管理更加容易,应将每个用户都添加到可以访问所需文件的组中。因为用户凭据是使用Base64编码技术编码,但其通过网络传输时不经过加密,所以基本身份认证是一种不安全的身份认证方式。
3)集成Windows身份认证 集成Windows身份认证比基本身份认证安全,而且在用户具有Windows域帐户的内部网环境中能很好地发挥作用。在集成Windows身份认证中,浏览器尝试使用当前用户在域登录过程中使用的凭据,如果尝试失败,就会提示该用户输入用户名和密码。如果用户使用集成Windows身份认证,则用户的密码将不传送到服务器。如果用户作为域用户登录到本地计算机,则用户在访问该域中的网络计算机时不必再次进行身份认证。集成Windows身份认证以Kerberos票证的形式通过网络向用户发送身份认证信息,其安全级别较高。值得注意的是,如果选择了多个身份认证选项,IIS会首先尝试协商最安全的方法,然后按可用身份认证协议的列表向下逐个试用其他协议,直到找到客户端和服务器都支持的某种共有的身份认证协议。
4)摘要式身份认证 摘要式身份认证需要用户ID和密码,其安全级别为中等。如果用户被允许从公共网络访问安全信息,则可以使用该方法。在使用摘要式身份认证时,密码不是以明文形式发送的。另外,用户可以通过代理服务器使用摘要式身份认证。摘要式身份认证使用一种质询/响应机制 (集成Windows身份认证使用的机制),其中的密码以加密形式发送。在使用摘要式身份认证时必须满足下述要求:①用户和IIS服务器必须是同一个域的成员或被同一个域信任;②用户必须有一个存储在域控制器上ActiveDirectory中的有效Windows用户帐户;③该域必须使用Microsoft Windows 2000或更高版本的域控制器;④必须将IISSuba.dll文件安装到域控制器上,该文件在 Windows 2000或 Windows Server 2003的安装过程中能够自动复制;⑤必须将所有用户帐户配置为选择 “使用可逆的加密保存密码”帐户选项。要选择此帐户选项,必须重置或重新输入密码。
5)Microsoft.NET Passport身份认证 .NET Passport身份认证提供了单一登录安全性,为用户提供对Internet上各种服务的访问权限。如果选择该选项,对IIS服务的请求必须在查询字符串或Cookie中包含有效的.NET Passport凭据。如果IIS服务不检测.NET Passport凭据,请求就会被重定向到.NET Passport登录页。如果选择此选项,其他所有身份认证方法都将不可用。
为了验证IIS多站点下的身份验证,首先需要在IIS中建立3个站点,同时分别取名为Site_A、Site_B和Site_C,其中IIS服务器IP为10.84.11.102,站点Site_A的访问地址为http://10.84.11.102:8081、站点Site_B的访问地址为http://10.84.11.102:8082、站点Site_C的访问地址为http://10.84.11.102:8083。
在建立IIS站点后,IIS会以用默认开启 “匿名身份验证”机制,并以一个通用的匿名帐户 (IUSR_ADMIN-********)对站点进行身份验证仿问,同时启用 “集成Windows身份认证”机制(查看方法:在IIS管理器网站目录下右键单击某个单站点,打开 “属性”对话框,找到 “目录安全性”选项卡,在该选项卡的 “身份验证和访问控制”内容组里单击 “编辑”即可)。
1)采用自定义帐户进行匿名身份验证 匿名身份验证配置过程如下:①打开 “本地用户与组”管理器,在展开 “用户”管理,在 “用户”管理中增加3个帐户,分别为Site_A、Site_B、Site_C,帐户密码为了方便统一,使用 “123456”。②更改Site_A帐户所属组,同时删除帐户默认 “隶属于”的 “Users”组,新加入到 “IIS_WPG”用户组中;以相同的方法更改帐户Site_B、帐户Site_C的“隶属于”组信息。③更改IIS站点Site_A的匿名身份验证帐户为Site_A,并设置密码与创建帐户时使用的密码相同即为123456,同时勾选 “集成Windows身份验证”。④站点权限设置。在IIS站点管理器中右击站点Site_A打开权限设置对话框,删除默认的Users组仿问权限,新增Site_A帐户记问要限,并设置Site_A帐户权限为可修改。⑤使用步骤③、④分别对IIS站点Site_B、站点Site_C做相同配置。
图1所示为IIS站点Site_A配置自定义身份验证运行效果图。图2所示为IIS站点身份验证登陆事件效果图。
图1 IIS站点Site_A配置自定义身份验证运行效果图
图2 IIS站点身份验证登陆事件效果图
2)采用特定帐户进行Windows集成身份验证 “Windows集成身份验证”配置过程与 “匿名身份验证”配置过程的唯一区别是在站点的 “身份验证与仿问控制”设置中不勾选 “启用匿名方问”,因而对站点Site_A做出相应更改。当再次访问站点Site_A的时候,会出现要求输入的帐户与密码,在输入之前设定的帐户Site_A和密码123456之后,就可以正常访问网站。图3所示为站点Site_A集成Windows身份验证验证成功后运行效果图。图4所示为站点身份验证登陆事件结果图。由图4可知,帐户Site_A、帐户Site_B都已通知Windows身份验证,但是由于IIS的仿问控制权限限定了帐户Site_B的访问,所以使用帐户Site_A进行身份验证后能正常访问,而使用帐户Site_B则不能。
图3 IIS站点Site_A集成Windows身份验证验证成功后运行效果图
图4 IIS站点身份验证登陆事件结果图
通过Windows帐户组、IIS的身份验证机制和Windows文件仿问权限控制的配合使用,可以灵活地配置IIS的站点的身份验证用户,并能在一台服务器上配置多个站点的身份验证,且相互之间互不干扰,从而大大增强了应用于Windows Server服务器系列操作系统上站点的安全可靠性。
[1]Server 2003IIS6.0安装、配置实用技巧 [DB/OL].http://servers.pconline.com.cn/skills/0706/1035420_all.html,2007-06-15.
[2]李洋.IIS服务中5种身份验证的灵活运用 [DB/OL].http://os.51cto.com/art/201005/202380.htm,2010-05-27.