Uwierzytelnianie oparte na tokenach w WCF

Tworzę stronę internetową, która będzie zawierać zarówno strony ASP.NET, jak i aplet Flash. Chcę enkapsulować moją logikę biznesową w usłudze WCF, która zostanie ujawniona za pośrednictwem dwóch punktów końcowych: Jedna dostępna przez Internet za pośrednictwem HTTP (S), do użytku przez klienta Flash, a druga dostępna w centrum danych do użytku przez serwery aplikacji . Jeśli to nie wygląda na dobre, zatrzymaj mnie tutaj; w przeciwnym razie przejdę dalej ...

Pytanie brzmi, jak uwierzytelnić żądania pochodzące z klienta Flash. Ponieważ nie chcę przechowywać hasła użytkownika w pliku cookie przeglądarki, nie chcę wysyłać hasła przy każdym żądaniu i nie chcę korzystać z HTTPS po wstępnym zalogowaniu, planuję użyć tokena oparty na systemie uwierzytelniania. Nie chcę również, aby użytkownik musiał logować się do klienta Flash po zalogowaniu się do witryny, więc planuję użyć Javascript, aby przekazać token do klienta Flash, gdy się uruchomi.

Wiem, że WCF obsługuje używanie wbudowanej struktury zabezpieczeń .NET Framework (System.Security) w celu wymuszenia kontroli dostępu i chciałbym to wykorzystać.

Pytanie brzmi:Jak przekazać token do usługi WCF, gdy jest wywoływany przez Flash i jak mogę przetworzyć token na serwerze?

WCF ma tryb uwierzytelniania „wydany token”, ale wydaje się, że jest przeznaczony do użycia w pełnowymiarowym scenariuszu federacji z usługą bezpiecznego tokena i tokenami SAML - trochę bardziej złożoną, czego naprawdę chcę. Można użyć tego trybu z własnymi żetonami „prostego losowego ciągu”? Jeśli tak to jak? Pamiętaj, że musi być kompatybilny z Flash.Mogłem potencjalnie przekazać token w nagłówku (nagłówek SOAP lub nagłówek HTTP). W takim przypadku, gdy już ustalę, który użytkownik składa żądanie, jak mogę poinformować framework, aby sprawdzenia systemu System.Security działały?Czy istnieje zupełnie inne podejście, które powinienem rozważyć? Wszystko, co pozwala uniknąć wysyłania haseł w każdym żądaniu, pozwala mi korzystać z System.Security i działa z Flash.

questionAnswers(1)

yourAnswerToTheQuestion