- Authentication: 인증
- Authorization: 허가
일반 로그인은 사원이 63빌딩에 출입하는 것(사원증)이라면, OAuth는 1층에서 방문증을 수령한 후 63빌딩에 출입하는 것.
1. OAuth 1.0
1-1. OAuth 1.0의 특징
- API 인증시 써드파티 어플리케이션에게 사용자의 비번을 노출하지 않고 인증 가능
- 인증과 권한 부여를 동시에 할 수 있음
1-2. OAuth 1.0의 동작방식
기본적으로 User, Consumer, service provider가 존재
- User: Service Provider에 계정을 가지고 있으면서, Consumer를 이용하려는 사용자
- Consumer: OAuth 인증을 사용해 Service Provider의 기능을 사용하려는 애플리케이션이나 웹 서비스
- Service provider: OAuth를 사용하는 Open API를 제공하는 서비스 (트위터, 페이스북 등)
- 사용자가 트위터 로그인 요청
- 사용자가 트위터 로그인 화면으로 리다이렉트
- 트위터 로그인 진행
- 서비스로 인증토큰(Access Token) 전달
토큰(Token)
리쿼스트 토큰 (Request Token)
Consumer가 Service provider에게 접근 권한을 인증받기 위해 사용하는 값. 인증이 완료된 후에는 Access Token으로 교환.
인증 토큰 (Access Token)
- 사용자의 아이디, 패스워드를 몰라도 토큰을 통해 허가받은 API에 접근 가능
- 필요한 API에만 제한적으로 접근할 수 있도록 권한 제어 가능
- 저장되어있는 인증토큰이 유출되더라도 트위터의 관리자 화면에서 인증토큰의 권한 취소 가능
- 사용자가 트위터의 패스워드를 변경해도 인증토큰은 계속 유효
2. OAuth 2.0
2-1. 1.0에서 바뀐 것
- 용어 번경
- 간단하고 직관적
- 더 많은 인증방법을 지원
- 대형 서비스로의 확장성 지원