소셜 로그인 인증 방식 OAuth 2.0 개념 정리

JINSUNG LEE·2021년 10월 24일
2
post-thumbnail



웹사이트에 접속하여 로그인을 하다보면 해당 웹사이트 플랫폼 계정이 아닌 위의 사진 예시처럼 타사 플랫폼 로그인 창이 뜨며 로그인이 연계되는 경우를 종종 본 적 있을 것이다.

보통 이용할려는 웹사이트 플랫폼 계정을 새로 만들어야 하는 번거로운 작업을 다소 해결 해주는데,

이는 소셜 로그인 인증 방식인 OAuth 라는 인증 방법이라고 부르며 어떤 메커니즘 작동 원리를 갖고 있는지 알아보자.




OAuth 용어 정리

우선 OAuth 작동 원리를 파악하기 전 해당 원리에 쓰이는 용어는 먼저 알고 있어야 되므로 아래 용어에 대해 숙지하자.

  • Resource Owner: 액세스 상태인 리소스의 유저

  • Client: Resource Owner를 대신하여 보호된 리소스에 액세스하는 응용프로그램

  • Resource server: Client의 요청을 수락하고 응답하는 서버

  • Authorization server: Resource server에게 액세스 토큰을 발급해주는 서버

  • Authorization grant: 클라이언트가 액세스 토큰을 얻을 때 사용하는 자격 증명

  • Authorization code: access token을 발급받기 전에 필요한 코드

  • Access token: 보호된 리소스에 액세스하는데 사용되는 credentials

  • Scope: scope는 토큰의 권한을 정의하며 주어진 액세스 토큰을 사용하여 액세스할 수 있는 리소스 범위




OAuth 작동 원리

OAuth는 Resourse server 역할인 user, client, Authrization server, Server 4가지 영역이 서로 밀접한 관계로 이루어 진다.

OAuth는 Resource Owner Password Credentials Grant Types, Client Credentials Grant Types 등등 다양한 인증 방식이 있는데 해당 사진은 Authorization code의 예로 설명되었다.

  • Authorization code
    • Access token을 바로 클라이언트에 전달하지 않아 정보 유출 관련 보안에 우수
    • Authorization server는 Cleint와 Resource server 사이 중재 역할 수행
    • 로그인할 경우 해당 페이지 URL은 response_type=code로 넘김

Authorization server에 접속하여 해당 플랫폼 어플리케이션에서 요청하는 권한을 허용할 경우
쿼리 파라미터 중 client_id, redirect_uri, response_type,scope , state요소는 필히 지정해줄 것

여기서 state은 어플리케이션 측에서 임의의 문자열을 생성하여 요청에 포함하는데 이는 사용자 권한을 인증한 후 동일한 값이 반환 되었는지 비교해야한다. 즉, CSRF 공격을 막기 위해 사용하는 셈




profile
https://californialuv.github.io/Tech_Blog 이사 갔어용 🌎 🚀

0개의 댓글