될때까지

((OAuth)) OAuth2.0이란? 본문

학습/개념정리

((OAuth)) OAuth2.0이란?

랖니 2022. 9. 19. 23:35
728x90

OAuth란?

OpenID Authentication의 줄임말로 인터넷 사용자들이 자신의 비밀번호를 제공하지 않고도 다른 웹사이트에 가입한 정보로 해당 애플리케이션에 접근 권한을 부여받을 수 있는 개방형 표준이다.

OAuth가 등장하기 전에는 평범하게 id와 password로 진행을 했었다.

그러다 보니 사용자는 서비스 사이트에 내 id와 비밀번호를 공개하는 것에 찝찝함을 느꼈고,
서비스 사이트는 아이디와 비밀번호가 털릴 경우 해당 보안 문제를 모두 책임져야했다.
다른 사이트는 해당 서비스 사이트를 신뢰할 수 없었기에
이에 대한 문제를 해결하고자 2007년 OAuth 1.0 초안이 발표되었고, 현재는 2.0버전이 더 많이 사용되고 있는 상태다.

 

OAuth 2.0 용어

  • Client : Resource Server의 API를 사용해서 데이터를 가져오려고 하는 서비스, 애플리케이션(내가 개발한 사이트)
  • Resource Owner : Resource Server의 계정을 소유하고있는 실제 사용자
  • Resource Server : OAuth 2.0서비스를 제공하고 자원을 관리하는 구글, 페이스북, 카카오톡 같은 회사
  • Authorization Server : Client가 Resource Server의 서비스를 사용할 수 있도록 인증하고 토큰을 발행해주는 서버(인증 서버)

from payco 개발자 센터

  1. 사용자가 client로 서비스 접근 및 이용을 시도한다.
  2. client측에서 resource owner에게 인증방식 4가지 중 하나로 승인 요청을 한다.
  3. resource owner측에서 client측으로 인증 권한을 부여한다.
  4. client는 부여받은 인증 권한으로 authorization server에 access token을 요청한다.
  5. authorization server에서 client와 부여받은 인증 권한에 대한 유효성 검사 후 통과하면 access token을 발급한다.
  6. 사용자가 client로 서비스를 요청한다.
  7. client는 access token으로 resource server에게 API 호출한다.
  8. resource server는 access token 유효성 검사 후 요청에 대한 resource를 client에게 전달하고, client는 사용자에게 전달한다.

 

OAuth 1.0 vs OAuth 2.0

  OAuth 1.0 OAuth 2.0
API 호출 인증 및 보안 서명 HTTPS기본
클라이언트 지원 유형 웹 애플리케이션 만 웹 애플리 케이션
이용자 에이전트 애플리케이션
네이티브 애플리케이션
OAuth 2.0은 OAuth 1.0의 보안 문제를 개선한 버전이다.

 

 

728x90