OAuth

1 분 소요

OAuth의 정의

OAuth란 인터넷 사용자들이 비밀번호를 제공하지 않고 다른 웹사이트 상의 자신들의 정보에 대해 애플리케이션의 접근 권한을 부여할 수 있는 공통적인 수단으로서 사용되는, 접근 위임을 위한 개방형 표준이다.

OAuth의 쓰임

The OAuth 2.0 authorization framework enables a third-party application to obtain limited access to an HTTP service, […] by allowing the third-party application to obtain access on its own behalf. – rfc6749

OAuth 2.0 인증 프레임 워크를 사용하면 타사 응용 프로그램이 HTTP 서비스에 대한 제한된 액세스 권한을 얻을 수 있다.

OAuth 방식에서 사용되는 용어

  • Resource Server : 구글이나 페이스북같은 서드파티 서버.
  • Resource Owner : Resource Server에 등록되어 있는 사용자. 애플리케이션을 사용하는 유저
  • Client : 서비스하는 애플리케이션.

OAuth 진행 과정

  1. client는 서비스를 제작하는 과정에서 Resource Server에 애플리케이션을 등록하여 client_id와 client_secret을 발급받는다. 반드시 노출되면 안되는 데이터이기 때문에 주의해서 저장해야한다.
  2. Resource Owner가 client의 서비스를 이용하기 위해 접속을 한다.
  3. client는 Resource Owner를 Resource Server로 연결시키고 인증요청 화면이 보이게 된다. clinet가 유저의 서드파티 서버의 기능(ex-facebook 담벼락 접근)을 사용할 수 있는 권한을 획득하기 위한 리스트(Scope List)가 보여진다.
  4. 유저가 인증요청을 승인하면 Resource Servers는 client에게 code를 보낸다.
  5. clinet는 Resource Server에 client_id와 secret과 code를 보내고 access token과 refresh token을 발급받는다. refresh token은 한번만 발급되므로 꼭 저장해두어야 하며 access token의 만료시간이 지나면 refresh token으로 toekn을 재발급 받을 수 있다. access token이 만료되면 사용자는 3번 과정을 반복해야 하므로 불편하기 때문에 refresh token방식으로 진행한다.

카테고리:

업데이트:

댓글남기기