2011-09-20 14 views
7

Tôi hiện đang xem xét việc tạo một ứng dụng để triển khai trên đám mây xanh. Lý do chính để xem xét Azure trên Amazon là dịch vụ kiểm soát truy cập. Tôi muốn chấp nhận nhiều loại chứng chỉ khác nhau nhất có thể cho ứng dụng của mình, đặc biệt là Facebook.Làm thế nào để một ứng dụng khách WPF xác thực với một dịch vụ WCF trên Azure?

Một số người dùng sẽ sử dụng ứng dụng dựa trên HTML, một số khác là ứng dụng khách WPF. Câu hỏi đặt ra là, làm cách nào để tôi xác thực khách hàng bằng bất kỳ nhà cung cấp nào họ muốn và sau đó liên lạc với dịch vụ WCF. Tôi đoán tôi cần sử dụng thành phần trình duyệt web trong ứng dụng của mình hoặc bật trình duyệt bên ngoài (lý tưởng hỗ trợ cả hai tùy chọn cho người dùng hoang tưởng), nhưng tôi không rõ cách sử dụng kết nối đó cho dịch vụ WCF .

+1

+1 Câu hỏi thú vị. Tôi không chắc là có một câu trả lời dễ dàng, nhưng tôi sẽ xem câu trả lời này. –

+1

Chỉ tìm thấy http://msdn.microsoft.com/en-us/IdentityTrainingCourse_SilverligthAndIdentity2010 có thể hữu ích, tôi đang đọc nó ngay bây giờ. – ForbesLindesay

+0

Rất tiếc, ví dụ về trình duyệt sử dụng tên người dùng và mật khẩu để không hỗ trợ facebook – ForbesLindesay

Trả lời

0

Cân nhắc việc tách xác thực của người dùng thành ứng dụng khỏi xác thực giữa ứng dụng và dịch vụ WCF.

Để bảo mật quyền truy cập vào dịch vụ WCF, bạn có thể sử dụng ACS để thực hiện xác thực bằng cách sử dụng Mã Web đơn giản (SWT). Có một số ví dụ về điều này có sẵn thông qua công cụ tìm kiếm bạn chọn.

Rất tiếc, tôi không thể cung cấp cho bạn ví dụ cụ thể hơn vào lúc này. Tôi di động với thiết bị i và do đó có quyền truy cập hạn chế vào các công cụ.

+0

Dịch vụ WCF cần phải biết ai là người dùng và có thể đảm bảo tính xác thực của nó, tôi không hoàn toàn rõ ràng về cách giải pháp của bạn nhằm cung cấp điều đó. SWT có xác thực ứng dụng hoặc người dùng không? – ForbesLindesay

0

Tôi nghĩ ý định của bạn là một số cách Xác thực/Ủy quyền người dùng cho dịch vụ WCF này đúng không? Trong trường hợp này, bạn có thể xem mẫu "ứng dụng điện thoại Windows 7": http://msdn.microsoft.com/en-us/library/gg983271.aspx. Ở đây bạn sẽ thấy mẫu này đang sử dụng giao thức "javascriptnotify".

Để kiểm soát trình duyệt Web WPF có nhiều bài viết mô tả cách nhận thông báo từ javascript trong DOM.

Bằng cách này bạn có thể nhận được mã thông báo cho ứng dụng WPF của mình và sau đó bạn sẽ cần sử dụng cùng một mã thông báo để xác thực với dịch vụ WCF.

Trong trường hợp của Ứng dụng web, bạn có thể lấy mã thông báo từ mô-đun WSFam. Một cách để thực hiện việc này có thể là đăng ký sự kiện SecurityTokenReceived trên WSFam.

Cách này cho cả hai trường hợp, bạn có thể kết thúc bằng mã thông báo SAML.

Sau đó, bạn có thể tạo SAML TokenProvider tùy chỉnh của riêng mình cho WCF và sử dụng mã thông báo SAML mà bạn nhận được từ ACS để nói chuyện với máy chủ của bạn.

0

Điều bạn đang tìm kiếm được gọi là 'liên kết hoạt động'. Xem this question

Thông thường, khách hàng web của bạn sẽ sử dụng biểu mẫu thụ động, trong đó họ được chuyển hướng đến trang đăng nhập thuộc sở hữu của Dịch vụ mã bảo mật. Bạn không thể chuyển hướng ứng dụng wpf hoặc winforms, vì vậy ứng dụng của bạn cần phải thực hiện các chuyển động mà trình duyệt của bạn thực hiện phía sau hậu trường, bao gồm thương lượng và lưu bộ nhớ bảo mật mà bạn nhận được từ STS và sau đó trình bày nó trên mỗi yêu cầu.