Obie są koncepcyjnie różne rzeczy:
- „Reklamowe Uwierzytelnianie dostępu” określa protokół opisujący, w jaki sposób (ewentualnie długowieczne) token powinien być prezentowane na serwer bezpieczny sposób. Nie mówi nic o tym, skąd pochodzi tenken ani jak należy go interpretować.
- "Przyznanie haseł z hasłem" jest częścią pełnoprawnego przepływu OAuth, opisującego sposoby uzyskania uzyskania (zazwyczaj krótkotrwałego) tokena.
W pewnym sensie można użyć funkcji Udzielanie poświadczeń haseł, aby uzyskać token za pomocą protokołu OAuth, a następnie użyć tego tokenu w nagłówku autoryzacji Token
, aby uzyskać do niego dostęp.
Pojawia się pytanie - czy warto wykonać dodatkowy obieg wymiany danych (stałych i tajnych) dla tokena (tymczasowego), kiedy zamiast tego możemy użyć tokena (stałego i tajnego) przechowywanego w aplikacji do autoryzuj natychmiast.
Jak widzę, istnieją dwie potencjalne korzyści płynące z korzystania z pełnego przepływu OAuth. Po pierwsze, umożliwia naturalne dodawanie innych sposobów autoryzacji stronom trzecim. Po drugie, pozwala unieważnić token w dowolnym momencie i wymusić ponowną autoryzację za pomocą tych innych środków (oczywiście jeśli je wdrożysz) bez konieczności wymyślania jakichkolwiek kół.
Z drugiej strony, zawsze można dodać dodatkowe części "generujące token" później, gdy są potrzebne. Tak więc, jeśli twój obecny plan jest w stanie kodować poświadczenia w kodzie, podejrzewam, że prawdopodobnie lepiej jest polegać na autoryzacji Token
.
jest nie tylko jeden wniosek krótsza, może być również nieco bardziej bezpieczny niż uwierzytelnianie Bearer
stosowanych w OAuth: jeśli atakujący wącha się Bearer
żeton, to oni (zazwyczaj) uzyskać pełny tokenu dostępu do serwera do momentu jej wygaśnięcia . Nie jest tak w przypadku tokenów Token
(normalnie). Oczywiście nie ma to znaczenia, jeśli atakujący może wydobyć wspólny sekret z aplikacji.
Tak też myślałem. Czy zdarzyło Ci się mieć jakieś źródło wyjaśniające, że nie ma żadnej użytecznej różnicy między Uwierzytelnianiem Tokenem HTTP a Udzielaniem Oświadczeń Hasła OAuth 2.0? – hattenn
Właściwie to jest zdrowy rozsądek: możesz pomyśleć o "tokenie HTTP" w taki sam sposób, jak o kombinacji 'Username: Password' ... w obu przypadkach klient musi utrzymywać je pomiędzy żądaniami i wysyłać je każde żądanie. Ponieważ nie wygasają, nigdy nie wiesz, czy ktoś je ukradł i użył po drodze. Na ręce można to łatwo wykryć za pomocą kodu autoryzacyjnego, który jest uważany za dużo bezpieczniejszy niż którykolwiek z poprzednich. Być może znajdziesz tu coś interesującego: http://softwareengineering.stackexchange.com/a/297997/238916 –
Rozumiem to, ale w ogóle nie mówię o udzieleniu zgody, mówię tylko o przyznaniu hasła Referencja kontra token Dostęp do uwierzytelniania. – hattenn