Web

OAuth란?

JUNGKEUNG 2021. 6. 18. 21:03

OAuth란?


고객이 어떤 A사이트의 서비스를 이용하려고 한다.

A사이트가 아닌 제3자 Their(그들) Google,kakao,naver 등  A 사이트에서 연동하려고하는 Their의 서비스가 있다

고객이 A 사이트에 접속해서 글을 작성했다. 고객은 자신이 쓴 글을 페이스북이나 인스타에도 올리고 싶어한다.

A사이트는 고객이 가지고있는  페이스북이나 인스타에 등록한 아이디/비밀번호를 이용하여 페이스북 이나 인스타에도  글이 올라갈수있도록 서비스를 만들었다.

 이런 서비스를 이용하려면  A사이트에서 고객로 부터 고객이 사용하고있는 그들의 서비스에 접근할수 있도록 허가을 받아야한다. 가장 쉬운 방법으로는 사용자의 아이디/패스워드 받아 그들과 일치하는지 비교하는것이다 일치하면 그들의 서비스를 사용할수있게 된다.

 하지만 이것은 사용자로써 매울 불안하고 불만이 가지게된다. 사용자는 처음 보는 사이트에 자신의 아이디 비밀번호을 굳이 알려주면서 까지 사용할 필요가 있는지 또 그 사이트가 보안이 잘되어있는지 모르는 상태이기 때문에  불안하고 불만이 생기는것이다

 

A사이트한테도 안좋은것이다. 사용자의 생명줄과 같은 아이디와 비밀번호을 가지고있기 때문에 이것이 유실되었을때 격게될 여러가지 고초들은 상상만해도 끔찍하다. 

 

그들의 서비스 입장에서도 자신들의 사용자의 아이디 비밀번호를 신용할수 없는 제3자가 가지고 있다는것은 매우 불만족한 상황이다.

이러한 상황을 해결해줄 것이 바로 OAuth 이다

OAuth를 이용하면 훨신더 안전하게 우리가 만든 서비스와 그들이 만든 서비스를 상호작용할수 있게 된다

 

예전에는 그들의 서비스에 있는 사용자의 아이디 비밀번호을 가지고있었는데 이제는 아이디 비밀번호를 대신해서

access Token이라는 일종의 비밀번호를 발급한다.

 

Thier 그들을 이제부터 Resource Server 라 하겠다

고객을 Resource Owner 라고 하겠다

A사이트는 Client라고 하겠다

 

 

 

AccessToken


  1. Resource Server가 가지고있는 아이디, 비밀번호가 아니다. 아이디/비밀번호를 AccessToken으로 암호화한 것이다.
  2. Resource Server가 가지고있는 모든 서비스가 아니라 그 중의 Client가 꼭 필요한 부분 서비스를 제공하는 비밀번호다

우리가 OAuth을 이용해 그들의 access Token을 얻은 다음에 이 access Token으로 그들의 서비스를 이용할수 있게 되는것이다. 

 

OAuth에는 총 4가지로 되어있다 Resource Owner, Client, Authorization Server, Resource Server

Authorization Server는 Resource Server에 포함되어있어 따로 작성안하는곳도 있지만 자세하게 알기위해 작성하겠다.

Authorization Server  = 인증과 관련된 처리를 전담하는 역할

(오써러제이션) 허가,인증

 

 

 

 

 

OAuth1.0 과 OAuth 2.0 차이

OAuth1.0에서는 Signature가 필요했으며 인증 토큰이 2개가 필요했다 1개는 Acces Token 또 1개는 Request Token이 필요했지만 2.0에서는 Signature가 필요가 없어지며 토큰도 Acces Token 한개만 있으면 된다. 또 1.0에서는 인증 과정에 복잡했지만 2.0에서는 SSl을 사용함으로써 인증과정이 간소화되었다.

Requset Token (리퀘스트 토큰) : 사용자가 접근권한을 획득하는 과정에서 사용하는 값이며, 이 것은 차후 엑세스 토큰으로 교환됩니다.

 

 

 

총 정리


OAuth란

다른 웹사이트에서 접근 권한 서비스 및 로그인 인증 방식이다. 사용자가 사용하려는 사이트에게 비밀번호를 알리지 않고 Access Token을 사용하여 인증을 얻어 접근 권한 서비스를 사용할수 있도록 한것이다.

 

OAuth1.0과 OAuth 2.0 차이 정리 

1. OAuth 2.0에서는 SSL을 사용함으로써 인증과정 간소화

2. 2.0에서는 Signature 시그니처(서명)가 필요없음

3. 토큰이 생성되고나서 OAuth 1.0은 매번 API를 호출할때마다 2개의 보안토큰이 필요하고, OAuth 2.0은 하나의 토큰만 필요함 (Access Token, Request Token 2개가 필요했지만, Aouth 2.0에서는 Access Token 1개만 필요하다)

 

 

 

 

'Web' 카테고리의 다른 글

웹 브라우저의 요청 흐름  (0) 2021.07.04
TCP UDP 란?  (0) 2021.07.03
URI, URL, URN 이란?  (0) 2021.06.18
쿠키 세션 그리고 캐시  (0) 2021.05.31
OSI 7계층  (0) 2021.05.30