2012-06-13 23 views
8

Tôi nghĩ rằng có một khoảng trống trong mô hình xác thực WCF tinh thần của tôi, hy vọng ai đó có thể giúp tôi điền vào.WCF - Là chứng chỉ dịch vụ cần thiết để xác thực khách hàng?

Vì vậy, tôi đang tạo một dịch vụ WCF và muốn khách hàng xác thực bằng chứng chỉ và tin nhắn- mức độ bảo mật. Tôi muốn dịch vụ xác thực các thông tin này bằng cách sử dụng chuỗi tin cậy để tôi không cần mỗi chứng chỉ ứng dụng khách được cài đặt trên dịch vụ. Hiện tại, tôi không quan tâm đến việc có dịch vụ xác thực cho khách hàng.

Dưới đây là sự hiểu biết của tôi về những gì cần thiết để làm điều này:

  1. Các khách hàng cần một giấy chứng nhận có chữ ký của CA đó là đáng tin cậy ở phía bên dịch vụ.
  2. Dịch vụ cần cài đặt CRL cho CA đó.
  3. Cấu hình dịch vụ phải bật bảo mật thư, chỉ định clientCredentialType = "Chứng chỉ" và chuỗi tin cậy để xác thực chứng chỉ ứng dụng khách.
  4. Cấu hình ứng dụng khách cần bật bảo mật thư, chỉ định clientCredentialType = "Chứng chỉ" và hành vi điểm cuối cho biết cách tìm chứng chỉ ứng dụng khách trong cửa hàng.

Máy khách gửi yêu cầu đến dịch vụ, gửi chứng chỉ của nó. Dịch vụ thấy rằng chứng chỉ của khách hàng được ký bởi CA đáng tin cậy của nó và cho phép yêu cầu thông qua.

Bây giờ, tất cả các hướng dẫn của quá trình này tôi đã tìm thấy cũng bao gồm một bước tạo chứng chỉ cho dịch vụ. Không ai trong số họ giải thích những gì này là cho, đó là ném tôi. Tại sao chứng chỉ dịch vụ cần thiết nếu tôi chỉ muốn xác thực khách hàng?

Trả lời

7

Bạn nói đúng. Về lý thuyết không yêu cầu chứng chỉ máy chủ, trong thực tế, wcf bắt buộc bạn sử dụng một chứng chỉ. Tin tốt là bạn nên sử dụng chứng chỉ giả cho máy chủ và cũng đặt ProtectionLevel thành SignOnly. Tôi đề nghị đọc this article mà nói về một kịch bản tương tự và chủ yếu là có liên quan.

+0

Tuyệt vời, cảm ơn bạn - "Vì WCF nói vậy" làm việc cho tôi. =) – user1454265

+0

Bạn là một vị thần ... cảm ơn vì bài viết đó – DdW