W aplikacji Spring Boot Zabezpieczam swoje punkty końcowe REST w Spring MVC za pomocą Spring Security i Spring OAuth2. Posiadam własne serwery Authorization \ Resource, więc aby móc się komunikować z naszym API, klient (AngularJS) musi uzyskać acessToken z mojego serwera autoryzacji API.Rest, Spring własny serwer OAuth2 + dostawcy OAuth2, tacy jak Facebook, Google, Yahoo
Wszystko działa poprawnie, ale do uwierzytelnienia/autoryzacji w moim API, użytkownik musi utworzyć swoje konto i podać nam swoją nazwę użytkownika/hasło.
Chciałbym uprościć ten proces i chciałbym zaproponować użytkownikowi uwierzytelnienie na moim API za pośrednictwem usługodawców Google/Facebook/Twitter oAuth.
W tej chwili nie mam jasnego zrozumienia, jak to musi działać. Na przykład jeden z moich pomysłów - Facebook wyda własny dostępToken i przekaże go z powrotem do mojego API. Na podstawie tego tokenu dostępu mój interfejs API wyda własny klucz dostępu i przekaże go z powrotem do aplikacji klienckiej (AngularJS). Czy powinienem przekazać Facebook accessToken bezpośrednio do aplikacji klienckiej?
Jaka jest prawidłowa architektura opisywanego przypadku? Jak to działa?
Być może jest jakiś przykład demonstrujący tę architekturę w oparciu o framework Spring?
dzięki za odpowiedź. Wygląda świetnie, wypróbuję to rozwiązanie dzisiaj z mojego domowego komputera! Jedno pytanie - czy będzie współpracować z moim własnym serwerem OAuth2 zaimplementowanym za pomocą Spring OAuth? – alexanoid
Powinien działać z każdym dostawcą oauth2. Ale nie ustawiaj 'clientAuthenticationScheme' dla dostawcy Spring (domyślnie jest on wyłączony na serwerze). –
Dzięki, mam na myśli to, że mam już własny serwer OAuth2 wewnątrz tej aplikacji (ten serwer OAuth2 jest częścią tej aplikacji). Oprócz tej metody uwierzytelniania chciałbym dodać zewnętrznych dostawców oauth2. Czy to zadziała w tym przypadku? – alexanoid