Fall in IT.

oauth2에 대하여 본문

기타

oauth2에 대하여

D.Y 2017. 6. 14. 00:49

OAuth2에 핵심은 권한과 인증에 있다.

  • 예를들어, Facebook 간편 로그인 기능을 사용한다고 했을때 페이스북에 저장된 이름, 성별, 생년월일 등의 정보가 필요할 것 입니다.

  • 그렇다면 유저는 페이스북에 내 정보를 달라고 요청할 것 입니다.

  • 페이스북은 해당 페이스북의 계정 정보에 접근 할 수 있는 권한이 있는지와 해당 유저가 맞는지 인증을 합니다.

  • 이때 사용하는 기술이 OAuth2 기술입니다.



OAuth2란?
  • 웹. 앱 서비스에서 제한적으로 권한을 요청해서 사용할 수 있는 키(토큰)를 발급해주는 것.
  • OAuth는 3rd party를 위한 범용적인 인증 표준 입니다.
  • 외부 사이트와 인증기반의 데이터를 연동할 때 아이디/패스워드를 넘기는 방법은 매우 위험합니다.
  • 따라서, 사용자 임시 인증을 위한 Token을 제공하여 사용하도록 하는 방법 입니다.




OAuth2를 사용한 권한 획득의 원리와 과정 (위의 OAuth2 Flow 그림 참조)

  • User(Resource Owner)
    - 사용자, 정확하게 말하면 서버
    관리자

  • Authorization Server
    - Oauth
    인증서버

  • Resource Server
    - REST API Server

  • Application(Client)
    - REST API 서버를 사용하는 사용자



OAuth2의 개념 쉽게 이해하기 (위의 OAuth2 Flow 그림 참조)

(OAuth2를 사용하는 대표적인 서비스가 Facebook 로그인 연동이 있습니다. 이를 통해 알아보도록 하겠습니다.)

  • Resource Owner = 페이스북 서버 관리자

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

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

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

  1. 내가 앱의 회원가입을 하려고 하는데 Facebook으로 3초만에 회원가입이라는 버튼을 발견합니다.
  2. 버튼을 누르고 Facebook 로그인 창이 나옵니다. 로그인을 합니다. 위의 그림에서 1번과 2번에 해당합니다.
  3. 로그인 후 해당 앱에서 "페이스북 정보 접근에 허용하시겠습니까?" 라는 문구가 나옵니다. 위의 그림에서 3번에 해당됩니다.
  4. 허용을 하게 되면 페이스북 정보에 접근 할 수 있는 access_token을 발급해 줍니다. 위의 그림에서 4번에 해당됩니다.
  5. 해당 토큰을 사용하여 페이스북의 허용된 데이터에 접근할 수 있게 됩니다.
즉, OAuth2는 권한을 부여하고, 인증을 통해서 발급 받은 토큰을 사용하여 허용된 자원에만 접근 하도록 하는 방식으로 사용됩니다.



참조







Comments