2.OAuth1.0
1.OAuth 1.0 프로토콜
OAuth provides a method for clients to access server resources on behalf of a resource owner (such as a different client or an end- user). It also provides a process for end-users to authorize third- party access to their server resources without sharing their credentials
OAuth란 Open + Authorization의 줄임말로, RFC 6749 스펙에 정의되어 있으며, 간단하게 말해서 클라이언트(애플리케이션)이 특정 사용자의 개인 데이터에 접근할 수 있는 방법을 제공하는 프로토콜이라고 볼 수 있음
이는 서버 리소스에 대한 소유자가 자신의 리소스에 직접 접근하는 것이 아닌, 클라이언트 애플리케이션이 리소스 소유자의 리소스에 접근할 수 있도록 하기 위해
리소스 소유자에게 클라이언트 애플리케이션(제3자)이 접근해도 되는지에 대한 권한을 결정, 승인할 수 있는 프로세스를 제공해주는 프로토콜이며,
또한 이러한 권한을 결정하기 위해 리소스 서버가 가지고 있는 리소스 소유자의 자격증명(아이디/비밀번호)을 클라이언트 애플리케이션에게 제공하지 않고도 제 3자의 접근을 승인할 수 있는 프로세스를 제공함
결과적으로 클라이언트 애플리케이션에게 사용자의 자격증명(아이디/비밀번호 등)이 노출되지 않는다는 장점이 있음
OAuth 1.0의 제한점
OAuth의 초기 버전은 1.0으로 제공되었으나,
세션 고정 공격 에 대한 취약점이 발생함
→ 이를 대처하기 위한 1.0a 버전으로 업데이트 되었음
그 외 초기 버전이다보니 구현 방식의 복잡성, 만료된 토큰에 대한 처리의 번거로움이 있었고, 2.0 버전으로 업데이트 되었음
2.0 버전에서는 기능을 단순화 & 모듈화하고, 다양한 상황에서도 적용 가능하도록 여러 인증 방식들이 추가되었음