OAuth 2.0 인증 알아보기

Nicky·2024년 4월 28일
0
post-thumbnail

지난 시리즈에 이어서 이번엔 Spring Security의 OAuth 2.0 인증 방식에 다루고자 한다.
먼저 OAuth에 대해 알아보자.

OAuth

OAuth(Open Authorization)은 접근 위임을 위한 개방형 표준 인가 프로토콜을 뜻한다. 이를 통해 사용자가 비밀번호를 제공할 필요 없이 자신의 정보에 대한 접근 권한을 제3의 애플리케이션에게 안전하게 위임할 수 있다.

많은 플랫폼에서 구글, 페이스북, 카카오 등의 소셜 계정을 통해 간편하게 로그인할 수 있도록 하고 있는데, 이러한 인증 방식이 OAuth 인증 방식에 해당한다.

OAuth 2.0

이름 그대로 현재 널리 사용되고 있는 OAuth 인증 방식은 새 버전이다. OAuth의 초기 버전(1.0)은 복잡한 서명 과정 및 보안 취약점이 존재하였고, 이를 개선하여 나온 것이 현재의 2.0 버전이다. 이제 OAuth 2.0의 인증 방식에 대해 알아보자.

인증 방식

OAuth 2.0에는 다양한 인증 방식이 존재한다. 이번 시리즈에서는 Spring Security에 적용할 가장 일반적인 Authorization Code Grant 방식에 대해 다뤄보겠다.

Authorization Code Grant

Authorization Code Grant 방식은 사용자가 직접 인증 서버에 로그인하고 권한을 부여하는 방식이다. 또한 안정성이 높아 일반적으로 가장 많이 사용하는 방식이기도 하다.

인증 흐름은 다음과 같다.

  1. 클라이언트에서 인증 서버로 OAuth 로그인 요청
    (인증 서버로 로그인 요청 시 client_id, redirect_uri, response_type=code, 파라미터 포함)
  2. 로그인 성공 시 인증 서버는 클라이언트로 권한 부여 승인 코드 전달, Redirect URI로 리다이렉션
  3. 클라이언트는 전달 받은 코드를 인증 서버에 전송, Access Token를 응답으로 받음
    (인증 서버로 Access Token 요청 시 client_id, redirect_uri, grant_type=authorization_code 파라미터 포함)
  4. 이후 클라이언트는 Access Token을 사용하여 리소스 서버의 API 호출, 데이터 받음

시리즈 기획

다음 포스팅부터 본격적으로 Spring Security로 OAuth 2.0 인증을 구현해보록 할 예정이다.

  • 구글
  • 페이스북
  • 네이버
  • 카카오

총 4가지 소셜 계정으로 로그인을 구현하고 사용자 정보를 확인해도록 할 것이다.

profile
코딩 연구소

0개의 댓글

관련 채용 정보