인프런 커뮤니티 질문&답변

에욱님의 프로필 이미지
에욱

작성한 질문수

스프링 시큐리티 OAuth2

API 커스텀 구현 -Authorization BaseUrl & Redirection BaseUrl

로그인 인증 후 처리 질문입니다.

작성

·

42

0

처음 로그인 인증처리받을때는 인가서버로부터 code를 받기 전에 유저의 동의가 필요하므로 유저가 아이디, 비밀번호를 입력하는 과정이 필요합니다. 그리고 이후 로그인 인증처리 완료되면 서버 세션에 SecurityContext 가 저장되고 인가서버에도 해당 유저의 세션이 저장되고 인증처리가 끝납니다. 근데 서버를 종료하고 재시작하면 서버의 세션이 초기화되므로 인증처리가 처음부터 다시 시작해야 될거같은데 서버 종료 후 다시 인증처리 받기 시작할땐 유저가 아이디, 비밀번호를 입력하는 과정 없이 authorizationEndpoint로 인가서버에 요청하기만 하면 인증과정이 성공합니다. 이유가 뭔가요?

답변 1

0

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

에욱님, 질문 주신 내용에 관해 설명드리겠습니다. 사용자가 처음 로그인할 때 인증 과정을 거치면 인가 서버로부터 인증 코드(authorization code)를 받아야 하며, 보통 이 과정에서 사용자 동의를 받아야 합니다. 하지만, 이후에는 이미 처음 인증 과정에서 사용자 동의가 저장되어 있어, 같은 세션에서 반복적으로 동의 과정을 생략할 수 있습니다.

서버 측의 세션은 서버 재시작 시 초기화되지만, 인가 서버에서는 세션 상태가 유지되거나, 클라이언트 측에서도 세션이나 사용자 인증 상태를 유지하기 위해 쿠키나 저장소 같은 것을 사용할 수 있습니다. 따라서 인가 서버 또는 클라이언트 측의 사용자가 로그인된 상태가 유지되면서 사용자 확인 절차가 생략될 수 있습니다.

이러한 행동은 보통 인가 서버 및 OAuth2 클라이언트가 설정한 세션, 쿠키 및 토큰 정책에 따라 다를 수 있습니다. 예를 들어, 인가 서버는 사용자가 이미 로그인되었다고 판단할 수 있는 정보를 가지므로 재인증이 필요하지 않을 때도 있습니다.

관련 질문 및 답변 참고:

  1. “OAuth 2.0 Client + Resource Server + Authorization Server 연동”

    • 인가 서버와 세션 적재 과정을 설명합니다. 이를 참고하시면, 어떠한 기준으로 세션 상태가 유지되는지 더 이해하실 수 있습니다.
  2. “SecurityContextHolder에 대한 질문”

    • SecurityContext의 스레드 간 저장 방법에 대한 설명입니다. 이를 통해, 사용자의 인증 세션이 어떻게 관리되는지 이해를 돕습니다.

위 응답이 질문에 대한 해답이 되셨길 바랍니다. 더 궁금한 부분이 있으시면 언제든지 추가로 질문해 주세요.

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

에욱님의 프로필 이미지
에욱

작성한 질문수

질문하기