API/OAuth2.0

Kakao Developers 페이지에서 가져온 내용

https://developers.kakao.com/docs/latest/ko/kakaologin/common

 

정리

1) 카카오 계정과 어플리케이션을 연결하고, 토큰을 발급 받아서 사용자를 해당 어플리케이션에 로그인 시킨다.

2) Access Token : 카카오 API 호출 권한 부여 토큰

   -> 로그인을 통해 발급

3) Refresh Token : Access Token 갱신

4) 해당 토큰으로 사용자정보를 얻은 다음 DB에 따로 가입처리를 해주어야함

 

인증 과정

 

정리

1) 인증서버에서 제공할 로그인 페이지 필요

2) 토큰을 생성 해주고 전달해주어야함

3) 구현해보려면, OAuth 2.0 서버의 사용자 DB / 어플리케이션 서버의 DB 이렇게 별도로 사용자 데이터베이스 필요

'API > OAuth2.0' 카테고리의 다른 글

OAuth 2.0 ?  (0) 2021.06.21

 

내 생각

 

   OAuth 2.0 서버를 만들어 보려는 이유는 인증서비스 제공이 어떻게 이루어지는지 이해해보려고 함이다.

요즘 없는 곳이 없는 카카오 소셜로그인 처럼 API 문서를 따라해보면, 나의 어플리케이션과 연동하는 것은 그리 어렵지않다.

 

하지만, 반대로 내가 인증서비스(OAuth 2.0) 서버를 구축하여, 서비스 제공자의 역할을 좀 더 자세히 알고 싶어서이다.

 


 

 

검색 해본 것

https://ko.wikipedia.org/wiki/OAuth

 

위키에서 OAuth를 검색해보니 관련 용어가 있어서 가져왔다.

 

  평소에 작업하면서 쓰는 용어는 인증 제공자로써 Service Provider 대신 IDP라고 쓰고, 위키에서 소비자라고 쓰는 부분은 어플리케이션 서비스 제공자로써 SP라고 쓰고 있어서 좀 헷갈리긴한다


OAuth에 관련된 용어들을 간략히 설명한다.

  • 사용자(user): 서비스 제공자와 소비자를 사용하는 계정을 가지고 있는 개인 -> 카카오계정 이용자
  • 소비자(consumer): Open API를 이용하여 개발된 OAuth를 사용하여 서비스 제공자에게 접근하는 웹사이트 또는 애플리케이션 -> 소셜로그인 연동을 하려고하는 개발자가 관리하는 웹사이트 또는 어플
  • 서비스 제공자(service provider): OAuth를 통해 접근을 지원하는 웹 애플리케이션(Open API를 제공하는 서비스)    -> 카카오 
  • 소비자 비밀번호(consumer secret) : 서비스 제공자에서 소비자가 자신임을 인증하기 위한 키 -> 내가 카카오와 서비스를 연동했다라는 인증키
  • 요청 토큰(request token) : 소비자가 사용자에게 접근권한을 인증받기 위해 필요한 정보가 담겨있으며 후에 접근 토큰으로 변환된다. -> 내 어플리케이션은 너희 카카오 인증서비스와 연결이 되있으니, 이 사용자가 카카오로그인을 성공하고나면 그 응답으로 인증받았다는 증거를 달라
  • 접근 토큰(access token) : 인증 후에 사용자가 서비스 제공자가 아닌 소비자를 통해서 보호된 자원에 접근하기 위한 키를 포함한 값.

 

정리

서비스 개발자가 카카오 인증과 연동을 해놓으면, 사용자는 카카오계정을 통해 로그인이 가능해진다.

로그인을 하면, 카카오 인증서버는 응답으로 토큰을 발행하고, 그 토큰으로 사용자가 인증을 받았다고 간주하고, 자신의 서비스에 로그인을 시킨다. 이 사용자에 대한 권한 관리는 별도로 어플리케이션에서 해주겠지만 인증주체가 외부에 있다는 것이 특징인것 같다.

 

 

 

'API > OAuth2.0' 카테고리의 다른 글

OAuth 2.0 인증 과정  (0) 2021.06.21