OAuth에 대해 알아보겠습니다.
OAuth
OAuth(Open Authorization)
- 인터넷 사용자들이 비밀번호를 제공하지 않고,
- 다른 웹사이트 상의 자신들의 정보에 대해 웹사이트나 애플리케이션의 접근 권한을 부여할 수 있는
- 공통적인 수단으로서 사용되는 접근 위임을 위한 개방형 표준
OAuth는 여러 기업들이 사용
- 아마존, 구글, 페이스북, 마이크로소프트, 트위터 등
- 사용자들이 타사 애플리케이션이나 웹사이트의 계정에 관한 정보를 공유할 수 있게 허용
개방형 표준, 공개 표준(open standard)
- 기술 표준이 문서가 공개되어 있으며, 사용이 자유로운 경우
- 표준을 사용하는 데 있어 로열티를 지불할 필료가 없음
개요
OAuth 이전
- OAuth 사용 이전에는 인증방식의 표준이 없었음
- 기존의 기본인증인 아이디, 비밀번호를 사용
- 이는 보안상 취약한 구조일 가능성이 매우 많음
각자의 인증 방법
- 기본인증이 아닐 경우, 각 애플리케이션들이 각자의 개발한 회사의 방법대로 사용자를 확인
- 구글의 AuthSub, AOL의 OpenAuth, 야후의 BBAuth, 아마존의 웹서비스 API 등
OAuth의 등장
- 제각각인 인증방식을 표준화한 인증방식
- OAuth를 이용하면 이 인증을 공유하는 애플리케이션끼리는 별도의 인증이 필요 없음
- 여러 애플리케이션을 통합하여 사용하는 것이 가능
용어
- user(사용자): 서비스 제공자와 소비자를 사용하는 계정을 가진 개인
- consumer(소비자): Open API로 개발된 OAuth를 사용해 서비스 제공자에게 접근하는 웹사이트 또는 애플리케이션
- service provider(서비스 제공자): OAuth를 통해 접근을 지원하는 웹 애플리케이션(Open API를 제공하는 서비스)
- consumer secret(소비자 비밀번호): 서비스 제공자에서 소비자가 자신임을 인증하기 위한 키
- request token(요청 토큰): 소비자가 사용자에게 접근권한을 인증받기 위해 필요한 정보가 담김. 후에 접근 토큰으로 변환
- access token(접근 토큰): 인증 후에 사용자가 서비스 제공자가 아닌 소비자를 통해서 보호된 자원에 접근하기 위한 키를 포함한 값
인증방식
OAuth 인증은 소비자와 서비스 제공자 사이에서 발생
- 소비자가 서비스 제공자에게 요청토큰을 요청
- 서비스 제공자가 소비자에게 요청토큰을 발급
- 소비자가 사용자를 서비스 제공자로 이동시킴. 여기서 사용자 인증 수행
- 서비스 제공자가 사용자를 소비자로 이동시킴
- 소비자가 접근토큰을 요청
- 서비스 제공자가 접근토큰을 발급
- 발급된 접근토큰을 이용해 소비자에서 사용자 정보에 접근