inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

스프링 시큐리티 OAuth2

Spring Authorization Server - 인가서버 시작하기

code 를 accessToken 으로 교환시 질문입니다.

138

에욱

작성한 질문수 17

0

인가서버로부터 code 발급받고 이 코드를 accessToken으로 교환하기 위해 서버에 요청할때 이 순간은 인증을 못받은 상태 아닌가요? accessToken을 발급받아야 클라이언트가 인증을 받은거고 그리고 이때도 클라이언트가 인증을 받아서 authorizedClient 객체가 생기는거지 인증객체가 생기는건 아닐텐데 강의 37분30초쯤에는 code를 accessToken으로 바꿔달라는 요청할때 왜 인증객체가 생성돼있나요? authorization server api를 사용했기때문에 마지막에 위치한 인가서버 필터에 도달하기 위해 다르게 처리되는건가요?

java spring spring-boot oauth

답변 1

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다.

에욱님, 스프링 시큐리티 OAuth2 강의를 수강하시다 발생한 질문에 대해 답변 드리겠습니다.

OAuth2 인증 과정에 대해 궁금증이 있으신 것 같습니다. 기본적으로, 클라이언트가 인가 코드(Authorization Code)를 발급받은 후, 이를 인가 서버에 전송하여 액세스 토큰(Access Token)으로 교환하는 과정을 거치게 됩니다. 이 과정에서 몇 가지 중요한 개념들이 있습니다:

  1. 인가 코드 발급: 클라이언트가 인가 코드(Authorization Code)를 받으면 아직 인증된 상태는 아닙니다. 이 시점에서는 단지 인가 서버에 의해 인증 후 발급된 코드만 가진 상태입니다.

  2. 액세스 토큰 요청: 클라이언트는 이 인가 코드를 사용하여 인가 서버에 액세스 토큰을 요청합니다. 이때 클라이언트는 액세스 토큰을 받기 전까지는 완전한 인증 상태가 아닙니다. 액세스 토큰을 통해 리소스 서버에 접근할 수 있는 권한이 부여됩니다.

  3. AuthorizedClient 객체: 스프링 시큐리티에서는 클라이언트가 이러한 프로세스를 통해 인증을 완료하고 액세스 토큰을 받았을 때, authorizedClient 객체가 생성됩니다. 이 객체는 클라이언트와 이를 통해 인증된 사용자의 정보 및 액세스 토큰을 포함합니다.

강의에서 언급한 대로, 인가 코드 교환 시점에 인증 객체가 생성되는 것에 대해 질문 주셨습니다. 기본적으로, 스프링 시큐리티는 OAuth2 인증의 각 단계에서 내부적으로 인증 객체를 유지 및 관리합니다. 따라서 인가 서버와의 상호작용 및 스프링 시큐리티의 설정에 따라 코드가 교환되는 순간에 필요한 인증 객체가 생성될 수 있습니다.

관련하여 Spring Security OAuth2 로그인 인증 흐름이 잘 설명되어 있는 공식 문서를 참고하시어 복잡할 수 있는 인증 흐름을 보다 자세히 이해하시기를 추천드립니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

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

0

74

1

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

0

74

2

JWT 조회 에 대한 질문

0

69

1

password grant 방식 에러 응답

0

85

3

FormLoginConfigure에서 생성하는 필터

0

75

2

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

0

282

2

Jdbc 관련 강의 및 깃헙 문의

0

75

1

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

0

207

1

UserInfo 엔드포인트 요청 실습

0

72

1

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

0

148

1

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

0

137

2

OIDC SSO 관련 질문 입니다.

0

129

1

AuthenticationEntryPoint 강의 누락 문의

0

120

1

cors설정방법

0

115

1

jwt decoder 토큰 검증 시 질문

0

218

1

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

0

183

2

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

0

138

2

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

1

524

1

CustomOAuth2AuthenticationFilter 구현 중 질문

0

144

2

AuthenticationManager 생성시점

0

116

1

FormLogin과 Oauth2Client 둘 중 사용하는 시점

0

125

1

postman userinfo 엔드포인트 질문

0

130

2

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

0

113

1

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

0

198

1