您目前已離線,請等候您的網際網路重新連線

如何: 安全的 ASP.NET 應用程式使用用戶端憑證

重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。

315588
結論
高度安全的 Web 應用程式,例如網際網路銀行網站您可能想要實作更安全的解決方案來進行使用者驗證比使用者名稱和密碼組合。您可以使用用戶端數位憑證來驗證使用者的身分。在另外您可以將用戶端數位憑證對應到 Windows 帳戶,如有必要在伺服器上。


需求

下列清單列出建議的硬體、 軟體、 網路基礎結構及您需要的服務套件:
  • Microsoft Windows 2000 Service Pack 2 伺服器
  • Microsoft Internet Explorer 6.0
  • Microsoft Visual Studio.NET
  • Microsoft 憑證服務 (如果您必須產生您自己的憑證)
本文假設您已熟悉下列主題:
  • 與 Visual Basic 或 Visual C# 的 ASP.NET 開發
  • Microsoft 網際網路資訊服務 (IIS) 設定

建立 ASP.NET Web 應用程式

本章節中您可以建立簡單的 ASP.NET 應用程式。請依照下列各節,您將使用用戶端憑證驗證來保護這個應用程式。
  1. 啟動 Visual 的 Studio.NET,然後建立新的 ASP.NET Web 應用程式專案,名為 SecureSite。
  2. 從到的 WebForm1.aspx Web] 表單上工具箱拖曳 Label 控制項,並再將其 識別碼] 屬性設定為 [greetingLabel
  3. 將第二個 Label 控制項拖曳至 WebForm1.aspx,並再將其 識別碼] 屬性設定為 [certDataLabel
  4. 將下列程式碼加入至 Page_Load 事件程序:
    'Visual BasicDim username As StringuserName = User.Identity.NamegreetingLabel.Text = "Welcome " & userNameDim cert As HttpClientCertificate = Request.ClientCertificateIf cert.IsPresent Then	'Get the Organization (O) field from the Subject section.	certDataLabel.Text = cert.Get("Subject O")Else	certDataLabel.Text = "No certificate was found."End If					
    //Visual C#string userName;userName = User.Identity.Name;greetingLabel.Text = "Welcome " + userName;HttpClientCertificate cert = Request.ClientCertificate;if (cert.IsPresent)    certDataLabel.Text = cert.Get("SUBJECT O");else    certDataLabel.Text="No certificate was found.";					
  5. 建置並儲存此專案,然後關閉 [Visual Studio。
  6. 啟動 Internet Explorer,並瀏覽至下列頁面:
    http://localhost/SecureSite/WebForm1.aspx
    請注意頁面會顯示 「 歡迎 」,而且"找不憑證 」 訊息。請注意使用者尚未被驗證,因此網頁不顯示使用者名稱。
  7. 關閉 [Internet Explorer]。

設定 Web 伺服器憑證型驗證

本章節中您可以設定 SecureSite 專案来用於驗證的憑證。若要將用戶端憑證,您必須安裝伺服器端憑證。您可以使用現有的伺服器憑證從任何憑證授權單位,或者您可以產生以 Microsoft 憑證服務伺服器端憑證。


若要建立伺服器端憑證要求

  1. 在 [開始] 功能表上指向 [程式集],並指向 [系統管理工具],然後按一下 [Internet 服務管理員
  2. 為您的伺服器展開節點,然後按一下 [預設的網站
  3. 按一下 [動作] 功能表 內容]
  4. 在 [目錄安全性] 索引標籤上按一下 [伺服器憑證]。請依照下列步驟執行精靈中:
    1. 在精靈的第一頁上,按一下 [下一步]。
    2. 伺服器憑證] 頁面上按一下 [建立新的憑證,然後按一下 [下一步]。
    3. 在 [的 [延遲] 或 [立即要求] 頁面上按一下 [準備要求現在,但傳送它稍後,],再按 下一步]。
    4. 在 [的 [名稱] 及 [安全性設定] 頁面上接受預設的設定,然後按一下 [下一步]。
    5. 組織資訊] 頁面上鍵入在組織的 MSDNHow To 文章 輸入組織單位,然後按一下 [下一步]
    6. 在 [您站台的一般名稱] 頁面上輸入 localhost,然後按一下 [下一步]。
    7. 地理的資訊] 頁面上輸入您的國家、 地區和城市詳細資料],然後按一下 [下一步]。
    8. 在 [憑證要求檔案名稱] 頁面上接受預設檔案名稱 (通常 c:\certreq.txt),然後按一下 [下一步]。
    9. 要求的檔案摘要] 頁面上確認所有的詳細資料都是正確的然後按一下 [下一步]
    10. 按一下 [完成] 關閉精靈。
  5. 開啟憑證檔案,就會產生,然後再將憑證檔案的整個內容複製到剪貼簿。

送出伺服器端憑證要求

  1. 啟動 Internet Explorer,並瀏覽至下列頁面:
    http://localhost/CertSrv
    注意: 必須安裝 [Microsoft 憑證服務。
  2. 請依照下列步驟執行精靈中:
    1. 按一下 [要求憑證,然後按一下 [下一步]。
    2. 在 [選擇要求類型] 頁面上按一下 [進階要求,],再按 下一步]。
    3. 在 [進階憑證要求] 頁面上按一下 [提交憑證要求,使用一個 base64 編碼 PKCS # 10 檔案,然後按一下 [下一步]
    4. 送出已儲存的要求] 頁面上按一下 [Base64 編碼憑證要求 (PKCS # 10 或 # 7)] 方塊,然後按下 CTRL + V 組合鍵來貼上您先前複製到剪貼簿的憑證要求。按一下 [送出]。
  3. 關閉 [Internet Explorer]。

若要發行伺服器端憑證

  1. 在 [開始] 功能表上指向 [程式集],指向 [系統管理工具,然後再按一下 [憑證授權單位]。
  2. 為您的憑證授權單位展開節點,然後選取 [擱置要求
  3. 選取您剛提交憑證要求。在 [執行] 功能表上指向 [所有工作],然後按一下 [議題]。
  4. 確認憑證出現發行憑證] 資料夾中,然後連按兩下要檢視其憑證。
  5. 在 [詳細資料] 索引標籤上按一下 [複製到檔案。將憑證儲存為 Base 64 編碼 X.509 憑證來 C:\Servercert.cer。
  6. 關閉憑證的 [內容] 對話方塊。
  7. 關閉 [憑證授權] 工具。

若要安裝伺服器端憑證

  1. 在 [開始] 功能表上指向 [程式集],並指向 [系統管理工具],然後按一下 [Internet 服務管理員
  2. 為您的伺服器展開節點,然後按一下 [預設的網站
  3. 按一下 [動作] 功能表 內容]
  4. 在 [目錄安全性] 索引標籤上按一下 [伺服器憑證]。請依照下列步驟執行精靈中:
    1. 在精靈的第一頁上,按一下 [下一步]。
    2. 按一下 [安裝憑證 擱置要求的處理序,然後按一下 [下一步]。
    3. 瀏覽至您先前儲存之 C:\Servercert.cer 憑證檔案。按兩次,[下一步],然後按一下 [完成]。
  5. 按一下 [確定] 以關閉 [內容] 對話方塊。

若要設定 SecureSite 站台用於 SSL 及用戶端憑證

  1. 在網際網路服務管理員] 中選取 SecureSite] 子 Web,並檢視其屬性。
  2. 請依照下列步驟執行精靈中:
    1. 在 [目錄安全性] 索引標籤上按一下 [安全通訊] 區段中的 [編輯]。
    2. 選取 [需要安全通道 (SSL)] 核取方塊。如此可確保此子 Web 的通訊會加密。
    3. 選取 [需要用戶端憑證] 核取方塊。這樣可以確保站台只可以檢視已安裝的用戶端憑證的使用者。
    4. 選取 [啟用用戶端憑證對應] 核取方塊。這用來將用戶端憑證對應到 Windows 使用者帳戶。
    5. 按一下 [編輯]。請注意您可以將每個憑證對應到個別的 Windows 帳戶,或您可以將許多憑證對應到相同的 Windows 帳戶。
    6. 在 [多 1] 索引標籤上按一下 [新增] 以新增對應規則]。命名 對應規則,此規則,然後按一下 [下一步]
    7. 按一下 [新增],以建立新的憑證主旨區段的 [O 子] 欄位 (組織) 有準則 MSDN 」 的規則。按一下 [套用對應到使用者的憑證包含組織屬性 MSDN 」 的 [確定]。在實際執行環境中對應規則會是更嚴格,並經常會驗證發行者的憑證,以及主旨。按一下 [下一步]。
    8. 在 [對應] 頁面上,選取 [接受登入驗證這個憑證]。按一下 [瀏覽] 以選取您想要對應至 MSDN 使用者 [Windows 帳號]。為使本範例使用系統管理員帳戶。(在實際的應用程式您建立專用的 Windows 帳戶具有受限制的權限)。請確定您輸入正確的密碼。
    9. 按一下 [完成],並確認密碼。
  3. 按一下 [確定] 關閉 帳戶對應] 對話方塊。
  4. 按一下 [確定] 以關閉 [安全通訊] 對話方塊。如果提示您將設定套用到子檔案及資料夾,按一下 [全選],],再按 [確定]
  5. 按一下 [確定] 關閉 SecureSite 內容] 對話方塊。

若要確認憑證型驗證

  1. 啟動 Internet Explorer,並瀏覽至下列頁面:
    https://localhost/SecureSite/WebForm1.aspx
    請注意您使用安全通訊協定 https。
  2. 請確認您收到一則訊息,該頁面需要用戶端憑證。
  3. 關閉 [Internet Explorer]。

安裝用戶端憑證

本章節中您要安裝用戶端憑證。您可以使用任何憑證授權單位憑證,或者您可以使用 Microsoft 憑證服務來產生您自己的憑證。


若要要求用戶端憑證

  1. 啟動 Internet Explorer,並瀏覽至下列頁面:
    http://localhost/CertSrv
  2. 請依照下列步驟執行精靈中:
    1. 按一下 [要求憑證,然後按一下 [下一步]。
    2. 在 [選擇要求類型] 頁面上按一下 [Web 瀏覽器憑證,],再按 下一步]。
    3. 輸入所需的資訊。請確定您在 公司 的 [文字] 方塊中鍵入 MSDN
    4. 按一下 [送出 完成要求。
  3. 關閉 [Internet Explorer]。

若要發行用戶端憑證

  1. 從 [系統管理工具] 程式群組啟動 [憑證授權] 工具。
  2. 為您的憑證授權單位展開節點,然後選取 [擱置要求
  3. 選取您剛提交憑證要求。在 [執行] 功能表上指向 [所有工作],然後按一下 [議題]。
  4. 確認憑證出現發行憑證] 資料夾中,然後連按兩下要檢視其憑證。
  5. 在 [詳細資料] 索引標籤上按一下 [複製到檔案。將憑證儲存為 Base 64 編碼 X.509 憑證來 C:\Clientcert.cer。
  6. 關閉憑證的 [內容] 對話方塊。
  7. 關閉 [憑證授權] 工具。

若要安裝用戶端憑證

  1. 請開啟 Windows 檔案總管,並連按兩下 Clientcert.cer 檢視憑證檔案。
  2. 請依照下列步驟執行 「 憑證匯入精靈 」:
    1. 在精靈的第一頁,按一下 [安裝憑證,然後按一下 [下一步]。
    2. 選取 [自動選取 [根據憑證類型的憑證存放區] 核取方塊,然後按一下 [下一步]。
    3. 按一下 [完成] 完成精靈]。
  3. 關閉確認訊息方塊,然後按一下 [確定] 以關閉憑證]。

請確認它可以運作

本章節中您驗證公司可以為指定 「 MSDN 」 的憑證的用戶端應用程式檢視 SecureSite 站台。使用者會對應到對應規則中指定的帳戶。
  1. 啟動 Internet Explorer,並瀏覽至下列頁面:
    https://localhost/SecureSite/WebForm1.aspx
  2. 確認的:
    • [Web] 網頁隨即顯示。
    • 使用適當的 Windows 帳戶。
    • 組織 MSDN 」 是讀取憑證。

参考
如需有關如何使用安全通訊端層 (SSL) 來保護網站的詳細資訊,按一下下面的文件編號,檢視 「 Microsoft 知識庫 」 中的發行項:
298805如何: 對於網際網路資訊服務中的網站進行互動的所有客戶啟用 SSL

警告:本文已自動翻譯

內容

文章識別碼:315588 - 最後檢閱時間:12/03/2007 19:53:36 - 修訂: 4.6

  • Microsoft ASP.NET 1.0
  • Microsoft Internet Information Services 5.0
  • Microsoft ASP.NET 1.1
  • Microsoft Internet Information Services 6.0
  • kbmt kbhowtomaster kbsecurity KB315588 KbMtzh
意見反應