2009-12-17 33 views
5

Tôi đang cố gắng hiểu cách cửa sổ xác thực/mã hóa hoạt động với NetTcpBinding trong WCF. Tôi cần biết chính xác thuật toán mã hóa nào được sử dụng để mã hóa dữ liệu đi qua dây (và một số tài liệu để chứng minh nó). Cửa sổ xác thực/mã hóa vẫn hoạt động được nếu máy khách và máy chủ không nằm trong miền?Xác thực/Mã hóa Windows trong WCF Với NetTcpBinding

Trả lời

6

NetTcpBinding sử dụng thông tin đăng nhập Windows yêu cầu người gọi và dịch vụ phải ở trên cùng một miền - hoặc ít nhất là trên các miền tin cậy lẫn nhau. Nếu không, máy chủ sẽ không thể xác minh thông tin đăng nhập Windows và sẽ từ chối cuộc gọi dịch vụ.

Đối với mã hóa: bạn thậm chí có thể chọn và chọn mã bạn muốn! :-) TripleDES, AES - bạn đặt tên cho nó, với độ dài khóa khác nhau.

Xem bài viết Fundamentals of WCF Security - nó nói về tất cả các khía cạnh về bảo mật và mã hóa; cũng xem Tài liệu MSDN trên số Securing Services để xem chi tiết hơn; một tổng quan tốt có thể được tìm thấy here hiển thị các thuộc tính của phần tử bảo mật vận chuyển cơ bảnHttp.

2

Năm ngoái, tôi phải triển khai hệ thống phân tán bằng cách sử dụng wcf yêu cầu một cơ chế vừa an toàn vừa có hiệu năng trên tất cả các lớp của hệ thống. Chúng tôi quyết định tạo kiến ​​trúc bảo mật của riêng mình bằng cách tạo mã thông báo được mã hóa nhị phân. Mã thông báo được mã hóa chứa tất cả các quyền mà người dùng đã cung cấp.

Vì vậy, ví dụ: người dùng sẽ đăng nhập vào hệ thống và nếu được xác thực thành công, nó sẽ nhận được mã thông báo được mã hóa trở lại. Mã thông báo này được lưu trữ cục bộ trên máy khách web. Tất cả các yêu cầu khác của người dùng sẽ chứa mã thông báo đó. Mã thông báo được sử dụng ở một số cấp độ của kiến ​​trúc. Máy chủ web sẽ sử dụng nó để quyết định những yếu tố trực quan nào để bật hoặc tắt. Vì lớp dịch vụ được tiếp xúc với internet, mỗi cánh cửa mở sẽ kiểm tra mã thông báo để xác thực và kiểm tra xem mã thông báo đó có sự cho phép thích hợp để thực hiện một tác vụ cụ thể hay không. Lớp nghiệp vụ có thể kiểm tra lại để có quyền cụ thể hơn được bao gồm trong mã thông báo.

Những lợi thế:

  • Nó không quan trọng nếu chúng ta đang sử dụng NetTcpBinding hoặc bất kỳ loại khác của ràng buộc (và chúng tôi đã sử dụng nhiều hơn một loại ràng buộc).
  • Chúng tôi đã lưu rất nhiều chuyến đi vòng đến cơ sở dữ liệu
  • Chúng ta có thể sử dụng các thẻ tương tự trên các nền tảng khác nhau

Tôi biết nó có thể không trả lời câu hỏi cụ thể của bạn, nhưng nó sẽ có thể cung cấp cho bạn một số cho thực phẩm cho suy nghĩ trong khi bạn vẫn đang quyết định về kiến ​​trúc bên trong lớp của hệ thống của bạn.

+0

Điều này nghe thật thú vị. Bạn có bất kỳ ví dụ hoặc tài liệu tham khảo bạn có thể chỉ cho tôi để thực hiện điều này? Dữ liệu đăng nhập ban đầu có được mã hóa không? (tên người dùng và mật khẩu) – Lewray

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