본문 바로가기
[ JAVA ]/JAVA Spring Security

[ Spring Boot ] OAuth2 - Google Cloud 프로젝트 생성

by 환이s 2023. 6. 1.


오늘은 Spring Security에 공부하다가 알게 된 OAuth2 프로토콜의 개념과 Google Cloud 프로젝트를 등록하는 포스팅을 해보겠습니다.

 

 

OAuth2 란?

 

OAuth 2.0은 웹 및 모바일 애플리케이션에서 사용자 인증 및 인가를 처리하기 위한 개방형 표준 프로토콜입니다. 이 프로토콜은 클라이언트 애플리케이션이 인증 및 인가 서비스 제공자(예: 구글, 페이스북, 트위터)의 리소스에 접근할 수 있는 권한을 얻기 위해 사용됩니다.

 

OAuth 2.0은 다음과 같은 역할을 수행하는 다양한 주제로 구성됩니다.

 

  • 리소스 소유자(Resource Owner) : 보호된 리소스에 액세스하려는 사용자입니다. 일반적으로 웹 애플리케이션의 엔드 사용자를 의미합니다.

 

  • 클라이언트(Client) : 리소스 서버에 액세스하려는 애플리케이션입니다. 클라이언트는 리소스 서버로부터 사용자의 데이터를 안전하게 받아오기 위해 OAuth 2.0 프로토콜을 사용합니다.

 

  • 인증 서버(Authorization Server) : 클라이언트에게 액세스 토큰을 발급하고 인증 및 인가 프로세스를 처리하는 서버입니다. 사용자의 동의를 통해 클라이언트에게 리소스에 대한 권한을 부여합니다.

 

  • 리소스 서버(Resource Server) : 보호된 리소스를 호스팅 하고, 클라이언트에게 액세스 권한이 부여된 경우 클라이언트에게 리소스를 제공하는 서버입니다.

 

OAuth 2.0 프로토콜은 다음과 같은 주요 단계로 구성됩니다.

 

  1. 클라이언트가 인증 서버에게 인가 코드(Authorization Code)를 요청합니다.
  2. 사용자는 인증 서버로 이동하고. 클라이언트가 요청한 권한을 허용할 것인지 사용자에게 확인을 받습니다.
  3. 사용자가 동의하면, 인증 서버는 인가 코드를 발급합니다.
  4. 클라이언트는 액세스 토큰을 사용하여 리소스 서버에 액세스하고, 사용자의 리소스를 요청합니다.
  5. 리소스 서버는 액세스 토큰을 검증하고, 클라이언트에게 요청된 리소스를 제공합니다.

그럼 구글 Cloud 프로젝트 생성 하려면 어떻게 해야할까??

 

TIP)

 

구글 로그인 기능 구현할 때 Authentication 객체를 사용하여 구현할 수 있습니다.

Authentication 객체에 대해서 궁금하신 분들은 이전 포스팅을 보고 오시면 이해하기 더 편합니다!

 

 

[ Concept ] Authentication 객체

시큐리티에 대해서 공부하던 중 Authentication 객체를 사용해서 인증 과정을 알아가고 있습니다. 처음 사용해 보는 객체인 만큼 개념에 대해서 알아두고 메모해두기 위해 포스팅을 해보겠습니다. A

drg2524.tistory.com

 

Google은 OAuth2.0 프로토콜을 사용하여 사용자 인증을 처리하므로, 인증 및 인가를 위해 Authentication 객체를 사용할 수 있습니다.

 

구글 Cloud 프로젝트를 구현하는 일반적인 절차는 다음과 같습니다.

 

Google API Console

 

해당 페이지에서 프로젝트를 생성하고, OAuth 2.0 클라이언트 ID를 발급받습니다.

 

프로젝트 생성하는 팝업창은  Google Cloud 로고 옆에 카테고리를 클릭하시면 나옵니다.

 

 

 

새 프로젝트 버튼을 클릭하시면 프로젝트 설정 페이지로 이동합니다.

프로젝트 이름만 설정하고 만들기 버튼을 클릭합니다.

 

 

 

프로젝트를 생성하고 구글 OAuth 클라이언트를 사용하기 위해서 OAuth 동의화면 탭을 클릭하여 설정 화면으로 이동합니다.

 

 

설정 화면에 들어오시면, 앱 이름, 이메일, 로고를 입력하고, 나머지는 무시하고 저장 후 계속 버튼을 눌러서 만들어줍니다.

 

 

생성하고 다시 페이지 클릭해서 들어오시면 위 사진처럼 나옵니다.

다음으로 사용자 인증 정보 페이지로 이동해서 클라이언트 ID와 클라이언트 보안 비밀번호를 저장해 둡니다.

 


마치며

 

클라우드 프로젝트 생성 하는 방법을 알아봤습니다.

다음 포스팅은 이어서 구글 로그인 기능 구현을 해보겠습니다.

 

 

728x90