Szukam wskazówek na temat najlepszego sposobu uwierzytelnienia się w mojej witrynie sieci Web. Obecnie mam standardową usługę WebService na .NET 3.5 i witrynę MVC, która znajduje się na szczycie tej usługi WebService.Używanie OpenID z usługą WebService: Najlepszy sposób uwierzytelnienia?
Witryna MVC korzysta z OpenID do uwierzytelniania użytkowników, a podczas fazy projektowania po prostu przekazujemy identyfikator użytkownika OpenID Claimed do usługi WebService w celu uwierzytelnienia. Oczywiście nie jest to to, co udostępnimy klientowi po uruchomieniu.
Moje pytanie brzmi następująco: Jaki jest najlepszy sposób uwierzytelnienia w usłudze WebService?
Niektóre z interfejsów API, w które grałem używają tokenów uwierzytelniania. Innym pomysłem było, aby po połączeniu z usługą WebService przekazać klientowi klucz szyfrujący, który mógłby wykorzystać do wszystkich transferów.
Myślę tutaj głośno, i znowu, każda pomoc jest bardzo doceniana! Dzięki!
...
UPDATE: Teraz ja stworzyliśmy niestandardowy SoapAuthenticationHeader który ma właściwość OpenIdURL. Jest to używane we wszystkich wezwaniach serwisowych do uwierzytelnienia użytkownika. Problem jest dwojaki:
- Jeśli haker wiedział OpenIdURL użytkownika, mogą łatwo uzyskać dostęp do usługi WebService.
- OpenIdURL jest obecnie przekazywany jako zwykły tekst.
Więc mogę przekazać klucz szyfrowania do klienta po podłączeniu do WebService i mieć klienta zaszyfrować OpenIdURL w nagłówku SoapAuthentication. Ale nie jestem pewien, jak najlepiej go o tym, że ...
Kiedy mówisz „standard serwis internetowy” masz na myśli usługi ASMX starszych lub używasz WCF? –
Jest to zbliżone do tego, na co czekam, ale byłoby wspaniale, gdyby ktoś mógł to wyjaśnić nieco dalej. http://stackoverflow.com/questions/544388/openid-authentication-and-api-access –
Używam standardowej usługi sieci Web ASMX, a MVC uzyskuje dostęp do usługi WebService jako odniesienie do usługi (co, jak myślę, jest funkcją WCF obwoluta?). –