Mam kilka pytań odnośnie OAuth2, chciałbym też powiedzieć, że przeczytałem sporo artykułów, na te tematy, ale dalej nie jestem wszystkiego pewien (będę używał terminologii OAuth2):
1. Czym są scopes? Znalazłem informację, że są one wykorzystywane do ograniczenia uprawnień użytkownikowi (np do tworzenia postów). Tylko w chwili, gdy wykorzystuję Spring Security i role, to to się wydaje jakoś mało pożyteczne. W sensie, jedynie co mi przychodzi do głowy, to żeby poinformować użytkownika do czego ma prawa. Tylko jak w takim razie, wykorzystując Spring Security mógłbym dynamicznie (w zależności od tego, jakie role ma użytkownik o podanej nazwie użytkownika i haśle) dodać odpowiednie scopes? No chyba, że źle rozumiem i scopes są inaczej używane. Tylko jak?
2. O ile dobrze zrozumiałem, to: authorizedGrantTypes przedstawia flow w jaki sposób może być otrzymany token. Jeżeli tworzę system który implementuje OAuth2, jako REST Api, to jaki flow powinienem wybrać? Jeżeli Authorization server i Resource server, to jedna aplikacja, to chyba nie ma znaczenia (jeśli chodzi o bezpieczeństwo) czy użyję password czy client_credentials. Natomiast gdyby to były dwa osobne systemy, to raczej password byłby bardziej odpowiedni, tak? Client by wtedy dodawał Headera Authorization, tak?
3. Czego powinienem używać w Spring Security do autoryzacji? Ról czy Scope?