Cloud OAuth API 개요

Cloud OAuth API (cloudoauth.googleapis.com)는 직원 ID 제휴를 위한 OAuth 2.0 및 OpenID Connect (OIDC) 토큰 교환 및 인증을 제공합니다.

Cloud OAuth API는 Google Cloud 사용자를 인증합니다. 이 API를 사용하면 애플리케이션에서 사용자를 승인 엔드포인트(https://auth.cloud.google/authorize)로 리디렉션하여 승인 코드를 가져올 수 있습니다. 그러면 애플리케이션이 외부 사용자 인증 정보, 승인 코드 또는 갱신 토큰을 단기 OAuth 2.0 액세스 토큰 및 OIDC ID 토큰으로 교환할 수 있습니다.

이 API는 OAuth 2.0 토큰 교환 (RFC 8693) 및 OAuth 2.0 승인 프레임워크(RFC 6749) 사양을 기반으로 합니다.

Security Token Service와 비교

이전에는 Google Cloud의 보안 토큰 서비스 (sts.googleapis.com)에서 직원 ID 제휴와 워크로드 아이덴티티 제휴 모두에 대한 토큰 교환을 처리했습니다.

Cloud OAuth API는 Security Token Service와 동일한 토큰 교환을 지원하지만 직원 ID 제휴 트래픽 전용입니다. 이렇게 분리하면 직원 토큰 교환이 워크로드 트래픽과 격리되므로 교차 서비스 중단을 방지하고 직원 용량을 보안 토큰 서비스와 독립적으로 확장할 수 있습니다. 통합 상태에 따라 다음 가이드라인을 따르세요.

  • 새 통합: 사용자를 승인 엔드포인트(https://auth.cloud.google/authorize)로 리디렉션하고 Cloud OAuth API (cloudoauth.googleapis.com)를 사용하여 토큰을 교환합니다.
  • 기존 통합: 보안 토큰 서비스(sts.googleapis.com/v1/oauthtoken 또는 sts.googleapis.com/v1/token)를 사용하는 경우 cloudoauth.googleapis.com로 전환합니다.

지원되는 엔드포인트

다음 표에는 Cloud OAuth API 통합에 사용하는 엔드포인트가 나와 있습니다. 이러한 엔드포인트 대부분은 클라이언트 애플리케이션과 리소스가 단일 Google Cloud조직으로 제한될 때 격리된 키 관리 및 검색을 제공하는 조직 범위 (단일 테넌트) 엔드포인트입니다.

조직 범위 엔드포인트 URL에서 ORGANIZATION_ID를 숫자 Google Cloud조직 ID로 바꿉니다.

엔드포인트 메서드 URL 설명
OpenID Connect 검색 GET https://auth.cloud.google/oidc/organizations/ORGANIZATION_ID/.well-known/openid-configuration 조직의 OpenID Connect Discovery 1.0 제공업체 구성 메타데이터(탐색 문서)를 반환합니다.
승인 GET https://auth.cloud.google/authorize 제휴 사용자를 ID 공급업체 (IdP)로 로그인하도록 리디렉션하고 애플리케이션의 리디렉션 URI에 승인 코드를 반환합니다.
토큰 교환 POST https://cloudoauth.googleapis.com/v1/organizations/ORGANIZATION_ID/token 승인 코드 또는 갱신 토큰을 OAuth 2.0 액세스 토큰 및 OIDC ID 토큰으로 교환합니다.
JSON 웹 키 세트 (JWKS) GET https://cloudoauth.googleapis.com/v1/organizations/ORGANIZATION_ID/.well-known/jwks.json 조직에 발급된 OIDC ID 토큰의 서명을 확인하는 데 사용되는 공개 JSON 웹 키 (JWK)를 반환합니다.
사용자 정보 GET https://cloudoauth.googleapis.com/v1/organizations/ORGANIZATION_ID/userinfo 인증된 사용자의 OIDC 표준 클레임, 커스텀 디렉터리 클레임, 그룹 멤버십을 검색합니다.
엔터프라이즈 그룹 GET https://cloudoauth.googleapis.com/v1/common/groups 인증된 사용자의 페이지로 나눈 엔터프라이즈 그룹 멤버십을 검색합니다.

승인 엔드포인트

OAuth 2.0 및 OIDC 승인 코드 플로우에서 애플리케이션은 제휴 사용자를 Google Cloud의 통합 승인 엔드포인트(https://auth.cloud.google/authorize)로 리디렉션하여 IdP로 로그인합니다. 인증이 성공하면 승인 엔드포인트는 승인 코드를 사용하여 사용자를 애플리케이션의 리디렉션 URI로 리디렉션합니다. 그러면 애플리케이션이 토큰 교환 엔드포인트에서 이 코드를 토큰으로 교환합니다.

OIDC 검색 및 JWKS 엔드포인트

Looker OIDC 통합의 경우 Cloud OAuth API는 클라이언트 구성 및 토큰 확인을 위해 인증되지 않은 공개 조직 범위 엔드포인트를 제공합니다.

  • OpenID Connect 탐색 엔드포인트: 조직의 OpenID Connect Discovery 1.0 제공업체 구성 메타데이터 (탐색 문서)를 제공합니다. 탐색 문서에는 조직의 issuer 식별자와 엔드포인트 URL (authorization_endpoint, token_endpoint, userinfo_endpoint, jwks_uri)이 포함됩니다. 또한 지원되는 범위, 클레임, 서명 알고리즘 (RS256), Proof Key for Code Exchange (PKCE) 코드 챌린지 메서드 (S256)도 나열됩니다.
  • JSON 웹 키 세트 (JWKS) 엔드포인트: 조직의 공개 JSON 웹 키 세트 (JWKS)를 제공합니다. 애플리케이션은 keys 배열의 공개 JSON 웹 키 (JWK)를 사용하여 Cloud OAuth API에서 발급한 OIDC ID 토큰 (id_token)의 암호화 서명을 확인합니다.

일반적인 OIDC 통합에서 애플리케이션은 다음 순서로 이러한 엔드포인트를 사용합니다.

  1. 탐색 문서 가져오기: OpenID Connect 탐색 엔드포인트 (/.well-known/openid-configuration)에 GET 요청을 전송하고 엔드포인트 URL (authorization_endpoint, token_endpoint, jwks_uri, userinfo_endpoint)을 읽습니다.
  2. 승인 코드 요청: 사용자를 authorization_endpoint (https://auth.cloud.google/authorize)로 리디렉션하여 IdP로 로그인하고 애플리케이션의 리디렉션 URI에서 승인 코드를 받습니다.
  3. 승인 코드를 토큰으로 교환: token_endpoint (/token)에 POST 요청을 전송하여 승인 코드를 OAuth 2.0 액세스 토큰 및 OIDC ID 토큰 (id_token)으로 교환합니다.
  4. ID 토큰 확인: jwks_uri (/.well-known/jwks.json)에서 조직의 공개 키를 가져와 id_token의 암호화 서명을 확인하는 데 사용합니다.
  5. 선택사항: 사용자 정보 검색: 액세스 토큰이 포함된 GET 요청을 userinfo_endpoint (/userinfo)에 전송하여 추가 사용자 프로필 클레임 및 그룹 멤버십을 검색합니다.

다음 단계