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