본문 바로가기

Learn/HTTP&네트워크

OAuth

OAuth

소셜 로그인 인증 방식은 OAuth 2.0라는 기술을 바탕으로 구현

인증을 중개해주는 메커니즘

보안된 리소스에 액세스하기 위해 클라이언트에게 권한을 제공하는 프로세스를 단순화하는 프로토콜

 

평소에 자주 사용하는 소셜로그인 기술이 이것!

 

OAuth의 주체

Resource Owner

  • OAuth 인증을 통해 소셜 로그인을 하고싶어하는 사용자
  • Resource는 사용자의 이름, 전화번호 등의 정보. 정보의 주인이 바로 사용자이기 때문에 Resource Owner

Resource Server & Authorization Server

  • 사용자가 소셜 로그인을 하기 위해서 사용하는, 이미 사용중인 서비스(Naver, Kakao, Google 등)의 서버 중 사용자의 정보를 저장하고 있는 서버
  • 이미 사용중인 서비스의 서버 중 인증을 담당하는 서버

Application

  • 사용자가 소셜 로그인을 활용해 이용하고자하는 새로운 서비스는 환경에 따라서 조금씩 다르게 불립니다.
  • 경우에 따라서 Applicaiton을 Client와 Server로 세분화

 

용어의 뜻을 이해하면 쉽게 이해 할 수 있다.

 

OAuth 인증 방식의 종류와 흐름

 

1. Implicit Grant Type

소셜 로그인에서 Implicit Grant Type은 잘 사용하지 않습니다. 기존 서비스에 로그인만 되어있다면 새로운 서비스에 바로 액세스 토큰을 내어주기 때문에 보안성이 조금 떨어지기 때문

2. Authorization Code Grant Type

Authorization Code를 사용한 인증 단계가 추가로 있기 때문에 비교적 더 안전

Application의 Client에 노출시키지 않고 Server에서만 관리하도록 만들 수도 있기 때문에 소셜 로그인을 구현하는 방식의 선택지 추가

액세스 토큰이 만료되었을 때, 매번 이 과정을 거쳐서 액세스 토큰을 다시 발급받아야 한다면 사용자 편의성에 있어서는 좋지 않다

액세스 토큰을 발급해줄 때 리프레시 토큰을 같이 발급

이 때, 리프레시 토큰을 사용해서 액세스 토큰을 받아오는 인증 방식이 Refresh Token Grant Type

3. Refresh Token Grant Type

 

. Authorization Server로 리프레시 토큰을 보내주면, Authorization Server는 리프레시 토큰을 검증한 다음 액세스 토큰을 다시 발급

 

OAuth의 장점

1. 쉽고 안전하게 새로운 서비스를 이용할 수 있다.

사용자는 OAuth를 통해 특정 사이트에 아이디, 비밀번호, 이름, 전화 번호 등의 정보를 일일이 입력하지 않아도 클릭 몇 번 만으로 손쉽게 가입할 수 있어 편리

정보를 해당 서비스에 직접 노출하는 것이 아니기 때문에 직접 가입하는 것보다 더 안전

Application의 입장에서도 회원의 정보를 직접 가지고 있음으로 인해서 발생할 수 있는 회원 정보 유출의 위험성에서 부담을 덜 수 있다

 

2. 권한 영역을 설정할 수 있다.

사용자는 원하는 정보에만 접근을 허락할 수 있어 보다 더 안전

'Learn > HTTP&네트워크' 카테고리의 다른 글

아마존 웹 서비스(AWS)  (0) 2023.03.31
Lighthouse  (0) 2023.03.30
Hashing & Token  (0) 2023.03.08
Cookie & Session  (0) 2023.03.07
웹 접근성  (0) 2023.03.03