2011-10-19 44 views
7

Tôi đang tìm cách bảo mật ứng dụng ASP.NET MVC bằng SSL và xác thực chứng chỉ ứng dụng khách. Tôi đang sử dụng IIS 7.5, Windows Server 2008 R2.Ứng dụng ASP.NET MVC an toàn với chứng thực SSL và chứng chỉ ứng dụng khách

Tôi muốn biết liệu nó có thể làm như sau qua Web.config (nó phải được thông qua đó!)

  1. Yêu cầu thông tin liên lạc SSL cho tất cả các yêu cầu
  2. Bản đồ giấy chứng nhận nhiều khách hàng để một người dùng duy nhất
  3. Yêu cầu người sử dụng phải được xác thực

Ngoài ra, bất kỳ gợi ý về cách đi về về việc này, bất kỳ hướng dẫn hoặc tài nguyên khác có liên quan sẽ được nhiều appr eciated như tôi mới đến khá nhiều tất cả những điều này.

+0

IIS 6.1 và Windows Server 2008 R2? Làm thế nào đến? –

+0

Xin lỗi! Điều đó thật ngớ ngẩn với tôi! Ý tôi là 7,5! Sẽ cập nhật –

Trả lời

7

Vì vậy, để trả lời câu hỏi của riêng tôi .. tất cả những điều trên có thể đạt được thông qua việc Web.config. Phần sau của Web.config yêu cầu SSL thông qua phần hệ thống/truy cập và cấu hình ánh xạ chứng chỉ máy khách nhiều-một. Những phần này bị khóa trong applicationHost.config vì vậy bất cứ ai muốn chỉnh sửa chúng trong Web.config sẽ cần phải mở khóa chúng. Có rất nhiều hướng dẫn về điều đó vì vậy tôi sẽ không đi vào nó.

 <security> 
      <access sslFlags="Ssl, SslNegotiateCert" /> 
      <authentication> 
       <anonymousAuthentication enabled="false" /> 
       <iisClientCertificateMappingAuthentication enabled="true" manyToOneCertificateMappingsEnabled="true"> 
        <manyToOneMappings> 
         <add name="Authentication Certificate" 
          enabled="true" 
          permissionMode="Allow" 
          userName="foo" 
          password="bar"> 
          <rules> 
           <add certificateField="Issuer" certificateSubField="CN" matchCriteria="*.stackoverflow.com" compareCaseSensitive="false" /> 
          </rules> 
         </add> 
        </manyToOneMappings> 
       </iisClientCertificateMappingAuthentication> 
      </authentication> 
     </security> 
2

Đi theo thứ tự:

  1. Yêu cầu thông tin liên lạc SSL cho tất cả các yêu cầu - Có. Trong IIS, đặt trang web chỉ với một ràng buộc https và xóa ràng buộc http. Trang web sẽ không phản hồi các yêu cầu http. Nếu bạn làm điều này, bạn nên tạo tập lệnh để chuyển hướng 403.4 lỗi từ http://mysite.com đến https://mysite.com. Bạn có thể tìm thấy nhiều ví dụ về cách làm điều này bằng cách sử dụng các công cụ khác nhau.

  2. Ánh xạ nhiều chứng chỉ ứng dụng khách cho một người dùng - Tôi không biết. Tôi sẽ vượt qua điều này.

  3. Yêu cầu người dùng phải được xác thực - Có. Trong file web.config, trong các yếu tố <system.web>, thêm dòng sau:

    <authorization> 
        <deny users="?"/> 
    </authorization> 
    
+0

Cảm ơn - điều này rất hữu ích. Chỉ cần làm nó theo một cách khác. –

+0

2) http://www.iis.net/ConfigReference/system.webServer/security/authentication/iisClientCertificateMappingAuthentication – quetzalcoatl

Các vấn đề liên quan