[SPRING] 휴식, 봄 자신의 OAuth2 서버 + 페이스 북, 구글, 야후와 같은 OAuth2 공급자
SPRING휴식, 봄 자신의 OAuth2 서버 + 페이스 북, 구글, 야후와 같은 OAuth2 공급자
스프링 부트 애플리케이션에서는 스프링 보안과 스프링 OAuth2를 사용하여 스프링 MVC REST 엔드 포인트를 보안했다. 자신의 Authorization \ Resource 서버가 있으므로 API (API)와 comunicate하기 위해 클라이언트 (AngularJS)가 API 권한 부여 서버에서 acessToken을 얻어야합니다.
모든 것이 잘 작동하지만 내 API의 인증 / 승인을 위해서는 사용자가 계정을 만들고 사용자 이름 / 비밀번호를 제공해야합니다.
이 과정을 단순화하고 싶습니다. Google / Facebook / Twitter oAuth 제공 업체를 통해 API에 대한 사용자 인증을 제안하고 싶습니다.
지금 당장 나는 그것이 어떻게 작동해야하는지 명확하게 이해하지 못하고있다. 예를 들어 나의 아이디어 중 하나 - 페이스 북은 자신의 accessToken을 발행하고이를 내 API로 다시 전달할 것이다. 이 accessToken을 기반으로 내 API는 자체 accessToken을 발급하여 클라이언트 애플리케이션 (AngularJS)으로 다시 전달합니다. 또는 Facebook 앱 토큰을 클라이언트 앱에 직접 전달해야합니까?
기술 된 케이스에 대한 올바른 아키텍처는 무엇입니까? 어떻게 작동해야합니까?
Spring 프레임 워크에 기반한이 아키텍처를 보여주는 몇 가지 예가 있을까요?
해결법
-
==============================
1.외부 제공자에게 인증을 위임하려면 OAuth2ClientAuthenticationProcessingFilter를 사용하거나 Spring Cloud Security에서 제공되는 편리한 주석과 외부 구성을 사용할 수 있습니다. 예제 (Spring Cloud Security 홈 페이지에서) :
외부 제공자에게 인증을 위임하려면 OAuth2ClientAuthenticationProcessingFilter를 사용하거나 Spring Cloud Security에서 제공되는 편리한 주석과 외부 구성을 사용할 수 있습니다. 예제 (Spring Cloud Security 홈 페이지에서) :
Aplication.java:
@SpringBootApplication @EnableOAuth2Sso public class Application { ... }
application.yml :
spring: oauth2: client: clientId: bd1c0a783ccdd1c9b9e4 clientSecret: 1a9030fbca47a5b2c28e92f19050bb77824b5ad1 accessTokenUri: https://github.com/login/oauth/access_token userAuthorizationUri: https://github.com/login/oauth/authorize clientAuthenticationScheme: form resource: userInfoUri: https://api.github.com/user preferTokenInfo: false
귀하의 응용 프로그램이 포트 8080에서 실행되는 경우 github와 함께 작동합니다 (저는 믿습니다). 비슷한 구성은 facebook, cloud foundry, google 및 다른 OAuth2 공급자와 함께 작동합니다.
-
==============================
2.자신의 OAuth2 또는 OAuth2 + JWT 토큰의 경우 다음 질문을 살펴보십시오. Spring Security OAuth2와 Spring Social 통합 특히 @rbarriuso가 제공 한 대답. 제 3 자 OAuth2 제공자와의 성공적인 인증 후 자신의 SocialAuthenticationSuccessHandler를 제공하고 자신의 oauth2Token으로 리디렉션을 보내야합니다.
자신의 OAuth2 또는 OAuth2 + JWT 토큰의 경우 다음 질문을 살펴보십시오. Spring Security OAuth2와 Spring Social 통합 특히 @rbarriuso가 제공 한 대답. 제 3 자 OAuth2 제공자와의 성공적인 인증 후 자신의 SocialAuthenticationSuccessHandler를 제공하고 자신의 oauth2Token으로 리디렉션을 보내야합니다.
즉,이 기술에 의존하지 않는 솔루션의 주된 아이디어는 타사 OAuth2 공급자와의 성공적인 인증 후에 사용자 고유의 액세스 토큰을 발급하여 사용자에게 제공하는 것입니다.
from https://stackoverflow.com/questions/29547671/rest-spring-own-oauth2-server-oauth2-providers-like-facebook-google-yahoo by cc-by-sa and MIT license