2012-08-01 192 views
3

我有第三方Web應用程序,現在我的管理員希望將智能卡身份驗證添加到某些頁面(而不是整個應用程序)並返回證書信息。我在想爲這些頁面添加按鈕,並且在onclick事件中,我將執行客戶端證書身份驗證(在出現證書選擇窗口後會顯示「PIN」窗口)並返回證書對象以供進一步處理。使用客戶端證書進行智能卡身份驗證

我最初考慮過一個Web服務來執行客戶端證書身份驗證並返回證書信息,這很好,因爲我們可能會考慮在其他Web應用程序(在不同的平臺上)使用該Web服務。但是,我找不到任何代碼示例。然後我找到了IIS solution

我現在創建了一個單獨的文件夾,其中包含需要客戶端證書的頁面。在按鈕點擊事件上,我重定向到該頁面。然後在該頁面上,我使用X509Certificate類檢索證書信息。我不認爲這對我所做的事情有幫助,或者至少我不知道它有什麼用處。

所以我的問題是(很抱歉的長期背景描述)

  1. 如何我也可以把從認證結果頁面回來?
  2. 如果可能的話,有關如何建立一個Web服務,以IIS的相同方式執行客戶端證書身份驗證的任何參考?

感謝

更新 我環顧四周,仍然沒有就如何實現這一線索。我不確定如何在Web服務的SSL/TLS握手階段進行編碼。我不知道如何將認證返回到我調用此函數的頁面。所以我現在想要做的是從需要客戶端認證的受保護頁面重定向。看起來Web服務器緩存了認證結果。這是我的第三個問題,我希望有人能回答。

如何在頁面會話結束時清除身份驗證結果,以便每次訪問頁面時都會請求客戶端身份驗證(在出現證書選擇窗口後會顯示「PIN」窗口)?

回答

2

如果您的應用程序託管在IIS中,那麼只需在web.config中添加一段說明這些頁面需要客戶端證書的部分。然後瀏覽器會要求用戶提供證書。

+0

感謝您的回覆。我在IIS中檢查了SSL設置爲必需的文件夾。這還不夠嗎? – user1541389 2012-08-07 20:43:01

+0

它應該是 - 假設客戶端系統(瀏覽器等)設置爲使用智能卡證書 – pm100 2012-08-07 22:53:58

+0

這是發生了什麼事。我有一個不在受限制文件夾頁面1下的頁面。在頁面1的腳本中,我使用重定向到頁面(頁面2),該頁面在IIS中要求具有SSL設置的文件夾下的客戶端證書。當我第一次訪問page1時,它會提示證書選擇窗口,然後顯示PIN窗口,然後顯示page2。然後關閉窗口,打開一個新窗口,輸入第1頁的地址,這次證書選擇窗口顯示,在我選擇相同證書後,它不會用PIN窗口挑戰我,只顯示page2。我希望PIN窗口始終觸發 – user1541389 2012-08-08 12:11:02

1

Windows具有緩存功能,默認情況下,該功能允許應用程序在初始PIN提示後或在應用程序完全關閉之前的有限時間內訪問私鑰。

要禁用,請設置此註冊表項。 (或使用GPO)

[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Cryptography] 
"PrivKeyCacheMaxItems"=dword:00000000 
"PrivKeyCachePurgeIntervalSeconds"=dword:00000000 
相關問題