OAuth2 인증방식을 설명을 위해 필요한 4가지의 용어를 살펴보자.
핵심 키워드 : Access Token(자원에 대한 접근 권한을 사용자가 승인하였음을 나타내는 자격증명)
client(어플리케이션) 가 (resource owner(사용자)가 자신과 관련된 정보를 가지고 있는) resource server에
접근하기 위해 어떤 방식으로 인증.인가(access token)를 가져 올 수 있는지를 설명한다.
예를 들어, 사용자가 client(어플리케이션)을 사용하고자 할 때 구글 로그인을 통해 사용자가 승인형식을 취하고 이에 구글은 client에 대해 사용자의 정보에 써도 되는지 client에 자격증명을 요청하고(authorization code) 그에 대한 토큰을 발행하여 client에게 주면, client는 해당 토큰을 사용하여 사용자의 정보(사용하고자 하는 컨텐츠)에 접근할 수 있게 한다.
사용자의 로그인(인증)을 승인으로 허락했다는 것으로 간주하는 방식
자원소유자인 사용자의 자격증명(id,password)을 client가 직접 받아 인증서버에 access token을 받아오는 방식
사용자가 중심이 아닌 client의 자격증명 만으로 자원서버에 대한 접근이 가능한 방식. 인증서버,리소스서버가 모두 한통속일 때 사용.
access token 에 담긴 정보에 사용자 식별정보 외 사용자 정보 자체를 알 수 없기에 쇼셜 로그인을 허용한 사이트에서는
권한부여 승인 또는 암묵적 승인으로 사용자의 정보를 별도로 받아오기 위한 회원가입이 필요할 수 있다.
궁금한 점 : 인증서버에서 발행된 access token의 유효성을 resource server에서 어떻게 판단할 수 있는가? 그 둘의 관계는 무엇인가?