inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

스프링 시큐리티 OAuth2

OAuth 2.0 Social Login 연동 구현 (4)

restfual api 개발할때

563

장대영

작성한 질문수 5

0

안녕하세요 선생님. 지금가지 선생님의 강의를 바탕으로 oauth 를 사용하는 프로젝트를 구축하는데 있어 궁금점이 생겨 질문드립니다.

  1. 소셜로그인 인증 챕터 부분에서는 전형적인 session 인증 방식인데 restful api 서버 개발시에는 어떻게 설정해야할까요? 대안으로 찾아본바 successHandler 를 커스텀하게 설정하여 jwt 로 암호화해서 서버 api로 리다이렉트 시 쿼리파라미터에 jwt를 넣어 프론트에게 jwt 를 전달하는데 이 방식이 맞나요?

  2. 또한 강의에서 restfual api 에 대해 다루신다면 어느 챕터에서 확인할 수 있을까요?

rest oauth api spring-boot java spring

답변 1

1

정수원

해당 강의는 Spring Security OAuth2 강좌입니다.

OAuth2 는 클라이언트가 사용자를 대신해서 인가서버로부터 권한을 부여받아 api 서버로부터 특정한 자원을 요청하도록 하는 것이 주요 목적입니다.

소셜 로그인도 네이버나 구글로부터 클라이언트가 액세스 토큰을 발급받고 다시 사용자정보를 가지고 와서 인증처리까지 하면 OAuth2 의 흐름은 1차적으로 완료된 것입니다.

만약 OAuth2 에 의한 인증처리를 하고 이후의 인증 상태유지를 하는 것을 세션을 통해 할 것인지 아니면 JWT 와 같은 토큰 방식으로 할 것인지는 선택사항입니다.

즉 OAuth2 와는 직접적인 관련은 없습니다.

장대영 님께서 말씀하신 successHandler 에서 jwt 를 생성해서 응답 헤더에 담아 전달하고 클라이언트가 restful api 통신 시 jwt 를 서버에 보내어 토큰을 검증하고 인증상태를 계속 유지하는 개념은 OAuth2 와는 관련이 없고 JWT 를 연계하는 토큰인증 방식이라 할 수 있습니다

다만 참고하실 것은 본 강의의 섹션 중에서 10 ~ 15 섹션인 OAuth 2.0 Resource Server 가 있습니다.
이 섹션에서 OAuth2 로 사용자의 인증처리가 이루어진 후 jwt 를 서명 및 발급해서 클라이언트로 응답하고 다시 클라이언트가 jwt 를 요청 헤더에 담아 서버에 전달하는 식의 인증방식과 인가서버에서 발행한 jwt 토큰을 가지고 리소스 서버로 접근 및 특정자원을 얻기 위해서 거쳐야 하는 여러 방법들에 대해 설명하고 있습니다

OAuth2 를 통해 발급받은 토큰을 가지고 실제 리소스 서버가 아닌 클라이언트 서버사이드에서 활용하는 부분은 가급적 사용하는 것을 권하지 않는 것으로 알고 있습니다

본 강의는 스프링 시큐리티에서 구현한 OAuth2 표준 기술에 대한 내용을 전달하고 있습니다.

OAuth2 을 벗어난 JWT 자체적인, 독립적인 인증이나 권한을 다루는 것이 아닌 인가서버에서 발행한 JWT 토큰을 사용해서 리소스 서버와의 api 통신을 활용하는 방법에 대해 설명하고 있습니다

authorization-server 라이브러리 질문이 있습니다.

0

73

1

loadUser 중 Missing attribute 'preferred_username' in attributes 에러 발생

0

73

2

JWT 조회 에 대한 질문

0

69

1

password grant 방식 에러 응답

0

85

3

FormLoginConfigure에서 생성하는 필터

0

74

2

현업에서 springboot를 3.5.5 를 사용해서 공부중인데...

0

282

2

Jdbc 관련 강의 및 깃헙 문의

0

74

1

OAuth2AuthorizedClient 이해 및 활용 강의 내용 질문

0

207

1

UserInfo 엔드포인트 요청 실습

0

71

1

RFC 문서에서의 AccessToken 발급 방식 궁금한점

0

147

1

강의자료.zip 를 다운로드 받았는데 압축이 풀리지 않습니다. 확인 부탁드려요

0

135

2

OIDC SSO 관련 질문 입니다.

0

129

1

AuthenticationEntryPoint 강의 누락 문의

0

119

1

cors설정방법

0

114

1

jwt decoder 토큰 검증 시 질문

0

217

1

클라이언트에서 userinfo 엔드포인트 호출 시 질문

0

183

2

JOSE 구성요소의 api에 관한 질문

0

137

2

스프링 부트 3버전으로 따라가시는 분들 참고하세요

1

523

1

CustomOAuth2AuthenticationFilter 구현 중 질문

0

143

2

AuthenticationManager 생성시점

0

115

1

FormLogin과 Oauth2Client 둘 중 사용하는 시점

0

124

1

postman userinfo 엔드포인트 질문

0

129

2

강의 수강신청하고 듣기 전입니다 질문있습니다.

0

112

1

인증 코드를 통해 발급 받은 토큰의 관리

0

198

1