OAuth based Authentication

FeelSoo·2022년 5월 18일
0

CodeStates

목록 보기
38/43

Oauth란 무엇일까?

프로토콜이다. 제 3자 인증 ( 소셜 로그인 ) 을 통한 리소스 접근을 허용하는 프로토콜이다.

위의 사진을 보자. 로그인 방식은 2가지다.

  1. 티몬 계정을 이용하거나

  2. 소셜 계정을 이용하거나


2번째의 경우를 허용하게 만들어주는 프로토콜이 OAuth이다. 아래는 OAuth의 work flow이다.

  1. client ( 사용자 ) 가 소셜 계정 로그인 버튼을 클릭한다. ( Authorization code 요청 )

  2. 소셜 계정 ( ex --- facebook ) 은 facebook 로그인 페이지를 제공하고 사용자는 로그인을 진행한다. 이후 facebook 측에서는 티몬으로부터 리소스 액세스 접근을 허용할 것인지 사용자에게 묻고 이를 허용하면 Authorization code가 발급된다.

    ( Authorization code 발급 )

  3. Authorization code가 발급되면 클라쪽에서 자동으로 티몬 쪽으로 이 것을 넘겨주게 되고 티몬 서버 측에서 facebook에게 이 코드를 전송하며 자신의 신원을 증명하고 Access token을 부여받는다.

  1. 티몬 서버는 이제 사용자에게 페이스북으로부터 내려받은 Access Token을 전달하고 로그인을 통과시켜준다.

  • Acess Token이 만료되면 refresh Token을 이용하여 새로운 Access 토큰을 발급하여 유효시간을 연장한 후 티몬 서버에 접근할 수 있다.




< OAuth에서 꼭 알아야 할 용어 >


- Resource Owner :  액세스 중인 리소스의 유저입니다. 김코딩의 구글 계정을 이용하여 App에 로그인할 경우, 이때 Resource owner은 김코딩이 됩니다.

- Client :  Resource owner를 대신하여 보호된 리소스에 액세스하는 응용프로그램입니다. 클라이언트는 서버, 데스크탑, 모바일 또는 기타 장치에서 호스팅할 수 있습니다.

- Resource server :  client의 요청을 수락하고 응답할 수 있는 서버입니다.

- Authorization server :  Resource server가 액세스 토큰을 발급받는 서버입니다. 즉 클라이언트 및 리소스 소유자를 성공적으로 인증한 후 액세스 토큰을 발급하는 서버를 말합니다.

- Authorization grant :  클라이언트가 액세스 토큰을 얻을 때 사용하는 자격 증명의 유형입니다.

- Authorization code :  access token을 발급받기 전에 필요한 code 입니다. client ID로 이 code를 받아온 후, client secret과 code를 이용해 Access token 을 받아옵니다.

- Access token :  보호된 리소스에 액세스하는 데 사용되는 credentials입니다.

- Authorization code와 client secret을 이용해 받아온 이 Access token으로 이제 resource server에 접근을 할 수 있습니다.

- Scope :  scope는 토큰의 권한을 정의합니다. 주어진 액세스 토큰을 사용하여 액세스할 수 있는 리소스의 범위입니다.
profile
세상은 넓고 배울건 많다

0개의 댓글