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

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

작성한 질문수

스프링 시큐리티 OAuth2

OAuth 2.0 AuthorizationServer Endpoint - 사용자 인증단계

Resouce owner 인증 전 단계 질문입니다.

작성

·

32

0

클라이언트가 인가서버에게 인가코드를 요청하기 전에 사용자인증을 받기 위해 사용자 id, 비밀번호를 입력하는 단계가 먼저 거치고, 인증이 되면 인가서버에게 /oauth2/authorize url로 response_type=code ~~ 이런식의 정보를 포함해서 요청하게 되는데 그러면 사용자가 인증받을때 입력한 사용자 id, 비밀번호를 통해 인증처리를 하는건 인가서버에서 하는게 아닌건가요? 인가서버에서 하는거라면 입력한 사용자 id, 비밀번호는 어떤 필터에서 처리하는건가요?

답변 2

0

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

인가서버에도 신원을 확인할 수 있도록 별도의 보안 설정을 하게 됩니다.

거기에서 UsernamePasswordAuthenticationFilter 를 사용해서 인증을 진행하게 됩니다.

강의를 보시면 SecurtiyConfig 와 같은 클래스가 있는데 거기서 인증을 위한 설정들을 하고 있습니다.

0

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

에욱님, OAuth 2.0의 Authorization Code Grant 흐름에서 인증 처리를 어떻게 다루고 있는지 궁금해 하시는 것 같아 설명드리겠습니다.

사용자가 인가코드를 받기 위해 클라이언트가 인가서버에 요청을 보낼 때, 사전에 사용자인증이 필요합니다. 사용자가 ID와 비밀번호를 입력하여 인증하는 단계는 보통 Authentication Server가 처리합니다. 이때 ID와 비밀번호는 보안을 고려하여 HTTPS를 통해 전송됩니다.

확인하고자 하는 처리 과정은 대개 다음과 같습니다:

  1. 사용자 인증: 클라이언트 애플리케이션에서 사용자가 로그인 화면에서 ID와 비밀번호를 입력하게 됩니다.

  2. 인증 검증: 입력된 정보는 클라이언트를 통해 Authorization Server로 전달됩니다. 이는 주로 UsernamePasswordAuthenticationFilter 등에 의해 처리됩니다. 서버는 받은 ID와 비밀번호를 통해 사용자 인증을 수행합니다.

  3. 인가 요청: 사용자 인증이 성공하면 클라이언트는 부여된 인가코드를 받기 위한 요청을 인가서버로 보냅니다. 이 과정에서 클라이언트는 /oauth2/authorize 엔드포인트로 요청하며, response_type=code 등이 포함됩니다.

  4. 인가코드 발급 및 교환: 인가서버는 사용자가 인증된 것을 확인하고, 인가코드를 클라이언트에게 되돌려 줍니다. 클라이언트는 이 코드를 사용하여 서버에서 Access Token을 발급받게 됩니다.

한편, 인가서버가 사용자 인증을 직접 처리하지 않고, ID와 비밀번호를 다른 방식으로 검증하도록 설정하려면, 이 부분에서 보안적인 고려와 함께 커스터마이즈 되는 경우가 많습니다.

유사한 질문이 Spring Authorization Server에서 OAuth2 관련 강의에서 구체적으로 다루어진 부분도 있습니다. 이러한 자료를 통해 실무에서의 예시를 보다 명확히 이해하실 수 있을 것입니다.

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

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

작성한 질문수

질문하기