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

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

작성한 질문수

스프링 시큐리티 OAuth2

OAuth2 로그인 구현 - Spring MVC 인증 객체 참조하기

인증성공 후 로직 질문입니다.

작성

·

255

0

지금 처음 인증성공받을때 인가서버로부터 accessToken 발급받고 이 토큰으로 유저정보 가져와서 인증성공후 securityContext, 세션에 저장합니다. 그리고 인증성공받은 이후에는 그러면 인증받았는지 안받았는지는 세션에서 SecurityContext 객체를 가져와서 인증여부를 체크하는건가요? 그렇다면 OAuth2 사용하지않고 그냥 Spring Security만 사용했을때랑 차이가 처음 인증과정만 달라지는거고 이후에는 똑같이 인증객체를 세션에 저장해서 사용하는거니까 인증후에는 로직이 똑같은건가요?

답변 2

0

정수원님의 프로필 이미지
정수원
지식공유자

네 그렇게 이해하시면 됩니다.

인증과정은 시큐리티 기본 과정과 동일합니다.

OAuth2 는 사용자의 인증 과정이 필수이므로 시큐리티 기본 동작이 우선되어야 합니다.

0

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

OAuth2를 사용한 인증 방식과 일반적인 스프링 시큐리티를 사용한 인증 방식의 차이에 대해 잘 이해하고 계신 것 같습니다. 질문 주신 부분을 명확히 정리해 드리겠습니다.

  1. 초기 인증의 차이:

    • OAuth2는 외부의 인가 서버를 통해 인증이 이루어지고, 이는 사용자로부터 액세스 토큰을 받는 것을 포함합니다. 이 과정에서 얻은 토큰을 사용하여 사용자의 정보를 받아옵니다.
    • 반면, 스프링 시큐리티의 일반적인 인증 방식은 주로 내부 데이터베이스나 디렉토리를 통해 사용자 인증을 처리합니다. 기본적으로는 사용자 이름과 비밀번호 검증 과정을 거칩니다.
  2. 인증 이후의 로직:

    • 두 경우 모두 인증이 성공적으로 완료되면, SecurityContext에 사용자의 인증 상태를 저장합니다. 그리고 이 SecurityContext는 서버 세션의 일부로 관리됩니다.
    • 따라서 인증 이후의 작업, 즉 사용자가 인증되었는지를 확인하는 과정은 둘 다 비슷합니다. SecurityContext에서 인증 객체를 가져와 사용자의 인증 상태를 검증하는 방식이 동일합니다.

관련된 내용을 더 잘 이해하시려면 다음의 유사한 답변을 참고하시면 도움이 될 수 있습니다:

두 방법의 가장 큰 차이는 인증 과정의 시작 부분인 ‘사용자의 인증’ 단계이며, 그 이후의 로직은 대부분 유사합니다. 인증 객체를 SecurityContext를 통해 관리하는 것은 동일한 방식이죠.

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

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

작성한 질문수

질문하기