アプリのフロントエンドの統合

このページでは、アプリのフロントエンドを Google Cloud Marketplace と統合する手順について説明します。フロントエンドの統合により、顧客が Google Cloud Marketplace からアプリに切り替える際に円滑なエクスペリエンスを提供できます。

新規ユーザーのアカウント有効化ページを作成する

ユーザーが Google Cloud Marketplace からプロダクトを選択するとき、ユーザーはアプリで自分のアカウントを有効にする必要があります。システムでユーザーのアカウントを設定および承認するため、有効化ページを作成する必要があります。このページは、ユーザーがシステムのアカウントに登録する必要がある登録ページとして、またはアカウントを自動的に承認するページとして設定できます。 有効化ページを設定する際には、ユーザーがユーザー名とパスワードを入力せずにページにアクセスできるようにしてください。

Google Cloud Marketplace では、ユーザーがリンクをクリックしてアプリに登録すると、有効化ページに HTTP POST リクエストが送信され、x-gcp-marketplace-token パラメータで JSON ウェブトークン(JWT)が送信されます。JWT には、ユーザーの調達アカウント ID が含まれており、Google Cloud Platform ユーザーとして識別されます。この ID を使用して、ユーザーの Google アカウントをシステムのアカウントにリンクする必要があります。

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. プロダクトの [概要] ページで [技術統合] セクションに移動し、[FRONTEND INTEGRATION] をクリックします。

  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 を示します。キー ID を使用して、ペイロード内の iss 属性の JSON オブジェクトからキーを検索します。

ペイロード

{
  "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 です。この ID を使用して、ユーザーの Google アカウントをシステムのアカウントにリンクする必要があります。
  • iss は JWT の送信者を識別します。iss クレーム内の 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 2.0 アクセス トークンを使用して Google UserInfo API を呼び出して、基本的なユーザー情報を取得します。これにより、JWT の user_identity フィールドと一致する ID が返されます。

顧客のシングル サインオン(SSO)を統合する

顧客がプロダクトに登録する際、最初にユーザー名とパスワードを入力しなくても、有効化ページでアカウントを登録できる必要があります。

SSO の統合では、JWT を使用してユーザーを認証します。JWT を初めて使用する場合は、JWT の概要をご覧ください。

SSO の統合は、Producer Portal またはパートナー ポータルで設定できます。

Producer Portal

SSO の統合を設定するには:

  1. プロダクトの [概要] ページで [技術統合] セクションに移動し、[FRONTEND INTEGRATION] をクリックします。

  2. ダッシュボードにリンクするには、[ログイン URL] にダッシュボードの URL を入力します。

  3. Google SSO を使用するには、[SSO ログインの有効化(省略可)] をクリックし、[SSO URL] 欄に SSO のログイン URL を入力します。

  4. アプリのウェブ インターフェースで、ユーザーが Google Cloud Marketplace からログインしたときにアプリに送信される JWT ペイロードを確認するコードを追加します。

    認証用の JWT の形式は、ユーザーがアプリに初めて登録したときに送信される JWT と同じです。詳しくは、JWT を確認するをご覧ください。

パートナー ポータル

SSO の統合を設定するには:

  1. プロダクトの [プランと機能] ページに移動し、プロダクトのプランと機能の [EDIT] を選択します。

  2. ダッシュボードにリンクするには、[Dashboard URL] にダッシュボードの URL を入力します。

  3. Google SLO を使用するには、[SSO ログイン(省略可)] の [SSO の有効化] をクリックし、[SSO のログイン URL] 欄に SSO のログイン URL を入力します。[SSO API Keys URL] 欄に SSO API キーの URL を入力します。

  4. アプリのウェブ インターフェースで、ユーザーが Google Cloud Marketplace からログインしたときにアプリに送信される JWT ペイロードを確認するコードを追加します。

    認証用の JWT の形式は、ユーザーがアプリに初めて登録したときに送信される JWT と同じです。詳しくは、JWT を確認するをご覧ください。