2013-08-20 12 views
9

Ostatnio szukałem w OAuth2 i myślę, że rozumiem proces autoryzacji.W jaki sposób token OAuth2 (Na okaziciela) przekształca się w ACL

Jednak to, co nie wydaje się zrozumieć to, gdy autoryzacja nastąpiła i access_token i refresh_token zostały ustalone na wykonywanie połączeń, jak jest decyzja podjęta na podstawie access_token jeżeli żądanie mogą lub nie mają dostępu konkretny zasób?

tj. token jest wysyłany na serwer, aby poprosić o zdjęcie. W jaki sposób logika na serwerze określa, na podstawie danego tokena, że ​​dostęp do tego konkretnego zdjęcia jest dozwolony lub zabroniony?

Odpowiedz

3

access_token jest zwykle nieprzezroczyste artefakt. Nie ma nic nieodłącznego, co kojarzy się z zasobem (np. Określonym zdjęciem). Po uruchomieniu przepływu autoryzacji zwykle żądasz określonego scope, który definiuje wymagany dostęp. Jeśli właściciel zasobu wyraża zgodę na ten dostęp, żądanie się powiedzie. Użytkownicy mogą również odwołać dostęp.

Wszystko to jest kod specyficzny dla aplikacji. Każda aplikacja określa, jakie są ich zakresy i jak egzekwują czek.

Możesz chcieć zbadać Authorization Server jako przykład.

+0

Mając trochę więcej doświadczenia z OAuth (2), ta odpowiedź jest właściwie poprawną odpowiedzią. – Luke

4

Token dostępu jest w rzeczywistości zaszyfrowanym obiektem, ten obiekt definiuje zakresy i może ponownie ustanowić autoryzację.

Wyobraź usługodawcy co daje HMAC szyfrowanego tokena który nie ma sensu ciebie, ale punkt końcowy nie wie, jak go odszyfrować. Na deszyfrowania, musiałby informacje jak:

{"scope":"Photos", "userID":"3refefe"} 

Więc w zasadzie moduł obsługi ponad tokena dla ciebie szyfruje ten JSON (lub dowolny inny format) przedmiotu i daje zaszyfrowany token. Kiedy trafisz na punkt końcowy API, wysyła token do logiki deszyfrowania i pobiera ten obiekt JSON, a tym samym wie, do czego masz upoważnienie.

Ten obiekt może zawierać dowolny rodzaj informacji iw dowolnym formacie, w zależności od usługodawcy. Opisałem tutaj: how an OAuth provider works here. To powinno wyjaśnić podstawy minimalistycznego szkieletu OAuth.

+1

Interesujący pomysł kodowania uprawnień w tokenie. Dzięki! – Luke

+0

W końcu, które z tych dwóch apporaches jest używany? Czy możesz podać przykłady serwerów autoryzacji implementujących OAuth i sposób kodowania? – Pietrko

Powiązane problemy