為了執行授權,Web 服務經常需要能夠對它們的調用方(其它應用程式)進行身分識別驗證。用戶端認證為 Web 服務提供了一種非常好的身分識別驗證機制。如果您使用用戶端認證,您的應用程式也會得益於用戶端應用程式和 Web 服務之間的安全通道建立(使用安全通訊端層 [SSL])。這樣您就可以安全地在 Web 服務之間傳送保密資訊。SSL 確保訊息的完整性和機密性。
本“如何做”包括調用配置為需要用戶端認證的 Web 服務的分步指導。
注意:本“如何做”中的資訊也適用於由 IIS 承載的遠程組件。
要求
以下各項介紹了推薦的硬體、軟體、網路基礎結構、技巧和知識以及您需要的服務包。
● 帶 Service Pack 2 的 Microsoft? Windows? 2000 Server 作業系統
● Microsoft Visual Studio? .NET 開發系統
● 訪問憑證授權單位 (CA) 以產生新的認證
● 一個已安裝了伺服器憑證的 Web 伺服器
有關安裝 Web 伺服器憑證的更多資訊,請參見本指南“參考”部分的“如何做:在 Web 伺服器上設定 SSL”。
本“如何做”中的過程還要求您具有使用 Microsoft Visual C#? 開發工具進行 ASP.NET Web 開發的知識。
總結
本“如何做”包括如下過程:
1. 建立簡單的 Web 應用程式
2. 將 Web 應用程式配置為需要用戶端認證
3. 需要並安裝用戶端認證
4. 驗證用戶端認證操作
1. 建立簡單的 Web 應用程式
u 建立簡單的 Web 應用程式
1. 啟動 Visual Studio .NET,建立一個名為 SecureApp 的新 C# ASP.NET Web 應用程式。
2. 從工具箱中將一個標籤控制項拖放到 WebForm1.aspx Web 表單上,然後將其 ID 屬性設定為 message。
3. 再拖放一個標籤至 WebForm1.aspx 表單上,然後將其 ID 屬性設定為 certData。
4. 將下面的代碼添加到 Page_Load 事件程序中。
string username;
username = User.Identity.Name;
message.Text = "Welcome " + username;
HttpClientCertificate cert = Request.ClientCertificate;
if (cert.IsPresent)
{
certData.Text = "Client certificate retrieved";
}
else
{
certData.Text = "No client certificate";
}
5. 在“構建”菜單中,單擊“構建解決方案”
6. 啟動 Internet Explorer 並導航至 http://localhost/SecureApp/WebForm1.aspx。
頁面應該顯示“歡迎”訊息(不顯示使用者名稱,因為使用者尚未經過身分識別驗證)和“沒有用戶端認證”。
7. 關閉 Internet Explorer。
2. 將 Web 應用程式配置為需要用戶端認證
此過程使用 Internet 資訊服務 (IIS) 將 Web 應用程式的虛擬目錄配置為需要認證。
此過程假設您在 Web 伺服器上安裝了有效認證。有關安裝 Web 伺服器憑證的詳細資料,請參見“如何做:在 Web 伺服器上設定 SSL”。
u 將 Web 應用程式的虛擬目錄配置為需要認證
1. 在 Web 服務主機上啟動 IIS。
2. 導航到 SecureApp 虛擬目錄。
3. 右擊 SecureApp,然後單擊“屬性”。
4. 單擊“目錄安全性”選項卡。
5. 單擊“安全通訊”下的“編輯”。
如果無法使用“編輯”,則可能沒有安裝 Web 伺服器憑證。
6. 選擇“要求安全通道 (SSL)”複選框。
7. 選擇“要求用戶端認證”選項。
8. 單擊“確定”,然後再單擊“確定”。
9. 在“繼承覆蓋”對話方塊中,單擊“全選”,然後單擊“確定”關閉“SecureApp 屬性”對話方塊。
這會將新的安全設定應用於虛擬根目錄下的所有子目錄。
10. 要確認 Web 網站已正確配置,啟動 Internet Explorer 並(使用 HTTPS)瀏覽到 https://localhost/secureapp/webform1.aspx。
11. Internet Explorer 顯示“客戶身分識別驗證”對話方塊,要求您選擇一個用戶端認證。因為您尚未安裝用戶端認證,所以單擊“確定”,確認顯示通知您頁面需要用戶端認證的錯誤頁面。
12. 關閉 Internet Explorer。
3. 需要並安裝用戶端認證
此過程安裝用戶端認證。您可以使用來自任何憑證授權單位的認證,也可以使用如後面幾節所述的 Microsoft 認證服務來產生自己的認證。
此過程假設 Microsoft 認證服務是為待定申請配置的,這要求管理員專門頒發認證。它也可以配置為應認證申請自動頒發認證。
u 檢查認證申請狀態設定
1. 在 Microsoft 認證服務電腦上,從“管理工具”程式組中選擇“憑證授權單位”。
2. 展開“憑證授權單位(本地)”,右擊憑證授權單位並單擊“屬性”。
3. 單擊“原則模組”選項卡,然後單擊“配置”。
4. 檢查預設操作。
以下過程假設“將認證申請狀態設成待定”。選擇“管理員必須專門頒發認證”。
u 申請用戶端認證
1. 啟動 Internet Explorer 並導航至 http://hostname/certsrv,其中 hostname 是安裝 Microsoft 認證服務的電腦的名稱。
2. 單擊“申請認證”,然後單擊“下一步”。
3. 在“選擇申請類型”頁上,單擊“使用者認證”,然後單擊“下一步”。
4. 單擊“提交”完成申請。
5. 關閉 Internet Explorer。
u 頒發用戶端認證
1. 從“管理工具”程式組中啟動“憑證授權單位”工具。
2. 展開您的憑證授權單位,然後選擇“待定申請”檔案夾。
3. 選擇剛提交的認證申請,指向“操作”菜單上的“所有任務”,然後單擊“頒發”。
4. 確認認證顯示在“頒發認證”檔案夾中,然後雙擊它進行查看。
5. 在“詳細資料”選項卡上,單擊“複製到檔案”將認證儲存為 Base-64 編碼的 X.509 認證。
6. 關閉認證的屬性視窗。
7. 關閉憑證授權單位工具。
u 安裝用戶端認證
1. 要查看認證,啟動 Windows 資源管理員,導航至在前一過程中儲存的 .cer 檔案,然後雙擊它。
2. 單擊“安裝認證”,然後在“認證匯入嚮導”的首頁單擊“下一步”。
3. 選擇“根據認證類型,自動選擇憑證存放區區”,然後單擊“下一步”。
4. 單擊“完成”完成嚮導。關閉確認訊息框,然後單擊“確定”關閉認證。
4. 驗證用戶端認證操作
此過程驗證您是否可以使用用戶端認證訪問 SecureApp 應用程式。
u 驗證用戶端認證操作
1. 啟動 Internet Explorer 並導航至 https://localhost/secureapp/webform1.aspx。
2. 確認 Web 頁成功顯示。