인터넷 사용자들이 비밀번호를 제공하지 않고 다른 웹 사이트 상의 자신들의 정보에 대해 웹 사이트나 애플리케이션의
접근 권한을 부여
할 수 있는 공통적인 수단으로서 사용되는, 접근 위임을 위한 개방형 표준이다.
https://ko.wikipedia.org/wiki/OAuth
예를 들어, 구글에서 제공하는 OAuth 를 이용하면 사용자는 실제로 접속한 웹 사이트의 회원가입을 하지 않고 구글 계정으로 로그인할 수 있다. 구글 OAuth 를 이용하여 접속한 사용자의 구글 정보를 일부 받아와 웹 사이트에서 제공할 수 있다.
OAuth 1.0 은 구현이 복잡하고 웹이 아닌 어플리케이션의 지원이 부족하였다. HMAC 를 통해 암호화하는 과정이 있어 구현의 번거로움을 증가시켰다. 또한 인증 토큰(access token) 이 만료되지 않는 문제점도 있었다.
OAuth 동작에 관여된 참여자는 다음과 같이 3가지로 분류할 수 있다.
Client
: Resource Server 에 접속해서 정보를 가져오고자 하는 클라이언트(웹 어플리케이션)Resource Owner
: 자원의 소유자, Client 가 제공하는 서비스를 통해 로그인하는 실제 유저Resource Server(API Server)
: Client 가 제어하고자 하는 자원을 보유하는 서버, 자원을 호스팅하는 서버
Authorization Server
: 사용자의 동의를 받아서 권한을 부여하는 서버, 일반적으로 Resource Server
와 같은 URL 하위에 있는 경우가 많음