2011-07-18 12 views
11

Czekam na Twitterze realizacji oauth proponuje tutaj:OAuth - tajny klucz klienta w aplikacji?

https://dev.twitter.com/docs/auth/oauth 

i OAuth biblioteki jak drogowskaz:

http://code.google.com/p/oauth-signpost/ 

oboje Dyskusja na temat korzystania z tajemnicy klienta podczas przepływu OAuth, co oznacza dla z mojej aplikacji klienckiej, będę musiał przechowywać sekret w samej aplikacji. Jest to prawdopodobnie ryzykowne, ponieważ ktoś może wyłapać tajemnicę z mojej aplikacji. Czy są jakieś metody dotyczące przechowywania sekretu w mojej aplikacji? Czy nie rozumiem przepływu Oautha?

Dzięki

Odpowiedz

3
Nie

ma żadnych sposobów przechowywania poświadczeń klienta w natywnej aplikacji JavaScript lub bez nich praktycznie publicznego. Również umieszczanie tych danych uwierzytelniających na serwerze proxy i rozmowa z klientem na serwerze (aby nie ujawnić poświadczeń) tak naprawdę nie rozwiązuje niczego. Teraz masz problem z uwierzytelnieniem klienta na serwerze proxy.

Właściwe rozwiązanie to specjalne wsparcie dla aplikacji natywnych dostarczanych przez usługę OAuth. OAuth 2.0 używa wstępnie zarejestrowanych identyfikatorów URI przekierowania i innych technik w celu przeprowadzenia racjonalnej weryfikacji tożsamości klienta dla takich klientów.

+2

Czy mógłbyś to rozwinąć? Miałem szybki przegląd projektu - http://tools.ietf.org/html/draft-ietf-oauth-v2-22#section-9 - oznacza to, że aplikacje natywne nie używają "tajemnicy klienta", gdy używając OAuth? Czy mógłbyś opisać wymagany przepływ? –

+3

Aplikacje natywne nie powinny używać tajnego klucza klienta, ponieważ nie ma on prawdziwej wartości i tworzy fałszywe poczucie bezpieczeństwa. –

Powiązane problemy