Oauth 2.0 인증 방법과 Oauth를 이용해서 Google API에 접근하기
공식문서 참고함
https://developers.google.com/identity/protocols/oauth2?hl=ko
OAuth 2.0을 사용하여 Google API에 액세스하기 | Authorization | Google for Developers
이 페이지는 Cloud Translation API를 통해 번역되었습니다. 의견 보내기 OAuth 2.0을 사용하여 Google API에 액세스하기 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요.
developers.google.com
https://datatracker.ietf.org/doc/html/rfc6749#section-1.7
RFC 6749: The OAuth 2.0 Authorization Framework
The OAuth 2.0 authorization framework enables a third-party application to obtain limited access to an HTTP service, either on behalf of a resource owner by orchestrating an approval interaction between the resource owner and the HTTP service, or by allowi
datatracker.ietf.org
Google API 클라이언트 라이브러리 또는 Google OAuth 2.0 엔드포인트를 사용하여 Google API에 액세스하기 위한 OAuth 2.0 승인을 구현하는 방법을 설명합니다.
먼저, OAuth란?
OAuth은 Open Authorization의 약자로, 사용자의 비밀번호를 직접 입력하지 않고도 다른 앱이나 서비스에 사용자의 계정 정보를 위임하여 접근 권한을 부여하는 인증 및 권한 부여 프레임워크입니다.
즉, 사용자 계정을 만들거나 비밀번호를 공유하지 않고도 다른 서비스와 연결하여 사용할 수 있게 해주는 기술.
-
1. 인증 (Authentication): Who you are사용자의 신원을 확인하는 과정입니다. 사용자 계정 정보를 통해 사용자의 신원을 확인하고, OAuth를 통해 다른 서비스에 접근 권한을 위임할 수 있습니다.2. 인가 (Authorization): What you can do사용자의 허락을 받아 특정 리소스에 대한 접근 권한을 부여하는 과정입니다. 사용자는 어떤 서비스에 어떤 권한을 부여할지 선택할 수 있으며, 이 과정을 통해 안전하게 데이터를 공유할 수 있습니다.
기본단계
1. Google API Console에서 OAuth 2.0 사용자 인증 정보를 가져옵니다.
2. Google 승인 서버에서 액세스 토큰을 가져옵니다.
3. 사용자가 부여한 액세스 범위를 검토합니다.
4. 액세스 토큰을 API에 전송합니다.
5. 필요한 경우 액세스 토큰을 새로고침합니다.
이미지를 통해 좀더 상세한 순서 참고
✅ Resource Owner (로그인 당사자)
- 자신의 Google 계정 정보를 소유한 사용자입니다.
- 당신의 웹사이트가 이 사용자로부터 정보를 얻기 위해 OAuth 인증을 요청합니다.
✅ Application (로그인하는 사이트/ex:내가 만든 웹사이트)
- 유저 정보를 얻기 위해 Google OAuth를 통해 사용자 인증 및 권한을 요청하는 클라이언트
- Authorization Code를 받아서 Access Token으로 교환하고, 그 Token을 이용해 유저 정보를 요청
✅ Authorization Server (Google OAuth 서버)
- 인증(로그인)과 권한 부여를 담당
- Authorization Code 발급 → Access Token 발급 담당
✅ Resource Server (Google API 서버)
- 실제로 유저의 프로필 정보 등 데이터를 보관하고 있는 서버
✅ 정리
위의 3,4번에서 유저가 Google OAuth서버에 인증과 권한을 요청할때,
OAuth 서버에서는 사용자를 로그인 시키고, Authorization Code를 리디렉션 URL로 전달
그럼 내가 만든 서버에서 Authorization Code를 제출하고 Access Token을 발급받는다.
이후 Access Token으로 유저 정보를 Google에게 요청 후, 이때 유저의 프로필, 이메일 등 리소스를 반환받는다.
이렇게 oauth인증을 통해 인증이 완료되면, 로그인 하는 사이트(내가 만든 웹사이트) DB 유저정보와 대조 후 로그인을 완료시킴
다음 글에는 어떻게 Django에서 OAuth를 구현하는지 해보겠다.