2011-09-20 15 views
7

Obecnie rozważam stworzenie aplikacji do wdrożenia w chmurze lazurowej. Głównym powodem rozważenia usługi Azure przez Amazon jest usługa kontroli dostępu. Chcę zaakceptować jak najwięcej różnych typów referencji dla mojej aplikacji, szczególnie na Facebooku.W jaki sposób aplikacja WPF klienta uwierzytelnia się w usłudze WCF na platformie Azure?

Niektórzy użytkownicy będą używać aplikacji HTML, inni aplikacji klienta WPF. Pytanie brzmi, w jaki sposób uwierzytelnić klienta za pomocą dowolnego usługodawcy, który chce, a następnie komunikować się z usługą WCF. Zgaduję, że muszę użyć komponentu przeglądarki internetowej w mojej aplikacji lub pop-up zewnętrznej przeglądarki (najlepiej obsługuje obie opcje dla użytkowników paranoidalnych), ale nie wiem, jak użyć tego połączenia do usługi WCF .

+1

+1 Interesujące pytanie. Nie jestem pewien, czy istnieje łatwa odpowiedź, ale będę ją oglądał. –

+1

Właśnie znalazłem http://msdn.microsoft.com/en-us/IdentityTrainingCourse_SilverligthAndIdentity2010, który może okazać się przydatny, czytam go teraz. – ForbesLindesay

+0

Niestety, przykład przeglądarki poza przeglądarką używa nazwy użytkownika i hasła, więc nie obsługuje Facebooka. – ForbesLindesay

Odpowiedz

0

Rozważ oddzielenie uwierzytelniania użytkownika od aplikacji z uwierzytelniania między aplikacją i usługą WCF.

Aby zabezpieczyć dostęp do usługi WCF, można użyć ACS do wdrożenia uwierzytelniania za pomocą prostego tokena internetowego (SWT). Istnieje kilka przykładów tego, dostępnych w wybranej przez ciebie wyszukiwarce.

Przykro mi, ale nie mogę teraz podać bardziej konkretnego przykładu. Jestem mobilny z i-urządzeniem i dlatego mam ograniczony dostęp do narzędzi.

+0

Usługa WCF musi wiedzieć, kim jest użytkownik, i być w stanie zagwarantować jej autentyczność. Nie jestem całkiem pewien, w jaki sposób twoje rozwiązanie ma to zapewnić. Czy SWT uwierzytelnia aplikację lub użytkownika? – ForbesLindesay

0

Wydaje mi się, że twoim zamierzeniem jest, w jaki sposób uwierzytelniać/autoryzować użytkowników tej usługi WCF, prawda? W takim przypadku możesz przejrzeć przykład "Windows 7 phone app": http://msdn.microsoft.com/en-us/library/gg983271.aspx. Tutaj zobaczysz, że ten próbka używa protokołu "javascriptnotify".

Dla kontroli WPF WebBrowser istnieje wiele artykułów, które opisują, jak otrzymywać powiadomienia z javascript w DOM.

W ten sposób można uzyskać token dla aplikacji WPF, a następnie trzeba użyć tego samego tokena do uwierzytelnienia w usłudze WCF.

W przypadku aplikacji internetowej można uzyskać token z modułu WSFam. Jednym ze sposobów na to może być rejestracja zdarzenia SecurityTokenReceived na WSFam.

W ten sposób dla obu scenariuszy możesz otrzymać token SAML.

Następnie możesz stworzyć własny niestandardowy token SAML dla WCF i użyć tokena SAML, który dostałeś z ACS, aby porozmawiać z twoim serwerem.

0

To, czego szukasz, to "aktywna federacja". Zobacz this question

Zazwyczaj klienci WWW będą używać formularza pasywnego, w którym są przekierowywani na stronę logowania należącą do usługi Token Security. Nie można przekierować aplikacji typu wpf lub winforms, więc aplikacja musi wykonywać ruchy przeglądarki, które wykonuje za kulisami, w tym negocjować i buforować token bezpieczeństwa otrzymywany od STS, a następnie prezentować go w każdym żądaniu.

Powiązane problemy