클라이언트 응용 프로그램으로 시작해 보겠습니다. 물론 스프링 부팅을 사용하여 클라이언트 Id인 clientId – (필수) 클라이언트 ID를 최소화합니다. 비밀 – (신뢰할 수 있는 클라이언트에 필요한) 클라이언트 비밀(있는 경우). 범위 – 클라이언트가 제한된 범위입니다. 범위가 정의되지 않았거나 비어 있는 경우(기본값) 클라이언트는 범위에 의해 제한되지 않습니다. authorizedGrantTypes – 클라이언트가 사용할 수 있도록 승인된 권한 부여 유형입니다. 기본값은 비어 있습니다. 당국 – 클라이언트에 부여 된 당국 (일반 봄 보안 당국). redirectUris – 클라이언트의 리디렉션 끝점으로 사용자 에이전트를 리디렉션합니다. 절대 URL이어야 합니다.

데이터베이스에서 사용자와 권한을 얻으려면 Spring Security에 이 데이터를 얻는 방법을 알려야 합니다. 이를 위해 우리는 UserDetailsService 인터페이스의 구현을 제공해야합니다 :이 가이드는 OAuth2 및 스프링 부팅을 사용하여 «소셜 로그인»으로 다양한 일을하는 샘플 응용 프로그램을 구축하는 방법을 보여줍니다. 간단한 단일 공급자 단일 로그온으로 시작 하며 인증 공급자(Facebook 또는 Github)를 선택할 수 있는 자체 호스팅 OAuth2 권한 부여 서버까지 작동합니다. 샘플은 백 엔드에 스프링 부팅 및 스프링 OAuth를 사용하여 모든 단일 페이지 응용 프로그램입니다. 또한 프런트 엔드에서 일반 jQuery를 사용하지만 다른 JavaScript 프레임워크로 변환하거나 서버 측 렌더링을 사용하는 데 필요한 변경 사항은 최소화됩니다. 프로젝트를 다운로드하여 하드 드라이브에 적합한 어딘가에 복사하십시오. 이 자습서에서는 세 가지 다른 프로젝트를 만들 려고 하므로 어딘가에 SpringBootOAuth와 같은 부모 디렉토리를 만들 수 있습니다. OAuth2RestOperations을 이 메서드에 자동 배선했기 때문에 인증된 사용자를 대신하여 Github API에 액세스하는 데 사용할 수 있습니다. 이를 수행하여 «스프링 프로젝트»와 일치하는 프로젝트(Spring 오픈 소스 프로젝트를 저장하는 데 사용되는 조직)를 찾고 조직을 반복합니다.

성공적으로 인증할 수 있고 스프링 엔지니어링 팀에 속하지 않으려면 고유한 가치를 대체할 수 있습니다. 일치하는 일치가 없는 경우 BadCredentialexception을 throw하면 스프링 보안에서 이 것을 포착하여 401 응답으로 전환합니다. 예를 들어 포트 8086에서 실행되도록 package.json에서 : 이러한 «정적»데이터 개체 (facebook(facebook))와 facebookResource())를 모두 사용하여 @ConfigurationProperties 장식 된 @Bean 사용했습니다. 즉, 우리는 구성에 대한 접두사가 보안 대신 페이스 북입니다 약간 새로운 형식으로 application.yml을 변환 할 수 있다는 것을 의미합니다.oauth2: oktadeveloper / 에서 GitHub에서이 튜토리얼에 대한 완료 된 코드를 볼 수 있습니다. okta-스프링-부트-오츠-서버-예제.