--- title: Keycloak with Google Login — Codemancers 기술블로그 source_type: company-tech-blog url: https://www.codemancers.com/blog/keycloak-with-google-login archive_url: status: raw confidence: medium tags: [keycloak-patterns, p1b-edge-google-federation, idp-brokering, keycloak, google-oidc, company-tech-blog] related_branches: [feature-keycloak-patterns, feature-keycloak-edge-forwardauth-google-federation] related_projects: [keycloak-patterns] created: 2026-05-25 last_reviewed: 2026-05-27 --- # Keycloak with Google Login — Codemancers > Layer: `raw/company-tech-blogs/` — Codemancers (system analyst Mohammad Hussain, 2025-06-12). Keycloak Admin Console 에서 Google IdP 등록하는 step-by-step 튜토리얼 사례. **공식 best practice 아님 — Keycloak 공식 docs 와 교차 확인 필수.** ## Parent / 활용 branch (필수) | Branch | 이 자료가 정당화하는 결정 | |---|---| | [[raw/branch-notes/feature-keycloak-patterns]] | keycloak-patterns root — Google IdP federation 설정 실무 화면 흐름의 사례 자료 | | [[raw/branch-notes/feature-keycloak-edge-forwardauth-google-federation]] | P1B Edge + Google federation 구현 시 Google Cloud Console / Keycloak Admin Console 등록 trap 예방 사례 | ## 컨텍스트 / 왜 저장했는지 공식 문서는 추상적 절차만 제공. 실무 환경에서 Google Cloud Console / Keycloak Admin Console 을 오가며 등록할 때 발생하는 구체적 화면 흐름, redirect URI 매칭 실수 등의 **사례적 근거** 확보. P1B 구현 시 trap 예방용 메모. ## 출처 / Source - 원본 URL: https://www.codemancers.com/blog/keycloak-with-google-login - 아카이브 URL: (미수집) - 저자 / 조직: Mohammad Hussain (System Analyst, Codemancers) - 발행일: 2025-06-12 - 마지막 확인일: 2026-05-27 ## 핵심 인용 / Key quotes (verbatim) > [§Keycloak Admin Console] "Go to the **Identity Providers** section from the left-hand menu." > [§Add Provider] "Click **Add Provider** and select **Google** from the list of available providers." > [§Google Cloud Console] "Head over to the [Google Cloud Console](https://console.cloud.google.com/)." > [§Google credentials] "Navigate to **API & Services > Credentials**." > [§Create credentials] "Click **Create Credentials** and choose **OAuth Client ID**." > [§Application type] "Select **Web Application** as the application type and click **Create**." > [§Client ID / Secret 확보] "You'll be presented with a **Client ID** and **Client Secret**. Copy both." > [§Redirect URI 매칭] "copy the **Redirect URI** displayed here and add it to the **Authorized redirect URIs** in your Google Cloud configuration." ## Claims Extracted / 추출된 주장 | Claim ID | Claim (이 자료가 직접 말하는 것) | Evidence quote | Strength | Applies to | Does not prove | |---|---|---|---|---|---| | CM-KC-GG-C1 | Keycloak Admin Console 의 Identity Providers 메뉴 → Add Provider → Google 선택으로 Google IdP 추가 가능 | [§Keycloak Admin Console / Add Provider] "Go to the Identity Providers section from the left-hand menu." + "Click Add Provider and select Google from the list of available providers." | `company-case-study` | Keycloak Admin UI 의 Identity Provider 등록 흐름 | Keycloak 버전 별 메뉴 위치/이름이 동일한지 본 인용 범위 밖. 공식 docs 별도 확인 | | CM-KC-GG-C2 | Google credentials 발급은 Google Cloud Console > API & Services > Credentials > Create Credentials > OAuth Client ID 경로 | [§Google credentials / Create credentials] "Navigate to API & Services > Credentials." + "Click Create Credentials and choose OAuth Client ID." | `company-case-study` | Google Cloud Console UI 흐름 (2025-06 시점) | Google Cloud Console UI 가 변경되지 않는다는 보장 아님 — 본 인용은 2025-06 스냅샷 | | CM-KC-GG-C3 | OAuth Client 타입 으로 **Web Application** 선택 필요 | [§Application type] "Select Web Application as the application type and click Create." | `company-case-study` | Keycloak ↔ Google OIDC 통합 시 OAuth client type 선택 | "Web Application" 외 다른 타입 (예: Desktop / iOS) 으로는 통합 불가하다는 직접 증명 아님 — 단지 본 사례의 선택 | | CM-KC-GG-C4 | 생성된 Client ID / Client Secret 을 Keycloak Google IdP 설정에 입력하고, Keycloak 이 표시한 Redirect URI 를 Google 의 Authorized redirect URIs 에 추가해야 함 (양방향 등록) | [§Client ID / Secret 확보] "You'll be presented with a Client ID and Client Secret. Copy both." + [§Redirect URI 매칭] "copy the Redirect URI displayed here and add it to the Authorized redirect URIs in your Google Cloud configuration." | `company-case-study` | Keycloak ↔ Google OIDC handshake 의 redirect URI 정합성 | Redirect URI 경로 형식 (`/realms//broker/google/endpoint`) 의 정확한 spec 은 본 인용에 없음 — Keycloak 공식 docs 확인 | ## Usage Boundaries / 적용 경계 - **이 자료가 직접 증명하는 것**: - `CM-KC-GG-C1`~`C4`: Keycloak Admin Console 과 Google Cloud Console 의 화면 흐름 / 등록 순서 (2025-06 시점 Codemancers 튜토리얼) - **이 자료가 증명하지 않는 것**: - "Web Application" 외 OAuth client type 선택 시 redirect URI 입력 칸이 사라진다는 trap (raw 메모에 적혀 있으나 본 fetch 인용에 직접 없음) - Keycloak realm 이름 변경 시 redirect URI 가 함께 변경되어 Google 콘솔 재등록 필요 (raw 메모에 적혀 있으나 본 fetch 인용에 직접 없음) - prod 환경에서의 Google API rate limit / Google account suspended 시 Keycloak 측 처리 (원래 raw 메모에서 `needs-confirmation` 으로 표기됨, 본 글 범위 밖) - `sub` claim 기반 매칭 vs email 기반 매칭의 선택 (별도 raw: keycloak-first-login-flow) - **내 프로젝트에 적용하려면 추가 확인이 필요한 것**: - Keycloak 버전 (예: 22 / 23 / 24) 별 Admin Console UI 메뉴 위치 일치 여부 - Redirect URI 경로 `/realms//broker/google/endpoint` 의 spec — Keycloak 공식 docs (Identity Brokering chapter) - Google `email_verified` claim 의 신뢰 정책 — `feature-keycloak-account-linking-sub-vs-email` 결정과 결합 ## 메모 / Notes (내 프로젝트 해석) > 본 섹션은 자료 직접 인용 아님. P1B 결정 컨텍스트 해석. - **공식 vs 블로그 구분**: 절차 자체는 [[raw/official-docs/keycloak-google-idp-setup]] 와 일치 (추정). 본 블로그는 화면 캡처·트러블슈팅 측면에서 보조 자료. **공식 best practice 로 인용 금지.** - **사례에서 자주 나오는 trap (본 raw 직접 증명 아님, 일반 운영 경험):** - Google Cloud Console 에서 OAuth client type 을 "Web Application" 이 아닌 다른 것으로 선택 → redirect URI 입력 칸 자체가 안 뜸. - Keycloak realm 이름 변경 시 redirect URI 경로 (`/realms//broker/google/endpoint`) 도 같이 변경 → Google 콘솔 재등록 필요. - **확인 안 됨 (P1B 학습 범위 밖, 원래 raw 메모 보존)**: prod 환경에서의 Google API rate limit, Google account suspended 시 Keycloak 측 처리. → `needs-confirmation`. ## Related / 관련 - 같은 주제 다른 raw: - [[raw/official-docs/keycloak-google-idp-setup]] (공식 절차) - [[raw/official-docs/keycloak-first-login-flow]] (외부 IdP 최초 로그인 정책) - 인용하는 branch: - [[raw/branch-notes/feature-keycloak-patterns]] (root) - [[raw/branch-notes/feature-keycloak-edge-forwardauth-google-federation]] (P1B sub-branch) - 인용한 wiki 요약: (미작성)