萬 飛 (長江大學計算機科學學院,湖北 荊州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.