아주아주 간편한 OAuth 인증 로그인

Kim-DaHam·2023년 5월 5일
0

Server

목록 보기
7/10
post-thumbnail

🔥 학습목표

  • OAuth를 사용하여 로그인을 구현할 수 있다.
  • OAuth가 작동하는 방식을 설명할 수 있다.



🟩 OAuth란?

웹 서비스(Naver, Google 등)에서 사용자 인증을 해주고, 접근 권한에 대한 토큰을 발급한 후, 내 서버에서 로그인 되게 하는 것.

  • 인증을 중개해 주는 메커니즘이다.

🟣 사용하는 이유

⬜ 언제?

  • 앱 서비스 이용을 위해 로그인 할 때 사용된다.

⬜ 왜?

  • 신규 회원가입/회원관리를 신경 쓰지 않아도 된다는 점에서 개발자가 편리하다.
  • ID/Pwd를 별도로 기억하고 있지 않아도 된다.
  • 유저의 정보가 검증되지 않은 App에 노출 될 일이 없다.
  • 로그인 할 때, 인증 권한에 대한 허가를 유저에게 구해야 하기 때문에 더 안전하다.



🟩 OAuth 작동 메커니즘

🟣 OAuth의 주체

⬜ Resource Owner

  • 로그인 하려는 사용자.
  • Resource = 사용자 이름, 전화번호 등 정보

⬜ Application

  • 로그인을 한 뒤 이용하려는 서비스
  • 세분화 하여 Client와 Server로 나뉜다.

⬜ Resource & Authorization Server

  • Resource Server - 사용자가 이미 사용 중인 서비스(Naver, Google 등)의 서버 중, 사용자의 정보를 저장하고 있는 서버
  • Authorization Server - 인증을 담당하는 서버



🟣 인증 방식 종류

Grant Type : Authorization Server에서 Access Token을 받아오는 방식

⬜ Implicit Grant Type

  • 기존 서비스에 로그인 되어있으면 새로운 서비스에 바로 액세스 토큰을 준다.
  • 보안상 취약하다. 그래서 요즘은 잘 쓰지 않는다.

⬜ Authorization Code Grant Type

  • Authorization Code를 사용한 인증 단계가 추가되었다.
  • 원한다면 토큰을 App의 Client에게 노출시키지 않고 Server만 관리하도록 만들 수 있다.
    └▶ 이는 OAuth 실습에서 다루도록 한다.

⬜ Refresh Token Grant Type

  • 액세스 토큰이 만료되었을 때 리프레시 토큰을 사용해서 액세스 토큰을 받아올 수 있다.



🎁 자세한 요청&응답
🎁 페어 영탁님께 추천 받은 영상

profile
다 하자

0개의 댓글