본문으로 이동

2026년 구글 클라이언트 ID를 얻는 방법: 2026년 가이드

2026년 OAuth 2.0 및 Google Sign-In을 위한 구글 클라이언트 ID 설정을 마스터하세요. 구글 클라우드에서 클라이언트 ID를 생성, 관리 및 효과적으로 사용하는 방법을 알아보세요.

마틴 도나디우

마틴 도나디우

콘텐츠 마케터

2026년 구글 클라이언트 ID를 얻는 방법: 2026년 가이드

당신은 구글 시그니인을 빠르게 통합할 것으로 예상했을 것이다. 그러나 하나의 앱 유형이 클라이언트 시크릿을 제공하고 다른 하나는 제공하지 않는 이유를 이해하기 위해 자격 증명 화면을 응시하고 있다. 그 혼란은 특히 Capacitor, 이온, 전자, 또는 혼합 웹 및 네이티브 스택으로 빌드하는 경우 일반적이다.

실제 구현을 깨는 부분은 대부분의 가이드가 생략하는 부분입니다. __CAPGO_KEEP_0__ ID는 플랫폼에 따라 다릅니다.__CAPGO_KEEP_1__ 및 비 웹 앱 유형은 종종 그것을 디자인에 따라 클라이언트 시크릿을 얻지 못합니다. 잘못된 자격증을 만들어서 시크릿을 흐름에 강제로 넣으면 일반적으로 오류가 발생하는 OAuth 설정을 디버깅하는 것이 더 어려워집니다.

__CAPGO_KEEP_2__

구글 생태계와 앱을 연결

많은 팀이 동시에 이 문제를 겪는다. 그들은 Google으로 로그인, 또는 사용자 인증을 위해 Drive나 캘린더와 같은 것에 접근하려고 할 때, suddenly API 키가 더 이상 충분하지 않습니다.

사용자 로그인 및 위임된 접근이 OAuth를 통해 실행되기 때문입니다. Google은 앱을 식별할 방법이 필요합니다. __CAPGO_KEEP_0__만 호출되는 것이 아니라, not just the API being called. The credential that does that is the 이 credential이 그 역할을 합니다..

다중 플랫폼 코드베이스에서 작업 중이라면 혼란이 빨리 심해집니다. 웹 프론트엔드, 안드로이드 셸, iOS 앱, 그리고 데스크톱용 Electron 빌드가 공유될 수 있습니다. 그들은 제품 브랜딩과 백엔드 로직을 공유할 수 있지만, OAuth 식별성을 공유해서는 안 됩니다.

실용적인 OAuth 설정은 몇 가지 구현 질문으로 귀결됩니다.

  • 어떤 애플리케이션 유형을 생성해야 하나요
  • 클라이언트 시크릿이 필요하나요
  • redirect URI 또는 origin이 정확히 일치해야 하나요
  • 모바일 및 웹 흐름을 연결하는 방법은 어떻게 해야 하나요. credential을 섞어서는 안 됩니다.
  • Why a flow that works in the browser fails inside a native wrapper

실용적인 규칙: If your app is asking for user permission or sign-in, start by thinking in OAuth client types, not API keys.

그 distinction은 시간을 절약하고, 또한 웹 인증서만으로 모바일 로그인 흐름을 구축하는 일반적인 실수를 방지한다. 만약 이 구현을 Capacitor 앱에서 하신다면, 이 앱 내 흐름을 위한 유용한 동반자로 작용하는 OAuth2 in Capacitor 앱의 가이드는 이곳에 있습니다. OAuth2 in Capacitor apps A

Google OAuth 2.0 client ID

Google의 인증 시스템에서 애플리케이션의 공공 식별자입니다. Google은 액세스 토큰을 요청할 때 Google 인증 엔드포인트에서 애플리케이션의 신원을 확인하는 토큰 교환 과정에서 앱의 신원을 확인하기 위해 사용되는 유니크한 사용자 이름으로 설명합니다. 또한 Google Cloud의 OAuth 클라이언트 문서에서 설명했듯이, 이 식별자는 __CAPGO_KEEP_0__ 키와 구별됩니다. A diagram explaining that a Google Client ID acts as a unique identifier and security layer for applications. is the public identifier for your application in Google’s auth system. Google describes it as the unique username for an application when requesting access tokens from Google authentication endpoints, and notes that it’s distinct from API keys because it’s used in OAuth flows to verify the app’s identity during token exchange, as explained in OAuth 클라이언트 타입에 대해 생각하기 시작하면, 앱이 사용자 승인 또는 로그인 요청을 하는지 여부에 관계없이 시간을 절약하고, 또한 웹 인증서만으로 모바일 로그인 흐름을 구축하는 일반적인 실수를 방지할 수 있습니다..

만약 이 구현을 __CAPGO_KEEP_0__ 앱에서 하신다면, 이 앱 내 흐름을 위한 유용한 동반자로 작용하는 OAuth2 in __CAPGO_KEEP_0__ 앱의 가이드는 이곳에 있습니다.

간단한 정신 모델

앱의 Google 클라이언트 ID 문제는 앱이 사용자 이름을 대신하여 동작하도록 요청할 때 발생합니다. public username.

Google에게

이 등록된 애플리케이션에서 요청이 오고 있습니다.

이 요청은 이 등록된 애플리케이션에서 오고 있습니다. 이 요청은 이 등록된 애플리케이션에서 오고 있습니다.
API key identifies a project for certain API calls that don’t involve delegated user authorization.
이 요청은 이 등록된 애플리케이션에서 오고 있습니다. __CAPGO_KEEP_0__은 안전하게 비밀을 보관할 수 있는 흐름 및 앱 유형에서만 사용되는 비밀 counterpart입니다.

많은 깨진 통합은 누군가 이들을 동일한 것의 변형으로 다루기 시작할 때 시작됩니다. 그들은 아님.

구글 클라이언트 아이디가 실제로 어디에 위치하는지

__CAPGO_KEEP_0__이 필요하다면 구글로 로그인 또는 한 번에 탭, 클라이언트 아이디는 프론트엔드가 인증 핸드 셰이크를 시작하기 위해 사용하는 값입니다. 구글의 문서에도 앱이 특정 Cloud Console 프로젝트에 등록되어 있어야만 인증 자격 증명이 생성될 수 있으며, 웹 앱은 전체 스킴 및 호스트 이름을 포함한 구성된 권한 있는 자바 스크립트 원본 또는 리다이렉트 URI가 필요하다고 언급하고 있습니다.

이것이为什么 설정이 단순한 키를 생성하는 것보다 더 엄격하게 느껴지는 이유입니다. 구글은 단순히 접근을 허용하는 것이 아니라, 인증 요청을 알려진 앱 식별자와 결합하는 것입니다.

하이브리드 앱을 개발하는 팀에게 가장 안전한 정신 모델은 다음과 같습니다.

  • 클라이언트 아이디를 앱을 식별하는 데 사용하십시오.
  • consent screen을 사용하여 사용자에게 앱을 대표하십시오.
  • 정확한 앱 타입을 사용하여 비밀을 흐름에 속하는지 여부를 결정하십시오.

앱 식별성과 위임된 접근권이 어떻게 함께 작동하는지 더 넓은 개요를 원한다면 앱 인증에 대한 이 안내서 앱 인증에 대한 이 안내서가 좋은 리프레시입니다.

클라이언트 ID를 만들고 보는 방법

콘솔 경로가 변경되어 개발자들은 종종 자신이 잘못된 곳에 있다는 생각을 합니다. 그들은 일반적으로 그렇지 않습니다. Google은 현재 이러한 자격 증명에 대한 두 가지 탐색 경로를 노출하고 있습니다: 새로운 Google Auth Platform > 클라이언트 경로와 더 오래된 APIs & Services > 자격 증명 경로, Google의 설정 문서에 설명되어 있습니다. Google Cloud 콘솔에서 OAuth 2.0 클라이언트 자격 증명을 만드는 데 사용하는 laptop에 키보드를 입력하는 사람..

A person typing on a laptop displaying the Google Cloud console for creating OAuth 2.0 client credentials.

Start in the right console area

Google Cloud Console에서 프로젝트를 선택하거나 생성하세요. 인증 설정을 여러 프로젝트에 흩어지게 하면 후에 감사 및 지원이 고통스러울 것입니다.

그 다음으로 다음 중 하나로 이동하세요:

  1. Google Auth Platform > 클라이언트
  2. APIs & Services > 자격 증명

If your team sees different navigation labels, that’s expected. Google has been separating identity setup from the rest of the API credential surface.

자신을 한정짓지 마세요

OAuth 클라이언트를 새로 만들 때 가장 큰 결정은 애플리케이션 유형입니다. Google은 특정 유형을 선택하도록 요청합니다. , 안드로이드, iOS, or 데스크톱. 그 선택은 외관적인 것만이 아니다. 앱의 식별과 필요한 지원 구성이 정의된다.

웹 앱의 경우, 다음 값을 입력할 수 있다:

  • 인증된 자바스크립트 원본
  • 인증된 리다이렉션 URI

이 값은 정확해야 한다. 웹 자격 증명인 경우, Google은 전체 스킴과 호스트 이름, 예를 들어 https://www.example.com,을 기대한다. 대략적인 도메인 개념이 아니라.

모바일 플랫폼의 경우, 모양은 다르다. Android 등록은 패키지 수준의 소유권 확인이 필요하며, iOS는 플랫폼 식별자만 사용한다. Google 인증을 다른 인증层와 combination할 경우, Capacitor Supabase와의 이 사회 로그인 설정은 이러한 조각이 종종 어떻게 함께 작동하는지 보여주는 유용한 예이다. iOS

이 walkthrough은 UI를 비교하기 위해 클릭하는 동안 사용할 수 있는 괜찮은 시각적 참조입니다.

이것을 나중에 찾을 수 있습니다.

생성 후, 클라이언트 ID는 프로젝트의 자격 증명 목록에 나타납니다. 동일한 프로젝트 공간은 팀이 API를 활성화하고 OAuth 식별성이 동의 화면에 연결되는 방법도 볼 수 있습니다. 등록된 애플리케이션 이름은 사용자가 허가 요청 화면에서 볼 수 있는 이름입니다. 이것이 앱 이름을 정확하게 지정하는 이유 중 하나입니다.

Google은 이러한 자격 증명을 시간이 지남에 따라 관리할 수 있도록 합니다. 대시보드에 다시 돌아가서 클라이언트 ID를 복사하고 설정을 검토하고, 해당 자격 증명과 관련된 클라이언트 시크릿을 관리할 수 있습니다.

동의 화면은 장식이 아닙니다. 그것은 신뢰 경계의 일부입니다. 사용자는 애플리케이션 이름을 보게 되며, 내부 프로젝트의 별명이 아닙니다.

플랫폼별 클라이언트 ID 구성

Google 로그인 설정을 깨트리기 가장 빠른 방법은 하나의 클라이언트 ID가 모든 플랫폼을 커버할 수 있다고 가정하는 것입니다. 그러나 그것은 할 수 없습니다. 다중 플랫폼 앱의 경우, 각 플랫폼은 자신의 고유한 OAuth 2.0 클라이언트 ID를 등록해야 하며, Android 설정은 SHA1 지문이 소유권을 확인하기 위해 필요하다는 점을 참고하여 이 플랫폼 설정 참조.

왜 하나의 앱이 여러 클라이언트 ID가 필요합니다.

사용자는 앱을 하나로 보지만, Google에선 하나의 앱이 여러 OAuth 클라이언트입니다.

A 웹 앱, an 안드로이드 빌드, an iOS 빌드, and a 데스크톱 앱 동일한 보안 속성을 제공하지 않습니다. 동일한 방식으로 신원을 증명하지 않으며, 신뢰할 수 있는 환경에서 모든 인증서를 저장하지 않습니다. Google은 각 플랫폼에 독립된 앱 등록 모델을 제공합니다.

이 분리는 좋은 보안 위생입니다. 하나의 플랫폼의 인증서 설정이 취약하거나 잘못 구성되어도 다른 플랫폼은 자동으로 노출되지 않습니다.

실용적인 분리는 다음과 같습니다:

  • 웹 클라이언트 ID와 엄격한 원본 및 리다이렉션 URI 매칭을 사용합니다.
  • 안드로이드 Android 앱 ID는 패키지 식별자와 SHA1 지문에 묶여 있습니다.
  • iOS iOS 앱 ID는 앱의 번들 식별자와 묶여 있습니다.
  • Desktop or Electron Desktop-style OAuth 패턴을 사용하는 경우, 설치된 패턴을 사용하는 것이 일반적입니다.

Google Client ID 유형 비교

애플리케이션 유형 주 식별자 클라이언트 시크릿 제공 여부 주 용도
Web 인증된 JavaScript 원본 및 리다이렉션 URI 보통 yes 브라우저 앱과 백엔드 지원 웹 OAuth
안드로이드 패키지 식별자 + SHA1 지문 보통 no 자연어 안드로이드 로그인
iOS 앱 번들 식별자 보통 no 자연어 아이폰 및 아이패드 로그인
데스크톱 설치된 앱 식별자 가끔은 데스크톱 앱, Electron-style 네이티브 흐름 포함

모바일 및 데스크톱에서 클라이언트 비밀의 역설

이것은 많은 튜토리얼이 틀린 부분입니다.

모바일 및 데스크톱 개발자들은 종종 OAuth 클라이언트가 클라이언트 ID와 클라이언트 비밀을 모두 포함하는 것으로 기대합니다. 그들은 콘솔에서 비밀을 볼 수 있는 유일한 방법이 Web Application credential이기 때문에 그러한 클라이언트 ID와 클라이언트 비밀을 모두 포함하는 클라이언트를 만들고 있습니다. 흐름이 더 완전해 보이기 때문에 그들은 계속 진행합니다. 나중에 인증이 혼란스럽게 실패합니다. 클라이언트 ID 클라이언트 비밀 Web Applicationcredential client secret client secret paradox

OAuth client 모바일 인증서 불일치 설명, Android, iOS, 설치형 앱과 같은 웹 앱 이외의 애플리케이션은 자주 클라이언트 ID만 받고 클라이언트 시크릿을 의도적으로 받지 않습니다. Google은 사용자가 클라이언트 측 소프트웨어에서 추출할 수 있는 비밀을 포함하는 클라이언트 측 소프트웨어에 비밀을 포함하지 않으려는 것입니다.

그 디자인 선택은 올바릅니다. 모바일 앱 또는 Electron 패키지는 안전한 비밀 저장소가 아닙니다.

이것이 작동합니다: 공개 클라이언트를 위한 클라이언트 측 OAuth 흐름
이것이 작동하지 않습니다: 모바일 앱을 위해 웹 인증서를 만들어서 implementation에 비밀을 강요하는 것입니다.

For Capacitor 팀에서, 이것은 일반적으로 두 가지 나쁜 패턴 중 하나로 나타납니다:

  1. 앱은 웹 클라이언트 를 사용하여 브라우저 기반 흐름을 시작하고 그 다음에
  2. 앱은 __CAPGO_KEEP_0__ code

모바일과 데스크톱 앱을 공개 클라이언트로 간주하는 것이 낫습니다. 현대 OAuth에서 일반적으로는 비밀번호가 클라이언트 내부에 숨겨지지 않는 흐름을 사용합니다. 백엔드가 참여하는 경우, 백엔드에서 비밀번호를 숨기지 말고 네이티브 앱은 공개 클라이언트가 해야 할 일을 제한하세요.

Firebase-backed Android 로그인에 대한 또 다른 미묘한 점은 Android 앱이 자신의 플랫폼에 특화된 식별자를 유지하면서 웹 애플리케이션 타입 클라이언트 ID를 백엔드 서버의 OAuth 클라이언트 ID로 사용하는 것입니다. 이 분리는 팀이 두 가지 프로젝트에서 웹 자격증명과 모바일 자격증명을 모두 볼 수 있으므로 하나가 다른 것을 대체한다고 생각하는 것을 막습니다. 하지만 그렇지 않습니다. 그들은 서로 다른 역할을 합니다. __CAPGO_KEEP_0__가 실행되는 위치에 맞는 클라이언트 타입을 선택하세요. __CAPGO_KEEP_0__ 형태의 자격증명이 아니라. __CAPGO_KEEP_0__ 자격증명 보안

OAuth 관련 사고의 대부분은 복잡한 공격이 아닌 팀이 자격증명을 유출하거나 리다이렉션 설정을 너무 넓게 설정하거나 비밀번호를 안전하지 않은 곳에 넣는 것입니다. code 자격증명 보안.

API 자격증명 보안

__CAPGO_KEEP_0__ 자격증명 보안

구글의 OAuth 지침은 클라이언트 ID 및 비밀 키를 개인 데이터로 다루어야 한다는 점을 강조하며, 웹 앱의 경우 클라이언트 ID는 미리 등록된 리다이렉트 URI에 대해 강제됩니다. 리다이렉트 URI가 엄격하게 일치하지 않으면 구글은 요청을 거부합니다. 이 출처 바인딩은 토큰截获에 대한 보호에 대한 설명에서 설명한 것과 같이 부분입니다. OAuth.com의 클라이언트 등록 지침.

사무실에서 직업적인 개발자가 두 대의 컴퓨터 모니터를 사용하여 보안 자격 증명을 검토하는 모습.

즉시 잠그어야 하는 것

만약에 몇 가지 일을 정확하게 하려면, 다음을 하세요:

  • Never ship a client secret in app code. 웹 번들, 모바일 바이너리 및 Electron 패키지는 사용자에 의해 검사할 수 있습니다.
  • 정확한 리다이렉트 URI를 등록하세요. 가까운 것은 충분하지 않습니다. 구글은 웹 흐름에 대해 엄격한 일치 검증을 수행합니다.
  • 출처를 단단히 잡아주세요. 넓은 도메인을 허용하여 설정의 마찰을 피하기 위해선 안됩니다.
  • 플랫폼 자격 증명을 분리하세요. 편리함이 안드로이드, iOS, 웹을 하나의 자격 증명으로 밀어내지 않도록 하세요.

운영상의 한 가지 세부 사항은 쉽게 놓치기 쉬운 것입니다. Google은 기존 클라이언트 ID에 새로운 비밀을 생성하고 이전 비밀을 비활성화하는 것을 팀에 허용합니다. 이는 비밀 노출 시나 배포 프로세스를 강화할 때 중요합니다.

보안 팀이 실제로 무엇을 하는지

문제를 피하는 팀은 OAuth 자격 증명을 다른 프로덕션 비밀처럼 다룹니다.

그들은 웹 클라이언트 비밀을 백엔드에서 유지하고 환경 관리를 통해 주입하고 콘솔 접근 권한을 검토합니다. 배포 PIPELINE을 정리하는 경우, 이 가이드에 대한 "CI/CD PIPELINE에서 비밀 관리"도 적용할 가치가 있습니다. 그들은 또한 메타데이터만 검토하는 것이 아니라 키도 검토합니다. OAuth 동의 화면은 사용자가 보는 클라이언트 식별과 관련이 있습니다. 애플리케이션 이름이 모호하거나 속임수로 표시된 경우, 사용자는 더 이상 신뢰할 수 없거나 잘못된 애플리케이션을 승인할 가능성이 있습니다. 보안은 비밀을 숨기기만 하는 것이 아닙니다. 올바른 애플리케이션 식별, 리다이렉트 목적지, 승인 화면이 매번 일치하는 것을 보장하는 것입니다.

일반적인 클라이언트 ID 오류 해결

대부분의 Google OAuth 실패는 설정상의 작은 실수 때문입니다. 오류 메시지는 항상 친절하지 않지만, 문제의 근본 원인은 일반적으로 해결 방법을 알면 쉽게 파악할 수 있습니다.

대부분의 실패를 해결하는 수정 사항

보안 팀이 실제로 무엇을 하는지

문제를 피하는 팀은 OAuth 자격 증명을 다른 프로덕션 비밀처럼 다룹니다.

redirect_uri_mismatch

앱이 등록된 웹 클라이언트와 정확히 일치하지 않는 리다이렉트 URI를 보내고 있습니다. scheme, host, path 및尾隨 차이점을 확인하십시오. 웹 OAuth에서 정확한 일치가 보안 모델의 일부입니다.

invalid_client

이것은 일반적으로 앱이 잘못된 클라이언트 ID를 보내거나, 잘못된 비밀번호를 보내거나, 플랫폼을 혼합하는 경우입니다. 예를 들어, Android 또는 iOS 플로우가 잘못된 위치에서 웹 자격 증명을 사용하는 경우입니다.

invalid_request

이것은 광범위한 문제지만, 크로스 플랫폼 앱에서 자주 malformed auth 매개 변수 또는 클라이언트 유형에 맞지 않는 흐름을 나타낼 때 발생합니다. 앱이 비밀번호를 포함하려고 할 때, 또는 선택한 OAuth 흐름이 다른 종류의 클라이언트를 기대할 때 확인하십시오.

Google Sign-In은 웹에서 작동하지만 모바일에서 실패합니다.

첫 번째로 검사해야 하는 것은 클라이언트 유형입니다. 모바일 개발자의 가장 일반적인 오류 원인은 웹 애플리케이션 클라이언트 ID를 만들기 위해 클라이언트 비밀번호를 얻으려고 할 때, 실제로 Android 또는 iOS 유형을 사용해야 할 때입니다. 이 클라이언트 비밀번호 일치 오류에 대한 설명을 참조하십시오. 구현이 로그인 후 토큰 라이프 사이클 작업을 포함한다면, 취소 가이드도 유용합니다.Android 로그인 실패 후 자격 증명 생성

Android 클라이언트에 첨부된 SHA1 지문이 올바른지 확인하십시오. Google이 기대하는 서명 식별자가 맞지 않으면 앱이 소유권을 증명할 수 없습니다.

Consent 화면이 이상합니다.

__CAPGO_KEEP_0__

OAuth 설정에서 콘솔에 첨부된 애플리케이션 이름과 브랜딩을 확인하세요. 사용자는那里에서 보는 것을 승인하므로 잘못된 메타데이터는 신뢰 문제와 지원 소음으로 이어집니다.

실제 디버깅 순서는 간단합니다. 클라이언트 유형을 먼저 확인한 다음 리다이렉트 설정, 플랫폼 식별자, 비밀 키가 흐름에 속하는지 여부를 확인하세요..


Capacitor 또는 Electron 앱을 배포하는 팀에서 인증 오류는 거의 격리되지 않습니다. 일반적으로 출시 압박, 롤백 필요, 환경별 수정과 함께 표면화됩니다. Capgo code와 자산에 대한 목표 업데이트를 배포하는 데 code가 필요한 경우, 스토어 리뷰를 기다리지 않고 앱을 업데이트할 수 있습니다. 이는 로그인 흐름, 콜백 처리, 클라이언트 측 인증 문제를 수정할 때 프로덕션에 도입될 때 더 쉽게 수정할 수 있습니다.

Capacitor 앱의 실시간 업데이트

Capgo을 사용하여 웹-layer 버그가 생겼을 때, 앱 스토어 승인까지 며칠 기다리지 않고 바로 고쳐보세요. 사용자는 배경에서 업데이트를 받으면서 네이티브 변경은 일반적인 검토 경로에 남아있게 됩니다.

시작하기

블로그에서 최신 뉴스

Capgo은 전문적인 모바일 앱을 만들기 위해 필요한 최고의洞察력을 제공합니다.