앱의 프런트엔드 통합

이 페이지에서는 앱의 프런트엔드를 Google Cloud Marketplace와 통합하는 단계에 대해 설명합니다. 프런트엔드를 통합하면 Google Cloud Marketplace에서 앱으로 이동하는 고객에게 원활한 실험 환경을 제공할 수 있습니다.

신규 사용자를 위한 계정 활성화 페이지 생성

사용자가 Google Cloud Marketplace에서 제품을 선택하면 앱에서 계정을 활성화해야 합니다. 시스템에서 사용자 계정을 설정하고 승인하려면 활성화 페이지를 작성해야 합니다. 페이지를 사용자가 시스템의 계정에 등록해야 하는 등록 페이지 또는 자동으로 계정을 승인하는 페이지로 설정할 수 있습니다. 활성화 페이지를 설정할 때 사용자 이름 및 암호를 입력하지 않고 사용자가 페이지에 액세스할 수 있도록 합니다.

Google Cloud Marketplace에서 사용자가 링크를 클릭하여 앱에 가입하면 Google은 활성화 페이지에 HTTP POST 요청을 전송하고 x-gcp-marketplace-token 매개 변수의 JSON 웹 토큰 (JWT)을 전송합니다. JWT에는 사용자의 조달 계정 ID가 포함되며 이를 통해 Google Cloud 사용자로 식별됩니다. 사용자의 Google 계정을 시스템 계정에 연결하려면 이 ID를 사용해야 합니다.

JWT를 확인한 후 백엔드 통합 단계의 설명처럼 활성화 페이지에서 Partner Procurement API에 계정 승인 요청을 보내야 합니다.

JWT를 처음 사용하는 경우에는 JWT 소개를 참조하세요.

포털에 계정 활성화 페이지 추가

Producer Portal 또는 파트너 포털을 사용하여 계정 활성화 페이지 URL을 추가할 수 있습니다.

Producer Portal

Producer Portal에 바로 연결되는 링크는 다음과 같습니다.

https://console.cloud.google.com/producer-portal?project=YOUR_PROJECT_ID

Producer Portal에 계정 활성화 페이지를 추가하려면 다음 단계를 따르세요.

  1. 제품 목록에서 제품 이름을 클릭합니다.

  2. 제품의 개요 페이지에서 기술 통합 섹션으로 이동하여 프런트엔드 통합을 클릭합니다.

  3. 가입 URL 필드에 계정 활성화 페이지의 URL을 입력합니다.

파트너 포털

파트너 포털에 바로 연결되는 링크는 다음과 같습니다.

https://console.cloud.google.com/partner/solutions?project=YOUR_PROJECT_ID

파트너 포털에 계정 활성화 페이지를 추가하려면 다음 단계를 따르세요.

  1. 솔루션 목록에서 생성한 솔루션 ID를 클릭합니다.

  2. 요금제 및 기능 페이지에서 페이지를 클릭하여 수정합니다.

  3. 가입 URL 필드에 계정 활성화 페이지의 URL을 입력합니다.

JWT 확인

JWT 페이로드는 다음 형식입니다.

헤더

{
  "alg": "RS256",
  "kid": "KEY_ID"
}

여기에서

  • alg은 항상 RS256입니다.
  • kid은 JWT 보안을 위해 사용된 키 ID를 나타냅니다. 페이로드에서 iss 속성에 있는 JSON 객체로부터 키를 조회하려면 이 키 ID를 사용합니다.

페이로드

{
  "iss": "https://www.googleapis.com/robot/v1/metadata/x509/cloud-commerce-partner@system.gserviceaccount.com",
  "iat": CURRENT_TIME,
  "exp": CURRENT_TIME + 5 minutes,
  "aud": "PARTNER_DOMAIN_NAME",
  "sub": "PROCUREMENT_ACCOUNT_ID",
  "google": {
    "roles": [GCP_ROLE],
    "user_identity": USER_ID
  }
}

여기에서

  • sub는 사용자의 Google 계정 ID입니다. 사용자의 Google 계정을 시스템 계정에 연결하려면 이 ID를 사용해야 합니다.
  • ississ는 JWT를 보낸 사람입니다. ississ 클레임의 URL은 Google의 공개 키에 연결됩니다.
  • exp은 토큰이 만료되는 시기를 나타내며 토큰이 전송된 후 5분으로 설정됩니다.
  • aud는 제품을 호스팅하는 도메인입니다(예를 들면 example-pro.com).
  • roles는 사용자 역할을 나타내는 문자열의 배열입니다. 현재는 다음 중 하나일 수 있습니다. ** account_admin은 사용자가 제품을 구입한 청구 계정의 청구 계정 관리자임을 나타냅니다. ** project_editor는 사용자가 프로젝트 편집자이지만 해당 청구 계정에 포함된 프로젝트의 청구 관리자가 아님을 나타냅니다.
  • user_identity는 사용자의 난독화된 GAIA ID이며, Open ID Connect를 시작하기 위해 사용될 수 있습니다.

JWT가 수신되면 다음을 확인해야 합니다.

  1. JWT 서명이 Google의 공개 키를 사용 중인지 확인합니다.

  2. exp 클레임을 확인하여 JWT가 만료되지 않았는지 확인합니다.

  3. aud 클레임이 제품의 올바른 도메인인지 확인합니다.

  4. iss 클레임이 https://www.googleapis.com/robot/v1/metadata/x509/cloud-commerce-partner@system.gserviceaccount.com인지 확인합니다.

  5. sub이 비어있지 않은지 확인하십시오.

login_hint로 Google 로그인 시작

사용자가 사이트에서 OAuth 2.0 동의 흐름을 통과하도록 하려면 페이로드의 ID 정보를 사용하여 리디렉션 전 Google Cloud에 사용하던 Google 계정에서 흐름을 초기화할 수 있습니다. 이렇게 하려면 JWT에 제공된 user_identitylogin_hint로 제공합니다. 자세한 내용은 Google OAuth2.0 문서를 참조하세요.

사용자가 사이트에서 OAuth 2.0 흐름을 완료한 후에는 해당 사용자가 실제로 OAuth 흐름을 완료하도록 예상한 사용자인지 확인해야 합니다. 이렇게 하려면 OAuth 2.0 액세스 토큰을 사용하여 Google UserInfo API를 호출하고 해당 기본 사용자 정보를 가져옵니다. 그러면 JWT의 user_identity 필드와 일치하는 ID가 반환됩니다.

고객을 위한 SSO(싱글 사인온) 통합

고객이 제품 이용을 위해 등록할 때 고객이 먼저 사용자 이름 및 비밀번호를 입력하지 않아도 활성화 페이지에서 계정을 등록할 수 있어야 합니다.

SSO 통합에서는 JWT를 사용하여 사용자를 인증합니다. JWT를 처음 사용하는 경우에는 JWT 소개를 참조하세요.

Producer Portal 또는 파트너 포털에서 SSO 통합을 설정할 수 있습니다.

Producer Portal

SSO 통합을 설정하려면 다음을 수행하세요.

  1. 제품의 개요 페이지에서 기술 통합 섹션으로 이동하여 프런트엔드 통합을 클릭합니다.

  2. 대시보드에 연결하려면 로그인 URL 필드에 대시보드의 URL을 입력합니다.

  3. Google SSO를 사용하려면 SSO 로그인 사용 설정(선택사항)을 클릭한 다음 SSO URL 입력란에 SSO 로그인 URL을 입력합니다.

  4. 앱의 웹 인터페이스에서 사용자가 Google Cloud Marketplace에서 로그인할 때 앱으로 전송되는 JWT 페이로드를 확인하는 코드를 추가합니다.

    인증을 위한 JWT 형식은 JWT 확인에 설명된 대로 사용자가 처음 앱을 등록할 때 전송된 JWT와 동일합니다.

파트너 포털

SSO 통합을 설정하려면 다음을 수행하세요.

  1. 제품의 요금제 및 기능 페이지로 이동하여 제품 요금제와 기능을 수정하도록 선택합니다.

  2. 대시보드를 연결하려면 대시보드 URL 필드에 대시보드의 URL을 입력합니다.

  3. Google SLO를 사용하려면 SSO 로그인(선택사항)에서 SSO 사용 설정을 클릭한 다음 SSO 로그인 URL 필드에 SSO 로그인 URL을 입력합니다. SSO API 키 URL 필드에 SSO API 키의 URL을 입력합니다.

  4. 앱의 웹 인터페이스에서 사용자가 Google Cloud Marketplace에서 로그인할 때 앱으로 전송되는 JWT 페이로드를 확인하는 코드를 추가합니다.

    인증을 위한 JWT 형식은 JWT 확인에 설명된 대로 사용자가 처음 앱을 등록할 때 전송된 JWT와 동일합니다.