기존에 예를 들기위해 사용자 / 나의 서비스 / 그들의 서비스로 나누었다.
이는 Oauth 공식 메뉴얼을 이해하기 위한 바탕이였으며, 해당 메뉴얼에 따르면 앞선 3개의 주체를 그대로 Resource Owner / Client / Resource Server로 역할을 분리하였다.
메뉴얼에는 Resource Server (자원관리서버)와 Authorization Server(인증/인가서버)를 구분하여 설명하지만, 해당 강의 및 블로그 포스팅에서는 이 둘을 합쳐서 그냥 Resource Server로 부르기로 함
사용자는 자원을 소유하고 있는 소유자라해서 Owner이고, 그들의 서비스는 자원을 이용하는 서버라해서 Resource Server, 마지막으로 우리의 서비스는 리소스 서버를 사용하는 고객이라는 입장으로 Client가 된다. 앞으로는 이 용어로 설명하겠다.
본격적으로 OAuth를 사용하기 위한 절차를 알아보자.
먼저 Client는 Resource Server를 사용하기 위해서는 , 리소스 서버의 승인을 사전에 받아야한다. 이것을 등록 // 서비스마다 등록하는 방법이 다름
그러나, 공통적으로 Client ID, Client Secret, Authorized redirect URIs 라는 요소를 사용한다.
ID는 어플리케이션을 식별하는 식별자, Secret은 ID에 대한 비밀번호이다.
ID는 외부로 유출되어도 되지만, Secret는 유출되면 엄청난 보안사고가 발생하기에 조심해야한다. Authorized redirect URIs는 리소스 서버가 권한을 부여하는 과정에서 우리한테 Authorize Code라는 값을 전달하게 되는데, 그 때 해당 주소로 전달해달라는 의미로 받으면된다. 다른 주소로 요청이 들어오면 무시하면 되기 때문이다 .
내가 이전에 진행했던 프로젝트에서 사용한 코드로 예를 들겠다.
작성일 기준에도(8월3일) 배포되어 운영중인 프로젝트가 있는데, 여기서 OAuth2를 접목시켜 회원서비스를 구현했다. 이 프로젝트에서 사용된 Redirect URIs는 로컬(개발)용, 배포용으로 나뉘어 사용했다.
위의 주소(localhost:8080)가 로컬(개발)용이고, 아래의 주소가 배포용 Redirect URI이다.
생활코딩 OAuth2 강의에서는 페이스북, 구글을 예시로 OAuth를 등록하는 방식을 알려주지만, 이는 카카오 OAuth2로그인 임을 밝힌다. 카카오를 사용하기 위해서는 카카오 로그인이 선행되어야함
https://developers.kakao.com/console/app 이 사이트에서
애플리케이션 추가하기를 누르면 아래와 같은 사진이 나오고, 각각 칸에 맞게 기재하면 된다.
[출처] : https://oauth.net/2/
[출처] : https://developers.kakao.com/console/app
[출처] : https://www.inflearn.com/course/lecture?courseSlug=web2-oauth2&unitId=36280
[출처] : https://www.inflearn.com/course/lecture?courseSlug=web2-oauth2&unitId=36282
큰 도움이 되었습니다, 감사합니다.