T.I.L June 7, 2023 (OAuth 2.0)

2023. 6. 7. 10:31T.I.L (Today_I_Learned)

OAuth 등장 배경


문제점

요즘 웹서비스 또는 애플리케이션이 사용자를 대신해서 구글 또는 카카오 등의 앱에 접근하여 특정 행위를 하는 기능을 우리는 많이 사용합니다. 이때, 웹서비스 또는 애플리케이션이 가장 쉽게 사용자 대신 구글 또는 카카오 등에 접근하는 방법은 사용자의 해당 플랫폼 ID, Password를 제공받아 저장하고 사용하는 것 일 겁니다.

문제점은 여기서 발생합니다. 사용자는 웹서비스 또는 애플리케이션을 신뢰하기 쉽지 않을것이고 웹서비스 또는 애플리케이션은 사용자의 민감한 정보를 저장하고 있다는 것 자체가 큰 부담일 것 입니다. 또한, 사용자의 정보를 제공해준 구글, 카카오와 같은 플랫폼들 입장에서도 본인들이 저장하고 있는 사용자의 정보를 신뢰하기 어려운 제 3자인 웹서비스 또는 애플리케이션에게 제공한다는 것이 부담일 것 입니다. 

 

등장

위와 같은 문제점을 해결하기 위해 Oauth 가 등장합니다. 최초 1.0 버전과 조금의 개선이 이뤄졌던 1.0a 버전이 있었으나, 모바일 애플리케이션 환경 등에서 안전성 문제가 발생했습니다. 이러한 사례들을 보완하여 기존 버전들보다 단순화된 버전인 OAuth 2.0 버전이 2012년에 등장했고 현재까지 사용되고 있습니다.

 

 

 

OAuth ?


Google, Kakao 등과 같은 플랫폼들의 특정한 사용자 데이터에 접근하기 위해 제 3자 클라이언트(웹서비스 또는 애플리케이션)이 사용자의 접근 권한을 위임(Delegated Authorization)받을 수 있는 표준 프로토콜입니다.

 

즉, 웹서비스 또는 애플리케이션이 자신들의 서비스를 이용하는 사용자들의 타사 플랫폼(Google, Facebook, Tweeter 등) 정보에 접근하기 위해 타사 플랫폼으로부터 권한을 위임 받는 것 입니다.

 

 

OAuth 2.0 동작 메커니즘


OAuth 2.0 주체 정리

Resource Owner

  • 말 그대로 리소스 소유자를 뜻합니다.
  • Google, Kakao 등의 타사 플랫폼에 리소스를 소유하고 있는 웹서비스 또는 애플리케이션 사용자에 해당됩니다.

 

Client

  • Resource Server의 자원을 이용하고자 하는 서비스.
  • 즉, 사용자의 정보를 이용하고자 하는 웹서비스 또는 애플리케이션이 해당됩니다.

 

Authorization Server & Resource Server

  • Authorization Server는 Resource Owner를 인증하고, Client에게 액세스 토큰을 발급해주는 서버에 해당됩니다.
  • Resource Server는 Google, Kakao 등과 같이 리소스를 가지고 있는 서버에 해당됩니다.

 

동작 메커니즘

1 ~ 2. 로그인 요청

3 ~ 4. 로그인 페이지 제공, ID/PW 제공

5 ~ 6. Authorization Code 발급, Redirect URI로 redirect

7 ~ 8. Authoriaztion Code와 Access Token 교환

9. 로그인 성공

10 ~ 13. Access Token으로 리소스 접근

 

 

...공부하며 계속 작성중...

 

 

Reference


https://oauth.net/2/

 

OAuth 2.0 — OAuth

OAuth 2.0 OAuth 2.0 is the industry-standard protocol for authorization. OAuth 2.0 focuses on client developer simplicity while providing specific authorization flows for web applications, desktop applications, mobile phones, and living room devices. This

oauth.net

 

https://developers.google.com/identity/protocols/oauth2/web-server?hl=ko 

 

웹 서버 애플리케이션용 OAuth 2.0 사용  |  Authorization  |  Google for Developers

이 페이지는 Cloud Translation API를 통해 번역되었습니다. Switch to English 의견 보내기 웹 서버 애플리케이션용 OAuth 2.0 사용 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분

developers.google.com

 

https://hudi.blog/oauth-2.0/

 

OAuth 2.0 개념과 동작원리

2022년 07월 13일에 작성한 글을 보충하여 새로 포스팅한 글이다. OAuth 등장 배경 우리의 서비스가 사용자를 대신하여 구글의 캘린더에 일정을 추가하거나, 페이스북, 트위터에 글을 남기는 기능을

hudi.blog