Integra il frontend dell'app

In questa pagina viene descritto come integrare il frontend della tua app con Cloud Marketplace per offrire ai clienti un'esperienza ottimale da Cloud Marketplace al tuo prodotto.

A livello generale, devi fornire un URL di registrazione per gestire la creazione degli utenti account, che vengono poi gestiti nella console web. Devi inoltre fornire un URL per l'accesso degli utenti. Facoltativamente, puoi integrare il servizio Single Sign-On (SSO).

Usa Producer Portal per integrare il frontend della tua app

Per accedere a tutte le informazioni necessarie per integrare il frontend della tua app Cloud Marketplace da un'unica posizione, puoi utilizzare Sezione Integrazione frontend di Producer Portal.

Il link diretto al Producer Portal è:

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

Per accedere alla sezione Integrazione frontend:

  1. Nell'elenco dei prodotti, fai clic sul nome del tuo prodotto.

  2. Nella pagina Panoramica del tuo prodotto, vai alla sezione Integrazione tecnica. e fai clic su Integrazione frontend.

Aggiungi l'URL di registrazione

Quando gli utenti acquistano il tuo prodotto da Cloud Marketplace, devi creare una account con il tuo prodotto. Per farlo, devi creare una pagina di registrazione per configurare e approvare l'accesso nel tuo sistema. Puoi impostare la pagina come una pagina di registrazione in cui gli utenti registrano un account nel tuo sistema, o come che approva automaticamente gli account.

Dopo aver creato la pagina di registrazione, aggiungila in Producer Portal:

  1. Nell'elenco dei prodotti, fai clic sul nome del tuo prodotto.

  2. Nella pagina Panoramica del tuo prodotto, vai al Centro assistenza integrazione e fai clic su Integrazione frontend.

  3. Inserisci l'URL della pagina di registrazione nel campo URL di registrazione.

Verificare le informazioni di registrazione dell'utente

Se un utente non ha ancora creato un account nel tuo sistema, deve fare clic sull'icona Pulsante Registrati con YOUR_COMPANY_NAME in Google Cloud Marketplace. Quando fanno clic sul pulsante, Google Cloud invia HTTP POST alla tua pagina di registrazione, con un JSON Web Token (JWT) in x-gcp-marketplace-token. Il JWT contiene il parametro ID account approvvigionamento, che lo identifica come utente Google Cloud e ID offuscato, che rappresenta l'ID del suo Account Google. Devi utilizzare sia ID account di approvvigionamento e ID offuscato per collegare l'Account Google dell'utente al proprio account nel tuo sistema.

Dopo aver verificato il JWT, la pagina di registrazione deve inviare un all'API Partner Procurement, descritta in passaggi per l'integrazione del backend.

Per informazioni dettagliate sul payload JWT e su come verificarlo, consulta Verifica il JWT di seguito.

Se non hai mai utilizzato i JWT, consulta le Introduzione a JWT.

Aggiungi l'URL di accesso

Devi specificare l'URL della pagina di accesso della tua app.

Per inserire l'URL della pagina di accesso della tua app in Producer Portal:

  1. Nell'elenco dei prodotti, fai clic sul nome del tuo prodotto.

  2. Nella pagina Panoramica del tuo prodotto, vai al Centro assistenza integrazione e fai clic su Integrazione frontend.

  3. Inserisci l'URL della pagina di accesso dell'app nel campo URL di accesso.

(Facoltativo) Attivare il servizio Single Sign-On (SSO) per i clienti

Per attivare l'accesso SSO in Producer Portal:

  1. Nell'elenco dei prodotti, fai clic sul nome del tuo prodotto.

    1. Nella pagina Panoramica del tuo prodotto, vai al Centro assistenza integrazione e fai clic su Integrazione frontend.

    2. In Abilitare l'accesso SSO?, seleziona .

Verifica l'account dei tuoi clienti Informazioni di accesso SSO

Quando i clienti accedono alla tua app utilizzando SSO, Google Cloud invia una HTTP POST alla pagina di accesso della tua app, con un JWT (JSON Web Token) dello stesso formato del JWT inviato quando gli utenti si registrano per la prima volta all'app.

Per informazioni dettagliate sul payload JWT e su come verificarlo, consulta Verifica il JWT di seguito.

Verifica il JWT

Alcuni processi, come la registrazione di un nuovo cliente o l'accesso di un cliente tramite SSO, comporta l'invio di una richiesta HTTP POST con un JWT (JSON Web Token) di cui potresti aver bisogno da verificare.

Nella tabella seguente sono elencati:

  • Eventi che prevedono l'invio di una richiesta HTTP con un JWT.
  • Il tipo di richiesta HTTP interessata.
  • Indica se devi verificare il JWT.
Evento Tipo di richiesta HTTP Verifica JWT obbligatoria

Registrare un nuovo cliente

POST

Accesso cliente, senza SSO

GET

No

Accesso cliente, con SSO

POST

Il payload JWT

Il payload JWT è nel formato seguente:

Intestazione

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

Dove:

  • alg è sempre RS256.
  • kid indica l'ID chiave utilizzato per proteggere il JWT. Utilizza l'ID chiave per cercare la chiave dall'oggetto JSON nell'attributo iss del payload.

Payload

{
  "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
  }
}

Dove:

  • sub è l'ID dell'Account Google dell'utente. Devi utilizzare questo ID per collegare il profilo dell'utente account Google al proprio account nel sistema.
  • iss identifica il mittente del JWT. L'URL nella rivendicazione iss rimanda a una chiave pubblica di Google.
  • exp indica quando scade il token ed è impostato 5 minuti dopo il token viene inviato.
  • aud è il dominio che ospita il tuo prodotto, ad esempio example.com.
  • roles è un array di stringhe che rappresenta i ruoli dell'utente. È possibile in uno dei seguenti modi:

    • account_admin, che indica che l'utente è un Amministratore account di fatturazione (amministratore ordini) dell'account di fatturazione che ha acquistato il prodotto

    • project_editor, che indica che l'utente è un Editor (Diritto amministratore), ma non un amministratore di fatturazione, del progetto in questione account di fatturazione.

  • user_identity è l'ID GAIA offuscato dell'utente, che può essere utilizzato per avviare OpenID Connect.

Payload per più ordini dello stesso prodotto

Se hai abilitato più ordini dello stesso prodotto, il payload include un oggetto orders aggiuntivo. È incluso l'ID ordine univoco corrispondente all'ID diritto per ogni ordine. Assicurati che la pagina di accesso della tua app possa rispondere a questo nuovo campo orders.

{
  "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,
    "orders": [ORDER_ID1, ORDER_ID2]
  }
}

Dove:

  • ORDER_ID è un elenco di ID ordine univoci per ogni ID diritto che indica le diverse offerte per lo stesso prodotto. Questo campo è disponibile soltanto se sono abilitati più ordini dello stesso prodotto.

Per ulteriori informazioni su come attivare più ordini dello stesso prodotto, vedi Attivare più ordini per lo stesso prodotto.

Verifica il payload

Quando ricevi il JWT, devi verificare quanto segue:

  1. Verifica che la firma JWT utilizzi la chiave pubblica di Google.

  2. Verifica che il JWT non sia scaduto controllando la rivendicazione exp.

  3. Verifica che la rivendicazione aud sia il dominio corretto per il tuo prodotto.

  4. Verifica che la rivendicazione iss sia https://www.googleapis.com/robot/v1/metadata/x509/cloud-commerce-partner@system.gserviceaccount.com.

  5. Verifica che il campo sub non sia vuoto.

Avvia Accedi con Google con login_hint

Se vuoi che gli utenti eseguano un flusso di consenso OAuth 2.0 con il tuo sito, puoi utilizzare le informazioni sull'identità del payload per inizializzare il flusso all'Account Google usato per Google Cloud prima del reindirizzamento. Da fare Questo, devi fornire il user_identity fornito nel JWT come login_hint. Per ulteriori informazioni, visita il Documentazione relativa a Google OAuth 2.0.

Dopo che l'utente ha completato il flusso OAuth 2.0 con il tuo sito, devi verificare che sia l'utente che prevedi di completare nel flusso OAuth. Per farlo devi utilizzando il token di accesso OAuth 2.0 per chiamare l'API UserInfo di Google al fine di recuperare informazioni di base dell'utente. Viene restituito un ID che dovrebbe corrispondere alla campo user_identity del JWT.

Crea account di servizio per i tuoi clienti

Se il tuo prodotto richiede un account di servizio, puoi collaborare con un Partner Engineer a:

  • Esegui il provisioning degli account di servizio per i tuoi clienti e
  • Configura una pagina di gestione dell'account di servizio per consentire ai clienti di concedere i ruoli IAM (Identity and Access Management) richiesti per gli account di servizio.

Devi fornire ai tuoi clienti il link a questa pagina dell'account di servizio, in genere tramite la console di gestione del prodotto.

Esegui il provisioning degli account di servizio

Per eseguire il provisioning degli account di servizio, contatta il tuo Partner Engineer e includi il le seguenti informazioni:

  • Nome servizio: si tratta di un ID prodotto univoco che differenzia il tuo di altri prodotti. Ti consigliamo di utilizzare il nome del servizio che creato quando ha eseguito l'onboarding del prodotto.

  • ID progetto: l'ID del progetto in cui crei gli account di servizio che accedono ai tuoi clienti Google Cloud. Devi creare tutti gli account di servizio usati dal prodotto all'interno di un singolo progetto.

  • Ruoli e ragionamento IAM: i ruoli IAM richiesti per gli account di servizio e il motivo per cui sono necessari i ruoli. Questa informazione viene condivisa con il tuo cliente e può influire sulla sua concessione l'accesso all'account di servizio.

Se vuoi che il cliente torni sul tuo sito dopo aver concesso la licenza l'accesso all'account di servizio, invia il nome di dominio della console a il tuo Partner Engineer. Puoi inviare più nomi di dominio, inclusi sottodomini, ad esempio staging.example.com.

Integra la pagina di gestione dell'account di servizio nella console del prodotto

Il Partner Engineer crea una pagina di gestione degli account di servizio per ai clienti di concedere l'accesso agli account di servizio. Quindi crei un link alla pagina dalla tua console.

Dopo che il Partner Engineer ti avvisa che la gestione dell'account di servizio sia pronta, aggiungi parametri all'URL e poi inserisci un link alla pagina dalla Google Cloud.

Devi aggiungere due parametri all'URL:

  • service-name: si tratta del nome del servizio che hai fornito al tuo Partner Engineer.

  • service-account-email: questo è l'indirizzo email dell'account di servizio che creato per il tuo cliente. Ogni cliente ha un account di servizio univoco.

Nell'esempio seguente viene mostrato un URL con i parametri richiesti:

https://console.cloud.google.com/marketplace-saas/service-account/service-name/service-account-email

Puoi aggiungere parametri aggiuntivi a seconda e alle esigenze aziendali. Per esempio:

https://console.google.com/marketplace-saas/service-account/service-name/service-account-email;single=true;redirect=https%3A%2F%2Fexample.com

I parametri dell'URL indicano che il prodotto richiede l'accesso a un singolo progetto Google Cloud e che il cliente possa tornare alla tua console.

Elenco dei parametri URL

Di seguito è riportato un elenco dei parametri URL che puoi inviare al servizio pagina di gestione dell'account:

ParametroDescrizione
service-nameCampo obbligatorio. Si tratta del nome del servizio che hai fornito al tuo Partner Engineer.
service-account-emailCampo obbligatorio. Si tratta dell'indirizzo email dell'account di servizio che hai creato per il tuo cliente.
singleSe impostato su true, indica che il prodotto richiede l'accesso a un singolo progetto.
hints=project-id-1Imposta il progetto a cui vuoi accedere l'account di servizio. Utilizza le virgole per separare i progetti.
filter=role1Limita i ruoli concessi all'account di servizio a un sottoinsieme dei ruoli forniti al tuo Partner Engineer. Escludi roles/ quando utilizzi il filtro.
redirectFornisce al cliente un link per tornare alla tua console di gestione. Per utilizzare questo parametro, il nome di dominio deve essere registrato presso il tuo Partner Engineer.