개념
- 접근 위임을 위한 개방형 표준 방법
- 보통 다른 사이트에 있는 사용자들의 정보에 비밀번호를 제공하지 않고 다른 사이트나 애플리케이션이 접근 가능하도록 승인하는 방법으로 사용된다.
- 소비자는 서비스 제공자로부터 id, password 대신 accessToken을 발급받아 접근한다.
효과
OAuth가 사용되기 전에는 인증방식의 표준이 없었기 때문에 기존의 기본인증인 아이디와 비밀번호를 사용하였는데, 이는 보안상 취약한 구조이다.
기본 인증이 아닐 경우는 각 애플리케이션들이 각자의 개발한 회사의 방법대로 사용자를 확인하였다. 예를 들면 구글의 AuthSub, AOL의 OpenAuth, 야후의 BBAuth, 아마존의 웹서비스 API 등이 있다.
OAuth는 이렇게 제각각인 인증방식을 표준화한 인증방식이다. OAuth를 이용하면 이 인증을 공유하는 애플리케이션끼리는 별도의 인증이 필요없다. 따라서 여러 애플리케이션을 통합하여 사용하는 것이 가능하게 된다.
사용 용어
- 사용자 : 계정을 가지고 있는 개인
- 소비자 : OAuth를 사용해 서비스 제공자에게 접근하는 웹사이트 or 애플리케이션
- 서비스 제공자 : OAuth를 통해 접근을 지원하는 웹 애플리케이션
- 소비자 비밀번호 : 서비스 제공자에서 소비자가 자신임을 인증하기 위한 키
- 요청 토큰 : 소비자가 사용자에게 접근권한을 인증받기 위해 필요한 정보가 담겨있음
- 접근 토큰 : 인증 후에 사용자가 서비스 제공자가 아닌 소비자를 통해 보호 자원에 접근하기 위한 키 값
토큰 종류로는 Access Token과 Refresh Token이 있다.
Access Token은 만료시간이 있고 끝나면 다시 요청해야 한다. Refresh Token은 만료되면 아예 처음부터 진행해야 한다.
인증 과정
소비자 <-> 서비스 제공자
- 소비자가 서비스 제공자에게 요청토큰을 요청한다.
- 서비스 제공자가 소비자에게 요청토큰을 발급해준다.
- 소비자가 사용자를 서비스제공자로 이동시킨다. 여기서 사용자 인증이 수행된다.
- 서비스 제공자가 사용자를 소비자로 이동시킨다.
- 소비자가 접근토큰을 요청한다.
- 서비스제공자가 접근토큰을 발급한다.
- 발급된 접근토큰을 이용해서 소비자에서 사용자 정보에 접근한다.
'Web' 카테고리의 다른 글
쿠키 & 세션 & JWT (0) | 2021.09.20 |
---|