Bảo mật nào được sử dụng theo mặc định trong WSHttpBinding (phía dịch vụ) hoặc máy khách WCF Test (phía máy khách)?


8

Gần đây tôi đã chuyển một dịch vụ từ BasicHttpBinding sang WSHttpBinding (tức là SOAP 1.1 -> SOAP 1.2). Trong WCF , sử dụng WSHttpBinding () làm cho nó bắt đầu sử dụng một số cài đặt bảo mật mặc định. Tôi cho rằng các cài đặt bảo mật mặc định tương tự cũng được WCF Test Client sử dụng vì máy khách và máy chủ có thể tiếp tục nói chuyện sau khi chuyển sang WSHttpBinding 'được bảo mật'. Trong fiddler, tôi đã xác nhận thiết lập bảo mật này vì tôi có thể chứng kiến ​​những cái bắt tay bảo mật phức tạp hơn từ phản hồi yêu cầu đơn giản trước đó tức là

Trước: (BasicHttpBinding)

  1. [HttpRequest] (Yêu cầu SOAP rõ ràng)

    [HttpResponse] (Phản hồi SOAP rõ ràng)

Sau: (WSHttpBinding)

  1. [HttpRequest] RequestSecurityToken

    [HttpResponse] RequestSecurityTokenResponse

  2. [HttpRequest] RequestSecurityToken

    [HttpResponse] RequestSecurityTokenResponse

  3. [HttpRequest] RequestSecurityTokenResponse

    [HttpResponse] RequestSecurityTokenResponseCollection

  4. [HttpRequest] Mã hóaData

    [HttpResponse] Đã mã hóaData

  5. [HttpRequest] EncryptedData (yêu cầu cấp ứng dụng thực tế)

    [HttpResponse] EncryptedData (phản hồi mức ứng dụng thực tế)

Vì vậy, tôi có thể an toàn cho rằng an ninh đang được áp dụng. Bây giờ đến câu hỏi:

Câu hỏi 1: Cài đặt bảo mật là gì? Tôi không bao giờ nói với WCF của bất kỳ nhà cung cấp thành viên. Trong thực tế, tôi không có bất kỳ bảng (SQL hoặc XML) nào về bất kỳ tên người dùng <-> mật khẩu nào. Vậy những loại xác thực đang xảy ra? Mặc dù WCF Test Client có thể xác thực như trên, SoapUI không nhận các mặc định Microsoft .NET này và có vấn đề. SoapUI cố gắng liên lạc văn bản rõ ràng và sau đó máy chủ phản hồi với lỗi mã thông báo bảo mật không chính xác.

Câu hỏi 2: Mô hình bảo mật được thực hiện phổ biến nhất cho SOAP 1.2 là gì? Có phải thông qua chứng chỉ hoặc mật khẩu tên người dùng hoặc thông báo hoặc _____? Các thông tin đăng nhập được lưu trữ (SQL / XML như thế nào) và được định cấu hình ở phía máy chủ WCF như thế nào?

Câu trả lời:


7

Vâng, WSHTTPBinding nổi tiếng. Nó gây ra rất nhiều đau đớn cho các nền tảng non-.NET.

Trước hết, ngay cả khi SOAP 1.2 là một tiêu chuẩn, WSHTTPBinding là một triển khai của Microsoft so với SOAP 1.2 và theo kinh nghiệm, không dễ dàng như "Sản phẩm của chúng tôi hỗ trợ SOAP 1.2 vì vậy nó sẽ hoạt động với các dịch vụ WCF & WSHTTPBinding, không vấn đề gì!" .

trả lời 1

Có hai cài đặt bảo mật chính:

  • Bảo mật tin nhắn : tin nhắn được mã hóa một phần, Mặc định
  • Transport Security : sử dụng SSL để bảo mật kênh

Về xác thực, WSHTTPBinding sử dụng thông tin đăng nhập Windows (NTLM hoặc Kerberos) theo mặc định.

Trả lời 2

Nó phụ thuộc, nhưng một câu trả lời ngắn gọn là:

  • Bạn cần định tuyến lại các tin nhắn hoặc kiểm tra chúng: sử dụng Message Security
  • Bạn cần các kênh điểm-điểm và có thể bảo mật chúng bằng các chứng chỉ: sử dụng Transport Security
  • Máy khách và máy chủ của bạn chia sẻ cùng một nền tảng xác thực, sử dụng xác thực Windows
  • Bạn cần xác thực mở cho các máy khách bên ngoài hoặc đa nền tảng, sử dụng xác thực Tên người dùng

Về xác thực tên người dùng, có các cấu hình khác nhau. Bạn có thể lưu trữ thông tin đăng nhập trong cơ sở dữ liệu SQL, vâng (chúng tôi thực hiện điều này trong công ty của chúng tôi cho một số dịch vụ).

Một số trường hợp đơn giản: Cải thiện bảo mật dịch vụ web: Kịch bản và hướng dẫn triển khai cho WCF


Cảm ơn! Liên kết đó RẤT hữu ích quá. Vì vậy, tôi đang nghĩ đến việc sử dụng SOAP 1.2 + SSL + Auth cơ bản vì chúng tôi cần hỗ trợ khách hàng bên ngoài / bên thứ 3. Bất kỳ lời khuyên cụ thể / hãy cẩn thận trong thiết lập đó? WS2007HttpBinding có được đề xuất trên WSHttpBinding không?
DeepSpace101

1
Không biết nhiều về WS2007HttpBinding nhưng bạn có thể tìm thấy mô tả về các giao thức được hỗ trợ tại đây: msdn.microsoft.com/en-us/l Library / ms730294.aspx . Về thiết lập, bạn phải thực hiện một số phân tích để định cấu hình đúng chế độ phiên bản dịch vụ và liên kết kích thước thông báo và thời gian chờ.
JoeBilly
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.