2021_05_31

jiwon22·2021년 5월 31일
0

TIL - OAuth

1. OAuth

OAuth는 인증을 중개해주는 메커니즘이다. 이미 사용자 정보를 가지고 있는 웹 서비스(GitHub, google, facebook 등) 에서 사용자의 인증을 대신해주고 접근 권한에 대한 토큰을 발급한 후, 이를 이용해 서버에서 인증을 한다.
OAuth를 이용하는 이유는 무엇일까?

우리는 다양한 사이트를 이용하고 각 사이트마다 회원가입을 진행한다. 하지만 이에 따라 모든 ID와 Password를 기억하기엔 매우 귀찮은 일이다. OAuth를 이용하면 이미 사용자 정보를 가지고 있는 대표적인 사이트의 계정으로 소셜로그인을 할 수 있다.

velog 사이트에서도 소셜 계정으로 로그인할 수 있는 기능이 있다.

[용어정리]
지원이 github 계정을 이용해서 velog 사이트에 로그인하려는 상황이라고 가정해보자.

-- Resource Owner: 엑세스중인 리소스의 유저, 이 상황에서는 지원이다.

-- Client: 제 3의 서비스로부터 인증을 받고자 하는 서버. velog 사이트이다.

-- Resource Server: 유저의 정보를 저장하고 있는 사이트. github 사이트이다.

-- Authorization Server: Client가 Resource Owner의 리소스를 사용하기 위해 Client에게 액세스 토큰을 발급하는 서버이다.

-- Authorization grant: Client가 엑세스 토큰을 받아오기 위해서 먼저 Authorization Code를 받아 엑세스 토큰과 교환하는 방식이다.

-- Authorization Code: 엑세스 토큰을 발급받기 전에 필요한 code이다. client ID로 이 code를 받아온 후, client secret과 code를 이용해 엑세스 토큰을 받아온다.

-- Access Token: 보호된 리소스에 엑세스 하는 데 사용되는 credentials이다. Authorization Code와 client secret을 이용해 받아온 엑세스 토큰으로 이제 resource server에 접근할 수 있다.

-- Scope: 토큰의 권한을 정의한다. 주어진 엑세스 토큰으로 액세스할 수 있는 리소스의 범위이다.

위의 예는 Authorization grant type을 이용한 방식이다.

Resource Owner가 client로 접근하면 엑세스 토큰을 받아오기 위해 먼저 Authorization Code를 받는다.(4번) 그다음 이를 이용해 엑시스 토큰으로 교환하고(5번) 이를 이용해 Resource Server에 접근한다.(6번)



이번 시간에는 OAuth에 대해 공부했다.
다음시간에는 지금까지 배웠던 내용을 바탕으로 마지막 HA 시험을 본다!
오늘은 여기까지~!

profile
안녕하세요 유지원입니다

0개의 댓글