2011-05-08 8 views
111

Próbuję zaimplementować przepływ Resource Owner & Password Credentials ze specyfikacji OAuth 2. Mam problem ze zrozumieniem wartości token_type, która zostanie odesłana z prawidłową odpowiedzią. W spec wszystkie przykłady pokazują "token_type":"example" ale mówi, powinien on byćCo to są znaczniki na okaziciela i token_type w OAuth 2?

token_type wymagane. Typ tokena wydany zgodnie z opisem w Section 7.1. Wartość nie jest zależna od wielkości liter.

Czy ktoś może mi to wyjaśnić?

Odpowiedz

28

Każdy może zdefiniować "typ tokena" jako rozszerzenie OAuth 2.0, ale obecnie najczęściej jest token typu "nośnik".

https://tools.ietf.org/html/rfc6750

Zasadniczo to, co jest za pomocą Facebook. Ich implementacja jest nieco opóźniona od najnowszej specyfikacji.

Jeśli chcesz być bardziej bezpieczny niż Facebook (lub tak bezpieczny jak OAuth 1.0, który ma "podpis"), możesz użyć tokena typu "mac".

Jednak będzie to trudny sposób, ponieważ specyfikacja Mac nadal szybko się zmienia.

https://tools.ietf.org/html/draft-ietf-oauth-v2-http-mac-05

129

token_type jest parametrem w token dostępu generować połączenia do serwera autoryzacji, który zasadniczo reprezentuje jaki sposób access_token zostaną wygenerowane i przedstawione dla połączeń dostępu do zasobów. Podajesz token_type w wywołaniu dostępu tokena dostępu do serwera autoryzacji.

Jeśli dasz Bearer (domyślnie w większości implementacji), co stanowi access_token jest generowane i wysyłane z powrotem do Ciebie. Na okaziciela można po prostu rozumieć "dać dostęp posiadaczowi tego tokena". Jeden ważny token i bez pytania. Z drugiej strony, jeśli zdecydujesz Mac i sign_type (domyślnie hmac-sha-1 na większości implementacji), token dostępu jest generowane i przechowywane w tajemnicy w Key Manager jako atrybut, a zaszyfrowany tajny jest odsyłany jako access_token

Tak można użyj własnej implementacji token_type, ale to może nie mieć większego sensu, ponieważ deweloperzy będą musieli postępować zgodnie z procesem, a nie ze standardowymi implementacjami OAuth.

+12

Znajduję "dać dostęp posiadaczowi tego tokena" ułatwia zrozumienie. Jest to odpowiednik wystawienia czeku "daj pieniądze na okaziciela czeku". – NVM

+0

@NVM Dzięki za sugestię, to na pewno ma sens. Zaktualizowałem to samo. –

2

Mozilla MDN Header Information

okaziciela Reklamowe
tokenu zabezpieczeń z własności, że każda strona w posiadaniu tokena (a „na okaziciela”) mogą korzystać z tokena w jakikolwiek sposób, że jakakolwiek inna partia w posiadaniu może. Korzystanie z tokena na okaziciela nie wymaga okaziciela do udowodnienia posiadania klucza kryptograficznego (dowód posiadania).

Token na okaziciela lub token odświeżania jest tworzony przez serwer uwierzytelniania. Kiedy użytkownik uwierzytelnia twoją aplikację (klienta), serwer uwierzytelnienia następnie przechodzi i generuje dla Twojego Tokenu na Okaziciela (tokena odświeżania), który możesz następnie wykorzystać do uzyskania tokena dostępu.

Token na okaziciela jest zwykle jakąś tajemniczą wartością tworzoną przez serwer uwierzytelniania, nie jest przypadkowa, ponieważ jest tworzony na podstawie użytkownika dającego dostęp i klienta, do którego aplikacja uzyskuje dostęp.