티스토리 뷰

Web

OAuth 2.0

답답코더 2018. 1. 10. 11:51

OAuth(Open Authorization)

웹, 앱 서비스에서 제한적으로 권한을 요청해서 사용할 수 있는 키(토큰)를 발급해주는 것입니다.



* 인증과 허가

Authentication : 인증
Authorization : 허가, 권한부여

ex) 사용자가 ID와 Password 입력을 통해 로그인 하는 것은 인증(Authentication)이고,
 로그인 후 그 사용자가 관리자인지 일반 사용자인지 또는 일부기능만 이용할 수 있는 특정사용자인지 구분하는 것은 권한부여(Authorization)입니다.



* 용어

- User(Resource Owner) : 서비스 공급자와 소비자를 사용하는 계정을 가지고 있는 개인

- 소비자(consumer) : Open API를 이용하여 개발된 OAuth를 사용하여 서비스 제공자에게 접근하는 웹사이트 또는 애플리케이션

- Service provider : OAuth를 통해 접근을 지원하는 웹 애플리케이션(Open API를 제공하는 서비스), ex) Google, Facebook, Naver 등

- 요청 토큰(request token) : 소비자가 사용자에게 접근권한을 인증받기 위해 필요한 정보가 담겨있으며 후에 접근 토큰으로 변환

- 접근 토큰(access token) : 인증 후에 사용자가 서비스 제공자가 아닌 소비자를 통해서 보호된 자원에 접근하기 위한 키를 포함한 값.




* 인증방식



  • - Resource Owner(User) = 페이스북 서버 관리자

  • - Authorization Server = 페이스북 인증 서버

  • - Resource Server = 페이스북 REST API 서버

  • - Client = 페이스북 REST API 서버를 사용하는 사람


  • 1~2. Client가 어떤 사이트를 이용하려고 하는데 Facebook로그인 버튼을 발견합니다. 

    해당버튼을 누르면 Facebook로그인창이 나옵니다. Client는 가지고 있던 Facebook 계정으로 로그인을 합니다.

    3~4. 로그인 후 해당 사이트에서 "페이스북 정보 접근에 허용하시겠습니까? " 라는 문구가 나옵니다.

     허용을 하게되면 해당 사이트에서 로그인 목적으로 사용할 수 있는 Access Token을 받게됩니다.

    5~6. 해당 토큰을 사용하여 페이스북의 허용된 데이터에 접근할 수 있게됩니다.



    'Web' 카테고리의 다른 글

    JWT Token  (0) 2018.01.22
    쿠키(Cookie)와 세션(Session) & 캐시(Cache)  (0) 2018.01.09
    REST / RestFul  (0) 2018.01.05
    댓글