OAuth2.0 (Open Authorization 2.0)
인증을 위한 개방형 인증 프로토콜로 사용자들이 비밀번호를 제공하지 않고 다른 웹사이트 상의 정보에 대해 애플리케이션에게 접근 권한을 부여할 수 있는 수단.
위의 말을 보면 굉장히 애매모호하다는 느낌이 들었고, 쓴이가 이해한 것을 간단하게 말하자면, 사용자(Resource Owner)가 특정 사이트(Third-party)에 접속하기 위해 회원가입이 아닌 구글, 네이버, 카카오(Resource Server)와 같은 보편적인 계정으로 로그인을 함으로 특정 사이트에게 사용자에 대해 인증 및 정보를 제공하고, 사이트를 이용할 수 있도록 하는 프로토콜이라고 정의를 내렸다.
쓴이는 OAuth2.0에 대해 공부를 하면서 4개의 주요 용어를 접하게 되었다.
이상으로 주요 용어의 정의를 간단하게 작성하였다. 용어 중 토큰 2가지는 자주 사용된다. 또한, 인증과 인가에 대해서도 헷갈릴 수 있다고 생각되니 정확하게 개념을 잡아두면 좋다. 참고로 쓴이는 인증과 인가에 대해 헷갈릴 때가 많아서 볼 때마다 외우는 중이다.
이어서 OAuth를 공부할 때 자주 이야기 되는 역할을 알아보려고 한다. 실제로 개요를 설명할 때 몇 가지 언급을 하였다.
리소스 서버와 권한 서버의 경우, 간편로그인을 제공하는 사이트에 존재한다고 보면 된다. 예를 들어, Velog에 접속을 할 때, 구글 간편로그인을 하면 쓴이의 정보는 구글이 가지고 있게 되며, 쓴이의 구글 아이디와 비밀번호를 확인하여 구글이 Velog에게 쓴이의 정보에 접근 권한을 부여하게 된다. 즉, 리소스도, 권한도 구글에서 제공을 하는 것이다.
그럼 문뜩 의문이 생길 것이다. 분명, 리소스 소유자가 자격을 부여해준다고 말한 쓴이의 글이 떠오를텐데 자세히 읽어보면 실제로는 권한 서버가 중개자 역할을 하기 때문에 외부적으로는 쓴이가 주는 것처럼 보이지만 내부적으로 중개자가 권한을 부여하는 것이다.
오늘은 OAuth2.0에 대해 간단한 설명, 용어, 역할에 대해 정리해보았다. 다음에는 OAuth의 프로세스, 권한 부여 방식에 대해 정리하려고 한다. 또한, 글만 적는 것이 아니라 실제 예제를 찾아보면서 프로젝트를 개발하고 있다. 다음 글에서는 깃 주소도 공유하여 주기적으로 업데이트 되는 코드도 사용해보도록 하겠다.