생활코딩님의 강의를 듣고 정리하는 글입니다. 제가 임의로 다시 정리한 것이기 때문에 실제 강의와는 조금 다릅니다.
OAuth라는 기술은 언제 사용하는 것인가?
먼저 나의 서비스, 그것의 사용자, 그리고 구글과 같은 대형 서비스가 있다고 하자. 대형 서비스는 구글이라고 퉁치자.
나의 서비스는 사용자에게 구글 아이디와 비밀번호를 받고, 나의 서비스는 그것을 갖고 구글에 로그인하여 기능을 제공한다.
이렇게 된다면 사용자의 아이디, 비밀번호가 나의 서비스에게 그대로 전달되는 문제가 생기고, 이것은 구글에게도 문제가 된다.
이런 상황을 해결할 수 있는 기술이 OAuth이다. 나의 서비스와 구글을 연동시키는 것이다.
사용자의 요청에 의해 구글(대형 서비스)은 accessToken이라는 일종의 비밀번호 같은 것을 나의 서비스에게 제공한다.
이것은 우선 실제 비밀번호가 아니기 때문에 보안적으로 안전하고, 구글의 모든 서비스가 아닌 일부 서비스만 접근하도록 할 수 있다.
그럼 나의 서비스는 OAuth 기술을 통해 액세스 토큰을 얻어내고 그것으로 구글에 접근할 수 있다.
이 기술을 사용하기 위해 3가지 주체가 등장한다.
* Resource Server - 리소스 제공자.(대형 서비스) 액세스 토큰을 발급하는 역할을 한다. 실제 OAuth 문서에는 Authorization Server라는 인증 담당 서버가 있지만, 여기서는 합쳐서 언급하겠다.
* Resource Owner - 사용자
* Client - 나의 서비스, 헷갈리면 안된다. 액세스 토큰을 사용하는 것이 클라이언트다.
OAuth를 사용하기 위해서는, 클라이언트가 리소스 서버에 접속하기 위해, 먼저 리소스 서버에게 승인을 받아야 한다. 이것을 등록이라고 한다.
등록 과정은 서비스마다 다르다.
등록을 하게 되면 공통적으로 클라이언트 ID, 클라이언트 Secret, Authorized Redirect URIs 를 받는다.
id는 식별자, secret은 비밀번호이다. 따라서 secret은 외부에 노출되면 안된다.
Authorized Redirect URIs은 리소스 서버가 권한을 부여해주는 과정에서 클라이언트가 요청을 해야하는 주소이다.
'study > 이거저거' 카테고리의 다른 글
OAuth 2.0 - 생활코딩 강의 정리(3) (0) | 2021.05.02 |
---|---|
OAuth 2.0 - 생활코딩 강의 정리(2) (0) | 2021.05.01 |
엉터리 정리 - yaml (0) | 2021.03.23 |
엉터리 정리 - 쿼리 스트링 (0) | 2021.03.20 |
엉터리 정리 - 깃, http, MIME (0) | 2021.03.18 |