해당 글에서는 Google Login을 위해서 Google Cloud Console의 OAuth 2.0 API 액세스 기능을 활성화하는 환경 설정방법에 대해 알아봅니다.

💡 [참고] Keycloak 초기 구성에서부터 활용방법에 대해 궁금하시면 아래의 글을 참고하시면 도움이 됩니다.
분류 | 주제 | URL |
Docker | Docker Compose를 이용한 Keycloak 환경 구성 및 실행 방법 | https://adjh54.tistory.com/644 |
환경설정 | Google Cloud Console OAuth 2.0 API 액세스 환경 설정하기 | https://adjh54.tistory.com/657 |
이해하기 | Keycloak 이해하기 -1 : 구성 요소, 인증 처리과정, 주요 기능 | https://adjh54.tistory.com/645 |
이해하기 | Keycloak 이해하기 -2 : SAML/OIDC 프로토콜, 인증 흐름(Authentication flow) 종류 | https://adjh54.tistory.com/646 |
이해하기 | Keycloak 이해하기 -3 : 기본 환경 구성 및 로그인/로그아웃 구현 | https://adjh54.tistory.com/647 |
이해하기 | Keycloak 이해하기 -4 : Keycloak 권한 및 종류 | https://adjh54.tistory.com/655 |
구성하기 | Spring Boot 환경에서 Keycloak 활용하기 -1 : OIDC 인증 흐름 구현(Standard Flow) | https://adjh54.tistory.com/648 |
구성하기 | Spring Boot 환경에서 Keycloak 활용하기 -2 : OIDC 인증 흐름 구현(Direct Access Grants, Implicit Flow) | https://adjh54.tistory.com/649 |
구성하기 | Spring Boot 환경에서 Keycloak 활용하기 -3 : OIDC 인증 흐름 구현(Service Accounts Roles) | https://adjh54.tistory.com/654 |
구성하기 | Spring Boot 환경에서 Keycloak 활용하기 -4 : Identity providers Social 소셜 로그인 구현(Google) | https://adjh54.tistory.com/658 |
Github | Spring Boot Keycloak 관련 Repository | https://github.com/adjh54ir/blog-codes/tree/main/spring-boot-keycloakhttps://github.com/adjh54ir/blog-codes/tree/main/spring-boot-keycloak-sub |
1) Google Cloud Console OAuth 2.0 API 액세스
💡 Google Cloud Console OAuth 2.0 API 액세스
- Google의 서비스와 리소스에 안전하게 접근할 수 있도록 인증과 권한 부여를 제공하는 프로토콜입니다.
- OAuth 2.0을 사용하면 사용자의 Google 계정 정보를 안전하게 활용하여 애플리케이션에서 Google 서비스에 접근할 수 있습니다.
- 해당 액세스를 통해서 안전한 사용자 인증 및 권한 부여를 제공하며, 토큰 기반의 접근 제어를 제공합니다. 또한, 다양한 인증 플로우 지원 (Authorization Code, Client Credentials 등)하며 세분화된 권한 범위(Scope) 설정이 가능합니다.

2) Google Cloud Console OAuth 2.0 API 액세스 설정
💡 Google Cloud Console OAuth 2.0 API 액세스 설정
- Google Social 로그인을 수행하기 위해서 클라이언트 아이디와 클라이언트 보안 비밀번호를 발급받는 환경 설정을 구현합니다.
1. Google Cloud API > 서비스 사이트 접속합니다.
💡 Google Cloud API > 서비스 사이트 접속합니다.
- 해당 액세스에 발급과정을 위해서 아래의 사이트에 접속을 합니다.
Google 클라우드 플랫폼
로그인 Google 클라우드 플랫폼으로 이동
accounts.google.com
2. 사용자 인증 정보 > 사용자 인증 정보 만들기 > 'OAuth 클라이언트 ID'를 선택합니다.
💡 사용자 인증 정보 > 사용자 인증 정보 만들기 > 'OAuth 클라이언트 ID'를 선택합니다.
- OAuth 2.0을 기반으로 구글 로그인과의 연동을 수행하기 위해서 OAuth 클라이언트를 생성합니다.

3. '동의 화면 구성' 버튼을 누릅니다.
💡 동의 화면 구성 버튼을 누릅니다
- 최초 설정을 하는 경우, 동의 화면 구성이 출력이 됩니다.

[ 더 알아보기 ]
- 사용자가 애플리케이션에 Google 계정으로 로그인할 때 보게 되는 화면을 설정합니다.
💡 동의 화면 구성(OAuth consent screen)은 뭘까?
- 애플리케이션의 이름, 로고, 개발자 연락처 등 기본 정보를 표시합니다
- 애플리케이션이 요청하는 권한(예: 이메일 주소 읽기, 프로필 정보 접근 등)을 사용자에게 명확히 보여줍니다
- 사용자가 이러한 권한 요청을 수락하거나 거부할 수 있게 합니다
4. ‘외부’를 선택하고 User Type을 선택한 뒤 '만들기' 버튼을 누릅니다.
💡 ‘외부’를 선택하고 만들기 버튼을 누릅니다
- User Type의 주요한 차이는 일반적으로 공개 서비스를 개발하는 경우 '외부'를 선택하고, 회사나 조직 내부에서만 사용하는 경우 '내부'를 선택합니다.
- User Type의 주요한 차이는 아래와 같습니다.
구분 | 내부 | 외부 |
대상 | Google Workspace 사용자만 | 모든 Google 계정 사용자 |
검증 | Google 검증 불필요 | Google 검증 필요 |
사용자 수 | 제한 없음 | 테스트 사용자 100명 제한 (검증 전) |
민감한 범위 | 즉시 사용 가능 | Google 검증 필요 |
적합한 경우 | 회사/조직 내부용 앱 | 일반 사용자 대상 앱 |

5. 앱 등록 수정 -1 > OAuth 동의화면 > 필수 선택 사항만 입력을 합니다.

6. 앱 등록 수정 -2 > OAuth 동의화면 > 애플리케이션 홈페이지, 개발자 연락처 정보를 입력하고 ‘저장하고 계속’버튼을 누릅니다.
💡 앱 등록 수정 -2 > OAuth 동의화면 > 애플리케이션 홈페이지, 개발자 연락처 정보를 입력하고 ‘저장하고 계속’버튼을 누릅니다
- 앱 도메인 > 애플리케이션 홈페이지는 해당 Google Social Login을 수행할 페이지에 대한 경로입니다.
- 참고로 해당 사항들은 추후에 수정이 가능하기에 필수적인 요소만 작성을 합니다.

7. 앱 등록 수정 > 범위 > 저장 후 계속 버튼을 누릅니다.

8. 앱 등록 수정 > 테스트 사용자 > 테스트 사용자를 입력합니다.
💡 앱 등록 수정 > 테스트 사용자 > 테스트 사용자를 입력합니다.
- 해당 테스트는 아직 검토이전이기에 테스트용이기에 테스트 사용자를 입력합니다.
- 위에 User Type을 ‘외부’로 선택했기에, 검증 이전에는 테스트 사용자 100명으로 제한이 됩니다.

9. 앱 등록 수정 > 앱 요약 > 대시보드로 이동하기 버튼을 누릅니다.

10. 다시 사용자 인증 정보 > 사용자 인증 정보 만들기 > OAuth 클라이언트 ID를 선택합니다.

11. OAuth 클라이언트 ID 만들기 > 주요 값들을 선택하고 로그인 성공시 리다이렉트 되는 URL을 입력합니다.
💡 OAuth 클라이언트 ID 만들기 > 주요 값들을 선택하고 로그인 성공시 리다이렉트 되는 URL을 입력합니다.

💡 [참고] Keycloak을 이용하는 경우에는 아래와 같이 Realm 내에 생성하여 반환 받은 리다이렉트 URL을 입력해야 합니다.
- 이 과정을 통해서 사용자 -> Keycloak -> Google -> Keycloak -> 클라이언트 애플리케이션 과정으로 처리가 됩니다.
// http://localhost:9001/realms/dev-realm/broker/google/endpoint

12. 최종적으로 클라이언트 ID와 클라이언트 보안 비밀번호가 발급되었습니다.
💡 최종적으로 클라이언트 ID와 클라이언트 보안 비밀번호가 발급되었습니다.
- 해당 발급받은 클라이언트 ID와 클라이언트 보안 비밀번호를 통해서 OAuth 2.0 프로토콜을 통해 로그인을 구현할 수 있게 되었습니다.

오늘도 감사합니다 😀

'Java > 환경설정' 카테고리의 다른 글
[Java] NAVER 메일 SMTP 환경 설정 방법 (1) | 2024.11.11 |
---|---|
[Java] Google Gmail SMTP 환경 설정 방법 (0) | 2024.11.11 |
[Java] OAuth 2.0 카카오 개발자(Kakao Developers) 동의항목 권한 없음 해결 방법 : 테스트 앱 생성 (1) | 2024.11.09 |
[Java] Spring Boot 환경에서 OAuth 2.0 설정 -2 : 네이버 로그인 설정 및 구성요소 확인 (2) | 2024.11.01 |
[Java] Spring Boot 환경에서 OAuth 2.0 설정 -1: 카카오 로그인 설정 및 구성요소 확인 (1) | 2024.10.31 |