11 KiB
title: official-doc / Google Auth Platform — Manage App Audience (Publishing Status: Testing vs In production) source_type: official-doc url: https://support.google.com/cloud/answer/15549945?hl=en archive_url: related_branches: [feature-keycloak-google-redirect-uri-policy] related_projects: [keycloak-patterns] tags: [official-doc, keycloak-patterns, auth, google-aip, oauth2, oidc] created: 2026-07-16
official-doc / Google Auth Platform — Manage App Audience (Publishing Status: Testing vs In production)
Layer:
raw/— 외부 자료(공식 문서)의 원문 발췌·출처 기록. 검증된 요약은/ingest후wiki/concepts/에source-summary-template형식으로 별도 작성. 원본은 raw에 영구 보관.
Parent / 활용 branch
| Branch | 이 자료가 정당화하는 결정 |
|---|---|
| raw/branch-notes/feature-keycloak-google-redirect-uri-policy | D5 — Google OAuth app publishing status(Testing vs In production)의 100 test-user 상한 + 7일 authorization 만료 규칙, 그리고 basic identity scope(name/email/profile)가 이 만료·경고·test-user-list 요건을 면제받는다는 공식 근거. 기존 D5의 "unverified app + 100명 test users" 부분에 걸려 있던 UNSUPPORTED_DECISION 라벨을 verification-policy 범위에서 해소. |
출처 / Source
- 원본 URL: https://support.google.com/cloud/answer/15549945?hl=en
- 아카이브 URL: (미제공)
- 저자 / 조직: Google (Google Cloud Platform Console Help — Google Auth Platform)
- 발행일: 불명(Google Help Center 문서, 게시일 미표기)
- 마지막 확인일: 2026-07-16
왜 저장했는지 / Why archived
feature-keycloak-google-redirect-uri-policy D5의 "Google IdP scope는 openid email profile만 사용 → sensitive scope 회피 → verification 심사 불필요 → unverified 상태로 100명 test users까지 정상 동작" 결정 중, "unverified + 100명 test users" 부분이 verbatim 근거 없이 UNSUPPORTED_DECISION으로 남아 있었다. 본 자료는 Testing/In production publishing status의 공식 규칙과, basic identity scope가 test-user 목록·경고·7일 만료를 면제받는다는 공식 예외 조항을 담고 있어 그 gap을 직접 메운다.
핵심 인용 / Key quotes (verbatim, 5문장)
[§Publishing status > Testing] "Projects configured with a publishing status of Testing are limited to up to 100 test users listed in the OAuth consent screen." (line 31)
[§Publishing status > Testing] "Google will display a warning message before allowing a specified test user to authorize scopes requested by your project's OAuth clients." (line 32)
[§Publishing status > Testing] "Authorizations by a test user will expire seven days from the time of consent." (line 33)
[§Publishing status > Testing] "The only exception to this behavior is if your app requests a subset of the following: name, email address, and user profile (through the userinfo.email, userinfo.profile, openid scopes or their OpenID Connect equivalents). For such requests, your users do not need to be in the trusted user list, they will not see a warning message, and their authorizations will not expire after 7 days." (line 35)
[§Publishing status > In Production] "Projects configured with a publishing status of In production are available to any user with a Google Account." (line 38)
Claims Extracted / 추출된 주장
| Claim ID | Claim (이 자료가 직접 말하는 것) | Evidence quote | Strength | Applies to | Does not prove |
|---|---|---|---|---|---|
| GOOGLE-APPAUD-C1 | Testing publishing status는 OAuth consent screen에 등록된 최대 100명의 test user로 제한된다 | [§Publishing status > Testing] "Projects configured with a publishing status of Testing are limited to up to 100 test users listed in the OAuth consent screen." (line 31) | official-vendor-doc |
Testing 상태 프로젝트의 test-user 등록 상한 | 이 100명 상한과 §OAuth user cap의 "100 new users in total"(unverified app screen 노출 시 신규 유저 누적 상한)이 동일 quota 라는 것 — 두 개념은 원문에서 서로 다른 섹션(Testing vs OAuth user cap)으로 구분되어 있음 |
| GOOGLE-APPAUD-C2 | Testing 상태에서 Google은 test user가 scope를 승인하기 전에 경고 메시지를 표시한다 | [§Publishing status > Testing] "Google will display a warning message before allowing a specified test user to authorize scopes requested by your project's OAuth clients." (line 32) | official-vendor-doc |
Testing 상태 + basic scope 예외에 해당하지 않는 모든 OAuth client의 test-user 승인 흐름 | 경고 메시지의 정확한 문구/UI 스크린샷 (본 자료는 존재 사실만 진술) |
| GOOGLE-APPAUD-C3 | Test user의 authorization은 동의 시점으로부터 7일 후 만료되며, offline access type으로 발급된 refresh token도 함께 만료된다 | [§Publishing status > Testing] "Authorizations by a test user will expire seven days from the time of consent." (line 33) | official-vendor-doc |
Testing 상태의 test-user authorization·refresh token 수명 | In production 상태에서의 authorization 수명 (별도 규칙 — 본 quote는 Testing 전용) |
| GOOGLE-APPAUD-C4 | 앱이 name/email/user profile 중 일부만 (userinfo.email, userinfo.profile, openid scope 또는 그 OIDC 동등 항목을 통해) 요청하는 경우, 사용자는 trusted user list(=test user list)에 있을 필요가 없고, 경고 메시지를 보지 않으며, authorization이 7일 후 만료되지 않는다. Sign in with Google을 사용해도 이 예외가 적용된다 | [§Publishing status > Testing] "The only exception to this behavior is if your app requests a subset of the following: name, email address, and user profile (through the userinfo.email, userinfo.profile, openid scopes or their OpenID Connect equivalents). For such requests, your users do not need to be in the trusted user list, they will not see a warning message, and their authorizations will not expire after 7 days." (line 35) | official-vendor-doc |
openid email profile (또는 그 부분집합)만 요청하는 OAuth client의 test-user 요건 면제 — 정확히 D5의 Keycloak Google IdP default scope(openid profile email, KC-GIDP-C5)와 일치 |
앱이 다른 OAuth scope(예: Gmail, Drive)를 추가로 요청하면 이 예외가 적용되지 않는다는 것(원문: "If your app requests any other OAuth scopes, then this exception does not apply." — 별도 문장, 본 인용 범위 밖). 또한 Testing 상태 자체를 벗어나게 하지는 않음(여전히 Testing이며, 단지 7일 만료·경고·test-user-list 요건만 면제) |
| GOOGLE-APPAUD-C5 | In production publishing status의 프로젝트는 Google 계정을 가진 모든 사용자에게 열려 있다 ("Publish app" 버튼 선택 후 In production으로 간주되며, sensitive/restricted scope 요청 시 verification 대상이 될 수 있음) | [§Publishing status > In Production] "Projects configured with a publishing status of In production are available to any user with a Google Account." (line 38) | official-vendor-doc |
Testing → In production 전환 후의 사용자 접근 범위 일반 규칙 | verification 프로세스의 세부 심사 기준·소요 기간 (본 인용 범위 밖 — 별도 문장에서 "may be subject to verification"으로만 언급) |
Strength 허용값
official-standardofficial-vendor-doc(본 문서 전 claim이 이 값)official-referencecompany-case-studyengineering-blogtutorialneeds-confirmation
Usage Boundaries / 적용 경계
- 이 자료가 직접 증명하는 것:
GOOGLE-APPAUD-C1: Testing 상태의 100 test-user 등록 상한GOOGLE-APPAUD-C2: Testing 상태에서 test user 승인 전 경고 메시지 표시 사실GOOGLE-APPAUD-C3: Testing 상태 test-user authorization의 7일 만료 규칙GOOGLE-APPAUD-C4:name/email/profile(및 그 OIDC 동등 scope)만 요청하는 앱은 test-user-list 등록·경고·7일 만료 요건을 면제받는다는 공식 예외 — D5의 Keycloak default scope(openid profile email)와 정확히 일치하는 조건GOOGLE-APPAUD-C5: In production 상태의 전체 사용자 개방 규칙
- 이 자료가 증명하지 않는 것:
- "100 test users" 상한과 §OAuth user cap의 "100 new users in total"(unverified app screen 노출 시 누적 신규 유저 상한)이 같은 quota인지 여부 — 원문에서 별도 섹션으로 구분되어 있어 혼동 금지. D5 branch note가 "unverified 상태로 100명 test users까지 정상 동작"이라 서술한 부분은 정확히는 GOOGLE-APPAUD-C1(Testing 상태 test-user 등록 상한)에 해당하며, unverified app screen의 "100 new users in total" 누적 상한(§OAuth user cap)과는 별개 개념
- unverified app이 basic scope만 요청할 때도 "unverified app" 경고 화면 자체가 완전히 사라지는지 여부 — C4는 test-user-list 요건·7일 만료·(Testing 상태의) 경고 메시지 면제만 진술. In production 상태에서 sensitive/restricted scope 요청 시의 verification 요구는 별개 규칙(C5 및 그 이후 문장)
- Keycloak 쪽 구현(default scope 설정이 실제로 Google 서버에
openid profile email로 전송되는지, IdP 설정 화면에서 별도 scope 추가가 없는지)은 이 자료로 증명되지 않음 —keycloak-google-idp-setup(KC-GIDP-C5) 이 그 근거
- 내 프로젝트에 적용하려면 추가 확인이 필요한 것:
- D5의 "unverified app screen"과 "100 test users" 두 개념이 실제 Google Cloud Console UI에서 어떻게 표시되는지 (Claims To Verify 항목으로 branch note에 등재 권고)
- basic scope 예외가 적용된 상태에서 OAuth consent screen에 test user를 아예 등록하지 않아도 인증이 정상 동작하는지 실측 필요 (branch note는 여전히 test user 등록을
plannedTODO로 유지 중 — 예외 적용 시 등록 자체가 불필요해질 가능성, 재검토 권고)
메모 / Notes
나중에 wiki로 옮길 때 참고할 짧은 메모. 검증되지 않은 내 추론은 여기에 두지 말 것.
- WebFetch(AI 요약 모드)가 이 페이지에서 paraphrase된 "Key Takeaways" 형식만 반환해 verbatim 인용에 부적합했음 —
curl로 raw HTML을 받아 스크립트/스타일 태그를 제거하고 텍스트만 추출하는 방식으로 verbatim 원문을 확보함. 이후 동일 도메인(support.google.com) 재조사 시 같은 방식(curl + HTML 태그 스트립) 권장. - 인용 1 해석 후보 (미검증): "100 test users" 상한과 "100 new users in total" 누적 상한이 실제로는 서로 다른 목적의 quota(등록 가능 인원 vs 생애주기 누적 승인 인원)로 보이나, 두 quota가 겹치는 시나리오(예: test user 100명을 다 채운 뒤 In production 전환 시 카운트 리셋 여부)는 원문에 명시되지 않음.
- 추가로 봐야 할 동일 출처 페이지: Google Auth Platform 문서군의 "Verification status" 페이지(본문 §In Production에서 링크로만 언급됨) — sensitive/restricted scope 판정 기준의 verbatim 확보 필요.
Related / 관련
- raw/official-docs/google-oauth2-redirect-uri-validation-official — 같은 branch(D5)가 아닌 D1~D4의 근거, redirect_uri 검증 규칙
- raw/official-docs/keycloak-google-idp-setup — Keycloak Google IdP default scope(
openid profile email) 설정 근거, 본 자료의 basic-scope 예외 조건과 직접 대응