OAuth (Open Authentication)
OAuth는 사용자가 비밀번호를 제공하지 않고 다른 웹사이트 상의 자기 정보에 대한 웹 사이트 혹은 애플리케이션의 접근 권한을 부여할 수 있는 개방형 표준 방법이다. 구글, 페이스북, 트위터 등 다양한 기업들에서 해당 메커니즘을 활용하고 있다. 인증 방식의 표준이 존재하지 않았던 OAuth 등장 이전에는 아이디, 비밀번호 조합의 기본 인증을 따랐다. 기본 인증 방법은 보안의 관점에서 취약하기 때문에 일부 회사들은 자사의 고유 인증 방식을 개발하여 사용하였다. OAuth의 등장은 이렇게 제각각인 인증 방식을 표준화할 수 있게 해 주었다.
OAuth 관련 주요 개념
1. 사용자 (User) : 계정의 주인인 유저
2. 소비자 (Consumer) : OAuth를 통해 사용자 정보에 접근하는 웹 사이트 혹은 애플리케이션
3. 서비스 제공자 (Service Provider) : OAuth를 통해 접근을 지원하는 웹 애플리케이션 및 API
4. 소비자 비밀번호 (Consumer Secret) : 소비자가 서비스 제공자에게 자신을 인증하기 위한 키
5. 요청 토큰 (Request Token) : 소비자가 사용자에게 접근 권한을 인증받기 위해 필요한 정보가 담겨 있음. 요청 토큰이 소멸되면 처음부터 모든 OAuth 인증 단계를 다시 거쳐야 한다.
6. 접근 토큰 (Access Token) : 인증을 마친 후 사용자가 소비자를 통해 보호된 리소스에 접근하기 위한 키 값 (서비스 제공자를 거치지 않고 소비자를 통해 접근하는 것이 포인트)
OAuth 인증 과정
(1) 소비자가 서비스 제공자에 요청 토큰을 요청
(2) 서비스 제공자가 소비자에게 요청 토큰 발급
(3) 소비자가 사용자를 서비스 제공자에 이동시킴으로써 인증 진행
(4) 서비스 제공자가 사용자를 소비자로 이동
(5) 소비자가 접근 토큰 요청
(6) 서비스 제공자가 접근 토큰 발급
(7) 접근 토큰을 활용하여 소비자가 사용자의 정보에 접근
'프론트엔드 테크면접 준비' 카테고리의 다른 글
2021-09-23 SPA vs MPA, CSR vs SSR (0) | 2021.09.24 |
---|---|
프론트엔드 면접공부 (0) | 2021.09.14 |