이 페이지에서는 Google의 OpenID Connect 제공업체 구현을 설명하고 Google의 OIDC 엔드포인트에 관한 기술 참조를 제공합니다. OpenID Connect (OIDC) Core 1.0 사양은 사용자를 인증하고 ID 정보를 획득하는 프로토콜을 정의합니다.
이 참조는 OIDC 구현 방법에 관한 단계별 안내를 제공하기 위한 것이 아닙니다. 구현 세부정보는 OpenID Connect 가이드를 참고하세요.
탐색 문서
탐색 문서에는 OpenID Connect Discovery 1.0 사양에 정의된 Google의 OpenID Connect 구성에 관한 메타데이터가 포함되어 있습니다.
URL: https://accounts.google.com/.well-known/openid-configuration
지원되는 요청 메서드: GET
응답 본문
응답 필드는 요청자의 https://accounts.google.com/.well-known/openid-configuration에 대한 GET 요청에 대한 HTTP 응답의 본문에 있는 JSON 객체로 반환됩니다.
| 필드 | 유형 | 설명 |
|---|---|---|
issuer |
string |
발급기관 식별자입니다. https 스키마를 사용하는 대소문자를 구분하는 URL입니다. 최신 값은 https://accounts.google.com입니다. 하지만 기존 구현의 경우 accounts.google.com도 반환됩니다. |
authorization_endpoint |
string |
승인 엔드포인트의 URL입니다. |
device_authorization_endpoint |
string |
기기 승인 엔드포인트의 URL입니다. |
token_endpoint |
string |
토큰 엔드포인트의 URL입니다. |
userinfo_endpoint |
string |
UserInfo 엔드포인트의 URL입니다. |
revocation_endpoint |
string |
철회 엔드포인트의 URL입니다. |
jwks_uri |
string |
JSON 웹 키 세트 (JWKS) 문서의 URL입니다. |
response_types_supported |
array |
지원되는 response_type 값 목록입니다. |
response_modes_supported |
array |
지원되는 response_mode 값 목록입니다. |
authorization_response_iss_parameter_supported |
boolean |
RFC 9207 지원 여부를 나타내는 불리언입니다. |
subject_types_supported |
array |
지원되는 주체 식별자 유형의 목록입니다. |
id_token_signing_alg_values_supported |
array |
ID 토큰 서명을 위해 지원되는 알고리즘 목록입니다. |
scopes_supported |
array |
지원되는 범위 값 목록입니다. |
claims_supported |
array |
지원되는 소유권 주장의 목록입니다. |
token_endpoint_auth_methods_supported |
array |
토큰 엔드포인트에 지원되는 인증 방법 목록입니다. |
code_challenge_methods_supported |
array |
PKCE에 지원되는 코드 챌린지 메서드 목록입니다. |
grant_types_supported |
array |
지원되는 OAuth 2.0 부여 유형의 목록입니다. |
ID 토큰 (클레임)
응답에서 반환되는 id_token 값은 서명된 JSON 웹 토큰 (JWT)으로, 검색 문서에 있는 jwks_uri에서 가져온 키 자료를 사용하여 확인해야 합니다. 다음 표에서는 디코딩된 ID 토큰 페이로드의 내용을 설명합니다.
| 소유권 주장 | 유형 | 설명 |
|---|---|---|
iss |
string |
필수사항. 응답의 발급기관 식별자입니다. 일반적으로 https://accounts.google.com입니다. 하지만 기존 구현의 경우 accounts.google.com도 반환됩니다. |
sub |
string |
필수사항. 사용자의 식별자로, 모든 Google 계정에서 고유하며 재사용되지 않습니다. Google 계정은 서로 다른 시점에 여러 이메일 주소를 가질 수 있지만 sub 값은 변경되지 않습니다. 애플리케이션 내에서 sub를 사용자의 고유 식별자 키로 사용하세요. 최대 길이는 대소문자를 구분하는 ASCII 문자 255자입니다. |
azp |
string |
승인된 발표자의 클라이언트 식별자입니다. Google Cloud 콘솔에서 가져옵니다. 이 클레임은 ID 토큰을 요청하는 당사자가 ID 토큰의 대상과 다른 경우에만 필요합니다. |
aud |
string |
필수사항. ID 토큰의 대상입니다. Google Cloud 콘솔에서 가져온 애플리케이션의 클라이언트 식별자입니다. |
iat |
integer |
필수사항. ID 토큰이 발급된 시간입니다. Unix 에포크 시간 (정수 초)으로 표시됩니다. |
exp |
integer |
필수사항. ID 토큰이 허용되지 않아야 하는 만료 시간입니다. Unix 에포크 시간 (정수 초)으로 표시됩니다. |
nonce |
string |
인증 요청에서 앱이 제공하는 nonce 값입니다. 이 값을 한 번만 표시하여 재생 공격으로부터 보호해야 합니다. |
auth_time |
integer |
사용자 인증이 발생한 시간입니다. Unix epoch (1970년 1월 1일 00:00:00 UTC) 이후 경과된 시간을 초로 나타내는 JSON 숫자입니다. 인증 요청 claims 매개변수에 auth_time 클레임이 포함된 경우 제공됩니다. |
at_hash |
string |
액세스 토큰 해시입니다. 액세스 토큰이 ID 토큰에 연결되어 있는지 확인합니다. ID 토큰이 서버 흐름에서 access_token 값과 함께 발급되면 이 클레임은 항상 포함됩니다. |
email |
string |
사용자의 이메일 주소 요청에 email 범위를 포함한 경우에만 제공됩니다. 이 클레임의 값은 이 계정에 고유하지 않을 수 있으며 시간이 지남에 따라 변경될 수 있으므로 이 값을 사용자 기록에 연결하는 기본 식별자로 사용해서는 안 됩니다. email 클레임의 도메인을 사용하여 Google Workspace 또는 Cloud 조직의 사용자를 식별할 수도 없습니다. 대신 hd 클레임을 사용하세요. 경고: Google 계정은 시점에 따라 여러 이메일 주소를 가질 수 있으므로 이메일 주소를 식별자로 사용하지 마세요. 항상 sub 필드를 사용자의 식별자로 사용하세요. |
email_verified |
boolean |
사용자의 이메일 주소가 확인된 경우 true입니다. 그렇지 않으면 false를 반환합니다. |
name |
string |
표시 가능한 형식으로 된 사용자의 전체 이름입니다. 요청 범위에 profile 문자열이 포함되었거나 토큰 갱신에서 ID 토큰이 반환된 경우 제공될 수 있습니다. |
picture |
string |
사용자 프로필 사진의 URL입니다. 요청 범위에 profile 문자열이 포함된 경우 또는 토큰 갱신에서 ID 토큰이 반환된 경우 제공될 수 있습니다. |
given_name |
string |
사용자의 이름입니다. name 클레임이 있는 경우 제공될 수 있습니다. |
family_name |
string |
사용자의 성입니다. name 클레임이 있는 경우 제공될 수 있습니다. |
hd |
string |
사용자의 Google Workspace 또는 Cloud 조직과 연결된 도메인입니다. 사용자가 Google Cloud 조직에 속한 경우에만 제공됩니다. 특정 도메인의 회원에게만 리소스 액세스를 제한하는 경우 이 클레임을 확인해야 합니다. 이 클레임이 없으면 계정이 Google 호스팅 도메인에 속하지 않음을 나타냅니다. |
승인 엔드포인트
승인 엔드포인트는 사용자를 인증하고 승인 코드 또는 토큰을 획득하는 데 사용됩니다.
URL: https://accounts.google.com/o/oauth2/v2/auth
지원되는 요청 메서드: GET, POST
요청 매개변수
| 매개변수 | 유형 | 필수 | 설명 |
|---|---|---|---|
client_id |
string |
필수 | Google Cloud 콘솔에서 가져온 클라이언트 식별자 문자열입니다. |
nonce |
string |
선택사항 | 재전송 보호를 사용 설정하는 앱에서 생성된 임의 값입니다. ID 토큰을 요청하는 경우에만 필요합니다 (response_type에 id_token이 포함된 경우). |
response_type |
string |
필수 | 사용할 흐름을 결정합니다. 값이 code이면 승인 코드 흐름을 실행하여 토큰을 얻기 위해 토큰 엔드포인트에 POST이 필요합니다. 값이 token, id_token, token id_token 또는 id_token token인 경우 암시적 흐름을 실행하며, URI 프래그먼트에서 토큰을 가져오려면 리디렉션 URI에서 JavaScript를 사용해야 합니다. token를 어떤 형태로든 사용하는 것은 URL에 액세스 토큰이 노출되므로 권장되지 않습니다. 이 값은 OAuth 2.1에서 금지됩니다. |
response_mode |
string |
선택사항 | 승인 응답이 전송되는 방식을 지정합니다. response_type이 code인 경우 기본값은 query입니다. 다른 응답 유형의 경우 기본값은 fragment입니다. 지원되는 값은 query, fragment, form_post입니다. |
redirect_uri |
string |
필수 | 응답이 전송되는 위치를 결정합니다. 이 매개변수의 값은 Google Cloud 콘솔에서 설정한 승인된 리디렉션 값 중 하나와 정확히 일치해야 합니다 (HTTP 또는 HTTPS 스키마, 대소문자, 후행 '/' 포함). 리디렉션 URI와 승인된 JavaScript 원본은 OAuth 2.0 URI 유효성 검사 문서에 설명된 유효성 검사 규칙을 따라야 합니다. |
scope |
string |
필수 | 공백으로 구분된 순서가 지정되지 않은 범위 목록입니다. 목록에는 openid 값이 포함된 후 profile 값, email 값 또는 둘 다 포함되어야 합니다. OIDC가 아닌 범위도 포함할 수 있습니다. profile 범위 값이 있으면 ID 토큰에 사용자의 기본 profile 클레임이 포함될 수 있지만 보장되지는 않습니다. email 범위 값이 있으면 ID 토큰에 email 및 email_verified 클레임이 포함됩니다. 자세한 내용은 OAuth 2.0 범위를 참고하세요. |
state |
string |
추천 | 프로토콜에서 왕복하는 불투명 문자열입니다. 즉, 승인 코드 흐름에서는 URI 매개변수로 반환되고 암시적 흐름에서는 URI 프래그먼트로 반환됩니다. state는 요청과 응답의 상관관계를 파악하는 데 유용합니다. redirect_uri는 추측할 수 있으므로 state 값을 사용하면 수신 연결이 앱에서 시작한 인증 요청의 결과임을 확신할 수 있습니다. 이렇게 하면 크로스 사이트 요청 위조와 같은 공격으로부터 보호할 수 있습니다. |
access_type |
string |
선택사항 | 허용되는 값은 offline 및 online입니다. 사용자가 브라우저에 없을 때 애플리케이션에서 액세스 토큰을 새로고침해야 하는 경우 offline를 사용하세요. 이 값은 새로고침 토큰을 반환받는 데 필요합니다. |
hd |
string |
선택사항 | Google Cloud 조직 소유 계정의 로그인 프로세스를 간소화합니다. Google Cloud 조직 도메인 (예: mycollege.edu)을 포함하면 해당 도메인의 계정에 맞게 계정 선택 UI를 최적화해야 함을 나타낼 수 있습니다. 하나의 Google Cloud 조직 도메인이 아닌 일반적인 Google Cloud 조직 계정에 최적화하려면 별표(*) 값을 설정하세요(hd=*). |
login_hint |
string |
선택사항 | 앱이 인증하려는 사용자를 알고 있는 경우 이 매개변수를 인증 서버에 힌트로 제공할 수 있습니다. 이 힌트를 전달하면 계정 선택기가 표시되지 않고 로그인 양식의 이메일 상자가 미리 채워지거나 적절한 세션이 선택되므로 앱이 잘못된 사용자 계정으로 로그인할 때 발생하는 문제를 방지할 수 있습니다. 값은 이메일 주소 또는 사용자의 Google ID와 동일한 sub 문자열일 수 있습니다. |
prompt |
string |
선택사항 | 인증 서버가 사용자에게 재인증 및 동의를 요청하는지 여부를 지정하는 공백으로 구분된 문자열 값 목록입니다. 가능한 값: none (UI 없음), consent (동의 요청), select_account (계정 선택 요청) |
hl |
string |
선택사항 | 로그인, 계정 선택기, 동의 화면의 표시 언어를 지정하는 데 사용되는 BCP 47 언어 태그입니다. 브라우저 설정과 Google 계정 환경설정이 일반적으로 사용자 언어 환경설정을 더 잘 나타내므로 이 매개변수의 사용은 권장되지 않습니다. |
include_granted_scopes |
boolean |
선택사항 | 이 매개변수가 true 값과 함께 제공되고 승인 요청이 승인되면 승인에는 다른 범위에 대해 이 사용자/애플리케이션 조합에 부여된 이전 승인이 포함됩니다. 증분 승인을 참고하세요. |
claims |
object |
선택사항 | claims 매개변수는 UserInfo 응답 또는 ID 토큰에 포함할 하나 이상의 선택적 필드를 지정하는 데 사용됩니다. auth_time 클레임을 요청하려면 claims={\"id_token\":{\"auth_time\":{\"essential\":true}}}을 사용하세요. |
응답 파라미터
승인 응답은 HTTP GET 리디렉션을 사용하여 클라이언트의 리디렉션 URI(redirect_uri)로 전송됩니다. 응답 매개변수는 response_type 및 response_mode에 따라 쿼리 문자열 또는 URL 프래그먼트의 리디렉션 URI에 추가됩니다.
| 매개변수 | 유형 | 설명 |
|---|---|---|
iss |
string |
발급기관 식별자입니다. RFC 9207에 따라 이 매개변수는 항상 반환되고 https://accounts.google.com로 설정됩니다. |
code |
string |
액세스 토큰 및 ID 토큰으로 교환할 수 있는 승인 코드입니다. |
state |
string |
요청의 state 매개변수와 동일한 값입니다. |
id_token |
string |
사용자에 대한 ID 정보가 포함된 JSON 웹 토큰 (JWT)입니다. |
access_token |
string |
Google API로 전송할 수 있는 액세스 토큰입니다. |
token_type |
string |
반환된 토큰의 유형입니다. 항상 Bearer입니다. |
expires_in |
integer |
토큰이 발급된 시간을 기준으로 하는 액세스 토큰의 수명(초)입니다. |
scope |
string |
code 또는 access_token에 의해 부여된 액세스 범위로, 공백으로 구분되고 대소문자를 구분하는 문자열 목록으로 표현됩니다. |
error |
string |
요청이 실패한 경우의 오류 코드입니다. |
error_description |
string |
요청이 실패한 경우 오류에 대한 설명입니다. |
오류 응답
승인 엔드포인트의 경우 오류가 클라이언트의 redirect_uri에 쿼리 문자열 또는 URL 프래그먼트의 매개변수로 반환되거나 Google 호스팅 오류 페이지로 사용자에게 표시됩니다.
리디렉션된 오류
다음 오류 코드가 redirect_uri에 반환될 수 있습니다.
| 오류 | 설명 |
|---|---|
access_denied |
사용자 또는 승인 서버가 요청을 거부했습니다. |
invalid_request |
요청에 필수 매개변수가 누락되었거나, 잘못된 매개변수 값이 포함되었거나, 매개변수가 두 번 이상 포함되었거나, 잘못된 형식이 있습니다. |
unauthorized_client |
클라이언트가 이 메서드를 사용하여 승인 코드를 요청하도록 승인되지 않았습니다. |
unsupported_response_type |
승인 서버는 이 방법을 사용한 승인 코드 획득을 지원하지 않습니다. |
invalid_scope |
요청된 범위가 유효하지 않거나, 알 수 없거나, 형식이 잘못되었습니다. |
사용자에게 표시되는 오류
client_id 또는 redirect_uri이 유효하지 않은 경우와 같이 일부 경우에는 승인 서버가 사용자를 애플리케이션으로 안전하게 리디렉션할 수 없습니다.
이러한 경우 사용자에게 오류 페이지가 직접 표시됩니다.
| 오류 | 설명 |
|---|---|
admin_policy_enforced |
Google Workspace 관리자의 정책으로 인해 Google 계정에서 요청된 하나 이상의 범위를 승인할 수 없습니다. 관리자가 OAuth 클라이언트 식별자에 대한 액세스가 명시적으로 부여될 때까지 액세스를 제한하는 방법에 대한 자세한 내용은 Google Workspace 관리자 도움말을 참고하세요. |
disallowed_useragent |
승인 엔드포인트가 Google의 OAuth 2.0 정책에 의해 허용되지 않는 삽입된 사용자 에이전트 내에 표시됩니다. |
org_internal |
요청의 OAuth 클라이언트 식별자는 특정 Google Cloud 조직의 Google 계정에 대한 액세스를 제한하는 프로젝트의 일부입니다. |
deleted_client |
요청을 실행하는 데 사용된 OAuth 클라이언트가 삭제되었습니다. 삭제는 수동으로 이루어질 수도 있고 사용되지 않는 클라이언트의 경우 자동으로 이루어질 수도 있습니다. |
invalid_grant |
PKCE를 사용할 때 code_challenge 매개변수가 잘못되었거나 누락되었습니다. 액세스 토큰을 갱신하거나 증분 승인을 사용할 때 토큰이 만료되었거나 무효화되었거나 사용자 계정이 삭제 또는 사용 중지되었을 수 있습니다. |
redirect_uri_mismatch |
요청에 전달된 redirect_uri가 클라이언트 식별자의 승인된 리디렉션 URI와 일치하지 않습니다. Google Cloud 콘솔에서 승인된 리디렉션 URI를 검토합니다. 이 오류는 요청에서 지원 중단된 OAuth 대역외 (OOB) 흐름을 사용하는 경우에도 발생할 수 있습니다. |
invalid_client |
요청이 이루어진 출처가 이 클라이언트에 대해 승인되지 않았거나, 클라이언트 구성이 잘못되었거나, OAuth 클라이언트 보안 비밀번호가 잘못되었습니다. |
origin_mismatch |
승인 요청을 시작한 JavaScript의 스키마, 도메인 또는 포트가 OAuth 클라이언트 식별자에 등록된 승인된 JavaScript 원본 URI와 일치하지 않습니다. Google Cloud 콘솔에서 승인된 JavaScript 출처를 검토합니다. |
invalid_request |
요청에 문제가 있습니다. 잘못된 요청, 필수 매개변수 누락 또는 Google에서 지원하지 않는 승인 방법을 사용한 것이 원인일 수 있습니다. |
토큰 엔드포인트
토큰 엔드포인트는 승인 코드를 액세스 토큰 및 ID 토큰으로 교환하는 데 사용됩니다.
URL: https://oauth2.googleapis.com/token
지원되는 요청 메서드: POST
요청 매개변수 (승인 코드 부여)
| 매개변수 | 유형 | 필수 | 설명 |
|---|---|---|---|
code |
string |
필수 | 승인 엔드포인트에서 수신한 승인 코드입니다. |
client_id |
string |
필수 | Google Cloud 콘솔에서 가져온 애플리케이션의 클라이언트 식별자입니다. |
client_secret |
string |
필수 | Google Cloud 콘솔에서 가져온 애플리케이션의 클라이언트 보안 비밀번호입니다. |
redirect_uri |
string |
필수 | 초기 승인 요청에 사용된 리디렉션 URI입니다. 리디렉션 URI와 승인된 JavaScript 원본은 OAuth 2.0 URI 유효성 검사 문서에 설명된 유효성 검사 규칙을 따라야 합니다. |
grant_type |
string |
필수 | 값은 authorization_code(으)로 설정해야 합니다. |
요청 매개변수 (기기 흐름)
| 매개변수 | 유형 | 필수 | 설명 |
|---|---|---|---|
client_id |
string |
필수 | Google Cloud 콘솔에서 가져온 애플리케이션의 클라이언트 식별자입니다. |
client_secret |
string |
필수 | Google Cloud 콘솔에서 가져온 애플리케이션의 클라이언트 보안 비밀번호입니다. |
device_code |
string |
필수 | 기기 승인 엔드포인트에서 반환된 device_code입니다. |
grant_type |
string |
필수 | 값은 urn:ietf:params:oauth:grant-type:device_code(으)로 설정해야 합니다. |
요청 매개변수 (액세스 토큰 새로고침)
| 매개변수 | 유형 | 필수 | 설명 |
|---|---|---|---|
client_id |
string |
필수 | Google Cloud 콘솔에서 가져온 애플리케이션의 클라이언트 식별자입니다. |
client_secret |
string |
필수 | Google Cloud 콘솔에서 가져온 애플리케이션의 클라이언트 보안 비밀번호입니다. |
grant_type |
string |
필수 | OpenID Connect 새로고침 토큰 사양에 정의된 대로 refresh_token로 설정해야 합니다. |
refresh_token |
string |
필수 | 승인 코드 교환에서 반환된 토큰 갱신입니다. |
scope |
string |
선택사항 | 새 액세스 토큰에 요청된 공백으로 구분된 범위 목록입니다. 요청된 범위는 원래 승인 요청에서 부여된 범위의 하위 집합이어야 합니다. |
응답 본문
응답 필드는 요청자의 https://oauth2.googleapis.com/token에 대한 POST 요청에 대한 HTTP 응답의 본문에 있는 JSON 객체로 반환됩니다.
| 필드 | 유형 | 설명 |
|---|---|---|
access_token |
string |
Google API로 전송할 수 있는 액세스 토큰입니다. |
expires_in |
integer |
토큰이 발급된 시간을 기준으로 한 액세스 토큰의 수명(초)입니다. |
id_token |
string |
사용자에 대한 ID 정보가 포함된 JSON 웹 토큰 (JWT)입니다. 이 토큰은 초기 승인 코드 교환 중에 반환되며 openid 범위가 부여된 경우 새로고침 토큰 요청 중에 반환될 수도 있습니다. |
scope |
string |
access_token에 의해 부여된 액세스 범위가 공백으로 구분되고 대소문자를 구분하는 문자열 목록으로 표현됩니다. |
token_type |
string |
반환된 토큰의 유형입니다. 항상 Bearer입니다. |
refresh_token |
string |
(선택사항) 새 액세스 토큰을 획득하는 데 사용할 수 있는 토큰입니다. 이 필드는 access_type=offline이 요청된 경우 권한 부여 코드의 초기 교환에서만 반환됩니다. |
refresh_token_expires_in |
integer |
(선택사항) 새로고침 토큰의 남은 수명(초)입니다. 이 값은 사용자가 시간 기반 액세스를 부여한 경우에만 설정됩니다. |
오류 응답
요청이 실패하면 승인 서버는 다음 필드가 포함된 JSON 객체를 반환합니다.
| 필드 | 유형 | 설명 |
|---|---|---|
error |
string |
오류 코드입니다. |
error_description |
string |
요청이 실패한 경우 오류에 대한 설명입니다. |
다음 표에서는 잠재적인 오류 코드와 연결된 HTTP 상태 코드를 설명합니다.
| 오류 | HTTP 상태 코드 | 설명 |
|---|---|---|
invalid_request |
400 |
요청에 필수 매개변수가 누락되었거나, 잘못된 매개변수 값이 포함되었거나, 형식이 잘못되었습니다. |
invalid_client |
401 |
클라이언트 인증에 실패했습니다. 예를 들어 client_id 또는 client_secret이 잘못되었거나 클라이언트 유형이 잘못되었습니다. |
invalid_grant |
400 |
제공된 승인 코드, 새로고침 토큰 또는 기기 코드가 유효하지 않거나, 만료되었거나, 취소되었거나, 승인 요청에 사용된 리디렉션 URI와 일치하지 않습니다. |
unauthorized_client |
400 |
인증된 클라이언트가 이 승인 부여 유형을 사용할 권한이 없습니다. |
unsupported_grant_type |
400 |
승인 부여 유형이 승인 서버에서 지원되지 않습니다. |
invalid_scope |
400 |
요청된 범위가 유효하지 않거나, 알 수 없거나, 형식이 잘못되었습니다. |
authorization_pending |
428 |
(기기 흐름) 사용자가 아직 승인 흐름을 완료하지 않았습니다. |
slow_down |
429 |
(기기 흐름) 기기가 너무 자주 폴링 요청을 전송합니다. |
access_denied |
403 |
(기기 흐름) 사용자가 기기에 대한 액세스 권한 부여를 거부했습니다. |
expired_token |
400 |
(기기 흐름) device_code이 만료되었습니다. |
admin_policy_enforced |
400 |
사용자가 Google Workspace 관리자가 적용한 정책으로 인해 요청된 범위를 승인할 수 없습니다. |
org_internal |
403 |
클라이언트 식별자는 특정 Google Cloud 조직에 대한 액세스를 제한하는 프로젝트에 속합니다. |
기기 승인 엔드포인트
기기 승인 엔드포인트는 OAuth 2.0 기기 흐름에서 입력 기능이 제한된 기기의 사용자 코드와 확인 URL을 획득하는 데 사용됩니다.
URL: https://oauth2.googleapis.com/device/code
지원되는 요청 메서드: POST
요청 매개변수
| 매개변수 | 유형 | 필수 | 설명 |
|---|---|---|---|
client_id |
string |
필수 | Google Cloud 콘솔에서 가져온 애플리케이션의 클라이언트 식별자입니다. |
scope |
string |
필수 | 사용자를 대신하여 애플리케이션이 액세스할 수 있는 리소스를 식별하는 공백으로 구분된 범위의 목록입니다. |
응답 본문
응답은 다음 필드를 포함하는 JSON 객체입니다.
| 필드 | 유형 | 설명 |
|---|---|---|
device_code |
string |
승인을 요청하는 앱을 실행하는 기기를 식별하기 위해 Google에서 고유하게 할당하는 값입니다. |
user_code |
string |
애플리케이션이 액세스를 요청하는 범위를 Google에 식별하는 대소문자를 구분하는 값입니다. 사용자 인터페이스는 입력 기능이 더 풍부한 별도의 기기에 이 값을 입력하도록 사용자에게 안내합니다. |
verification_url |
string |
사용자가 별도의 기기에서 이동하여 user_code를 입력하고 애플리케이션에 대한 액세스 권한을 부여하거나 거부해야 하는 URL입니다. |
expires_in |
integer |
device_code 및 user_code가 유효한 시간(초)입니다. |
interval |
integer |
기기가 폴링 요청 사이에 대기해야 하는 시간(초)입니다. |
취소 엔드포인트
취소 엔드포인트를 사용하면 애플리케이션이 액세스 토큰 또는 갱신 토큰을 취소할 수 있습니다.
URL: https://oauth2.googleapis.com/revoke
지원되는 요청 메서드: POST
요청 매개변수
| 매개변수 | 유형 | 필수 | 설명 |
|---|---|---|---|
token |
string |
필수 | 취소하려는 액세스 토큰 또는 갱신 토큰입니다. |
응답 본문
취소가 성공하면 응답은 빈 HTTP 200 OK입니다. 취소가 실패하면 오류 응답이 JSON 객체로 반환됩니다.
| 필드 | 유형 | 설명 |
|---|---|---|
error |
string |
요청이 실패한 경우의 오류 코드입니다. |
error_description |
string |
요청이 실패한 경우 오류에 대한 설명입니다. |
다음 표에서는 가능한 오류 코드를 설명합니다.
| 오류 | 설명 |
|---|---|
invalid_token |
요청에 제공된 토큰이 이미 만료되었거나 이미 취소되었습니다. |
invalid_request |
요청에 필수 매개변수가 누락되었거나, 잘못된 매개변수 값이 포함되었거나, 형식이 잘못되었습니다. |
UserInfo 엔드포인트
UserInfo 엔드포인트는 인증된 사용자에 관한 프로필 정보를 반환합니다.
URL: https://openidconnect.googleapis.com/v1/userinfo
지원되는 요청 메서드: GET, POST
요청 헤더
| 헤더 | 설명 |
|---|---|
Authorization |
필수사항. Bearer: access_token로 설정해야 합니다. |
응답 본문
응답 필드는 요청자의 https://openidconnect.googleapis.com/v1/userinfo에 대한 GET 또는 POST 요청에 대한 HTTP 응답의 본문에 있는 JSON 객체로 반환됩니다.
| 필드 | 유형 | 설명 |
|---|---|---|
sub |
string |
필수사항. 사용자의 식별자로, 모든 Google 계정에서 고유하며 재사용되지 않습니다. 대소문자를 구분하며 255자를 초과하지 않는 문자열입니다. |
name |
string |
표시 가능한 형식으로 된 사용자의 전체 이름입니다. |
given_name |
string |
사용자의 이름입니다. |
family_name |
string |
사용자의 성입니다. |
picture |
string |
사용자 프로필 사진의 URL입니다. |
email |
string |
사용자의 이메일 주소 |
email_verified |
boolean |
사용자의 이메일 주소가 확인되었는지 여부입니다. |
hd |
string |
사용자의 Google Workspace 또는 Cloud 조직과 연결된 호스팅 도메인입니다. |
Tokeninfo 엔드포인트
tokeninfo 엔드포인트는 디버깅 목적으로 ID 토큰을 검증하는 데 사용되는 Google 전용 구현입니다.
URL: https://oauth2.googleapis.com/tokeninfo
지원되는 요청 메서드: GET, POST
요청 매개변수
| 매개변수 | 유형 | 필수 | 설명 |
|---|---|---|---|
id_token |
string |
필수 | 유효성을 검사할 ID 토큰입니다. |
응답 본문
응답 필드는 요청자의 https://oauth2.googleapis.com/tokeninfo에 대한 GET 또는 POST 요청에 대한 HTTP 응답의 본문에 있는 JSON 객체로 반환됩니다.
| 필드 | 유형 | 설명 |
|---|---|---|
iss |
string |
발급기관 식별자입니다. 항상 https://accounts.google.com입니다. |
sub |
string |
사용자의 식별자로, 모든 Google 계정에서 고유하며 재사용되지 않습니다. |
aud |
string |
ID 토큰의 대상입니다. Google Cloud 콘솔에서 가져온 애플리케이션의 클라이언트 식별자입니다. |
iat |
integer |
JWT가 발급된 시간입니다. 1970-01-01T0:0:0Z부터 UTC로 측정된 초 수로 표시됩니다. |
exp |
integer |
ID 토큰이 처리용으로 허용되지 않아야 하는 만료 시간입니다. 1970-01-01T0:0:0Z부터 UTC로 측정된 초 수로 표시됩니다. |
email |
string |
사용자의 이메일 주소 |
email_verified |
string |
사용자의 이메일 주소가 확인되었는지 여부입니다. 값은 문자열 "true" 또는 "false"입니다. |
access_type |
string |
원래 승인 요청에서 요청된 액세스 유형입니다. |
azp |
string |
승인된 발표자의 클라이언트 식별자입니다. Google Cloud 콘솔에서 가져옵니다. |
scope |
string |
토큰에 부여된 범위의 공백으로 구분된 목록입니다. |
alg |
string |
ID 토큰에 서명하는 데 사용되는 알고리즘입니다. |
kid |
string |
ID 토큰에 서명하는 데 사용된 키 ID입니다. |
typ |
string |
토큰 유형입니다. 항상 JWT입니다. |