inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

스프링 시큐리티 OAuth2

DefaultOAuth2AuthorizedClientManager - Client Credentials 권한 부여 구현하기

클라이언트 인가 후 저장 질문

124

작성자 없음

작성한 질문수 0

0

클라이언트가 인가서버로부터 인가를 받으면 authorizedClient가 생성되는데, 이 생성된 authorizedClient는 세션에 저장돼서 다음 요청일때 이 세션에서 객체를 가져와 인가처리된 클라이언트인지 아닌지 확인하는건가요? 마치 인증완료후 authentication 객체가 securityContext에 저장되고, 이 컨텍스트가 세션에 저장되는것처럼 작동하는건가요?

java spring spring-boot oauth

답변 2

0

정수원

네 기본적으로는 세션에 저장하는 것이 맞습니다.

물론 ThreadLocal 에 저장하지 않기 때문에 시큐리티 기본 동작과 완전 동일하다고는 볼수 없지만 인가 상태를 계속 유지하기 이해 세션에 저장하고 있습니다

0

인프런 AI 인턴

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

에욱님, OAuth 2.0 인증 과정에 대해 질문하신 것을 환영합니다!

OAuth 2.0에서는 클라이언트가 인가 서버로부터 인가를 받아 AuthorizedClient 객체가 생성되며, 이 객체는 인증된 사용자의 접근 토큰 및 갱신 토큰을 보관하기 위해 사용됩니다. 스프링 시큐리티 OAuth2 클라이언트에서는 이러한 AuthorizedClient 객체를 저장하고 관리하기 위해 AuthorizedClientRepository를 사용합니다. 기본적으로 이 객체는 세션에 저장되지만, 구현에 따라 다른 저장소를 사용할 수도 있습니다.

스프링 시큐리티에서는 인증 정보를 SecurityContext에 저장하고, 이 컨텍스트를 세션에 보관함으로써 요청 시 인증 상태를 유지하는 구조가 일반적입니다. 이와 유사하게, OAuth 2.0에서도 사용자의 인가 상태를 유지하기 위해 AuthorizedClient를 세션이나 다른 영속 저장소에 저장합니다. 이를 통해 이후 요청 시 해당 클라이언트가 이미 인가된 상태인지 확인할 수 있게 됩니다.

관련된 내용을 더 알고 싶으시다면, 다음 질문들의 답변도 참고하실 수 있습니다:

  1. OAuth2 로그인 구현 - Authorization Code 요청하기 - OAuth2AuthorizationRequest 객체 세션 저장 문제
    이 게시물에서는 OAuth2 인증 과정에서의 OAuth2AuthorizationRequest 객체를 세션에 저장하는 방법과 서버 간 세션 공유 문제에 대한 해결책을 설명하고 있습니다.

  2. OAuth 2.0 Client + Resource Server + Authorization Server 연동
    OAuth2LoginAuthenticationFilter에서의 세션 관리에 대한 구체적인 설명이 포함되어 있어, OAuth 2.0 인증 과정의 개념을 더 깊이 이해하는 데 도움이 될 것입니다.

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

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