Front-End der Anwendung einbinden

Auf dieser Seite wird beschrieben, wie Sie das Front-End Ihrer Anwendung in Cloud Marketplace einbinden, um Ihren Kunden einen reibungslosen Wechsel von Cloud Marketplace zu Ihrem Produkt zu ermöglichen.

Auf übergeordneter Ebene müssen Sie eine Registrierungs-URL angeben, um Nutzerkonten zu erstellen. Diese werden dann in der Webkonsole verwaltet. Außerdem müssen Sie eine URL angeben, über die sich Nutzer anmelden können. Optional können Sie die Einmalanmeldung (SSO) integrieren.

Producer Portal verwenden, um das Front-End Ihrer App zu integrieren

Wenn Sie von einem Standort aus auf alle Informationen zugreifen möchten, die Sie zum Einbinden des Front-Ends Ihrer App in Cloud Marketplace benötigen, können Sie den Bereich Front-End-Integration des Producer Portal verwenden.

Der Link zu Producer Portal lautet:

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

So greifen Sie auf den Abschnitt Front-End-Integration zu:

  1. Klicken Sie in der Produktliste auf den Namen des Produkts.

  2. Wechseln Sie auf der Seite Übersicht des Produkts zum Abschnitt Technische Integration und klicken Sie auf Front-End-Integration.

Registrierungs-URL hinzufügen

Wenn Nutzer Ihr Produkt bei Cloud Marketplace kaufen, müssen Sie für sie ein Konto für Ihr Produkt erstellen. Dazu müssen Sie eine Anmeldeseite erstellen, um Nutzerkonten in Ihrem System einzurichten und zu genehmigen. Sie können die Seite als Registrierungsseite einrichten, auf der sich Nutzer für ein Konto in Ihrem System registrieren, oder als Seite, die Konten automatisch genehmigt.

Nachdem Sie die Anmeldeseite erstellt haben, fügen Sie sie im Producer Portal hinzu:

  1. Klicken Sie in der Produktliste auf den Namen des Produkts.

  2. Wechseln Sie auf der Seite Übersicht des Produkts zum Abschnitt Technische Einbindung und klicken Sie auf Front-End-Integration.

  3. Geben Sie die URL Ihrer Anmeldeseite in das Feld Registrierungs-URL ein.

Anmeldeinformationen des Nutzers überprüfen

Wenn ein Nutzer noch kein Konto in Ihrem System eingerichtet hat, muss er in Cloud Marketplace auf die SchaltflächeRegistrieren mit YOUR_COMPANY_NAME klicken. Wenn sie auf die Schaltfläche klicken, sendet Google Cloud eine HTTP POST-Anfrage mit einem JSON-Webtoken (JWT) im x-gcp-marketplace-token-Parameter an Ihre Anmeldeseite. Das JWT enthält die Beschaffungskonto-ID des Nutzers, die ihn als Google Cloud-Nutzer identifiziert, und eine verschleierte ID, die seine Google-Konto-ID darstellt. Sie müssen sowohl die Beschaffungskonto-ID als auch die verschleierte ID verwenden, um das Google-Konto des Nutzers mit seinem Konto in Ihrem System zu verknüpfen.

Nach der Überprüfung des JWT muss von Ihrer Anmeldeseite eine Kontogenehmigungsanfrage an die Partner Procurement API gesendet werden, wie in den Schritten zur Back-End-Integration beschrieben.

Ausführliche Informationen zur JWT-Nutzlast und zur Überprüfung finden Sie unter JWT prüfen weiter unten.

Wenn Sie noch nicht mit JWTs arbeiten, lesen Sie die JWT-Einführung.

Log-in-URL hinzufügen

Sie müssen die URL der Anmeldeseite Ihrer App angeben.

So geben Sie die URL für die Anmeldeseite Ihrer App im Producer Portal ein:

  1. Klicken Sie in der Produktliste auf den Namen des Produkts.

  2. Wechseln Sie auf der Seite Übersicht des Produkts zum Abschnitt Technische Einbindung und klicken Sie auf Front-End-Integration.

  3. Geben Sie die URL für die Anmeldeseite Ihrer App in das Feld Log-in-URL ein.

Optional: Einmalanmeldung (SSO) für Ihre Kunden aktivieren

So aktivieren Sie die SSO im Producer Portal:

  1. Klicken Sie in der Produktliste auf den Namen des Produkts.

    1. Wechseln Sie auf der Seite Übersicht des Produkts zum Abschnitt Technische Integration und klicken Sie auf Front-End-Integration.

    2. Wählen Sie unter SSO-Anmeldung aktivieren? die Option Ja aus.

SSO-Anmeldeinformationen Ihrer Kunden bestätigen

Wenn sich Kunden über SSO bei Ihrer Anwendung anmelden, sendet Google Cloud eine HTTP POST-Anfrage mit einem JSON-Webtoken (JWT) im selben Format wie das JWT, das bei der ersten Registrierung Ihrer Anwendung gesendet wird.

Ausführliche Informationen zur JWT-Nutzlast und zur Überprüfung finden Sie unter JWT prüfen weiter unten.

JWT überprüfen

Bei einigen Prozessen wie der Registrierung eines Neukunden oder der Anmeldung eines Kunden mit SSO wird eine HTTP POST-Anfrage mit einem JSON-Webtoken (JWT) gesendet, das Sie möglicherweise verifizieren müssen.

In der folgenden Tabelle sind folgende Informationen aufgeführt:

  • Ereignisse, bei denen eine HTTP-Anfrage mit einem JWT gesendet wird.
  • Die Art der betroffenen HTTP-Anfrage.
  • Gibt an, ob das JWT verifiziert werden muss.
Ereignis HTTP-Anfragetyp JWT-Überprüfung erforderlich

Neuen Kunden registrieren

POST

Ja

Kundenanmeldung ohne SSO

GET

Nein

Kundenanmeldung mit SSO

POST

Ja

Die JWT-Nutzlast

Die JWT-Nutzlast hat folgendes Format:

Header

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

Wobei:

  • alg ist immer RS256.
  • kid gibt die Schlüssel-ID an, mit der das JWT gesichert wurde. Verwenden Sie die Schlüssel-ID, um den Schlüssel aus dem JSON-Objekt im Attribut iss in der Nutzlast nachzuschlagen.

Nutzlast

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

Wobei:

  • sub ist die Google-Konto-ID des Nutzers. Sie müssen diese ID verwenden, um das Google-Konto des Nutzers mit seinem Konto in Ihrem System zu verknüpfen.
  • iss gibt den Absender des JWT an. Die URL in der iss-Anforderung ist mit einem öffentlichen Schlüssel von Google verknüpft.
  • exp gibt an, wann das Token abläuft, und wird 5 Minuten nach dem Senden des Token festgelegt.
  • aud ist die Domain, in der Ihr Produkt gehostet wird, z. B. example.com.
  • roles ist ein Array von Strings, die die Rollen des Nutzers darstellen. Es gibt folgende Möglichkeiten:

    • account_admin: Der Nutzer ist ein Rechnungskontoadministrator (Bestelladministrator) des Rechnungskontos, über das das Produkt gekauft wurde, oder

    • project_editor: Gibt an, dass der Nutzer Bearbeiter (Berechtigungsmanager), aber kein Abrechnungsadministrator des Projekts unter diesem Rechnungskonto ist.

  • user_identity ist die verschleierte GAIA-ID des Nutzers, die zum Starten von OpenID Connect verwendet werden kann.

Nutzlast prüfen

Wenn Sie das JWT erhalten, müssen Sie überprüfen, ob

  1. Die JWT-Signatur muss den öffentlichen Schlüssel von Google verwenden.

  2. Prüfe die exp-Anforderung, ob das JWT abgelaufen ist.

  3. Bestätigen Sie, dass die aud-Anforderung die richtige Domain für Ihr Produkt ist.

  4. Bestätigen Sie, dass die Anforderung iss https://www.googleapis.com/robot/v1/metadata/x509/cloud-commerce-partner@system.gserviceaccount.com ist.

  5. Bestätigen Sie, dass sub nicht leer ist.

Google-Anmeldung mit login_hint initiieren

Wenn Sie möchten, dass Ihre Nutzer einen OAuth 2.0-Zustimmungsablauf für Ihre Website durchlaufen, können Sie die Identitätsinformationen aus der Nutzlast verwenden, um diesen Ablauf für das Google-Konto zu initialisieren, das sie vor der Weiterleitung für Google Cloud verwendet haben. Dazu geben Sie die im JWT bereitgestellte user_identity als login_hint an. Weitere Informationen finden Sie in der Dokumentation zu Google OAuth 2.0.

Nachdem der Nutzer den OAuth 2.0-Vorgang auf deiner Website ausgeführt hat, solltest du überprüfen, ob er der Nutzer ist, von dem du den OAuth 2.0-Vorgang ausführen möchtest. Dazu verwenden Sie das OAuth 2.0-Zugriffstoken, um über die Google UserInfo API die grundlegenden Nutzerinformationen abzurufen. Dadurch wird eine ID zurückgegeben, die erwartet wird, die mit dem Feld user_identity aus dem JWT übereinstimmt.

Dienstkonten für Ihre Kunden erstellen

Wenn für Ihr Produkt ein Dienstkonto erforderlich ist, können Sie mit einem Partnerentwickler zusammenarbeiten, um:

  • Stellen Sie Dienstkonten für Ihre Kunden bereit und
  • Richten Sie eine Seite zur Dienstkontoverwaltung für Ihre Kunden ein, um den Dienstkonten die erforderlichen IAM-Rollen (Identity and Access Management) zuzuweisen.

Sie müssen Ihren Kunden den Link zu dieser Dienstkontoseite in der Regel über die Verwaltungskonsole Ihres Produkts bereitstellen.

Dienstkonten bereitstellen

Wenden Sie sich zum Bereitstellen der Dienstkonten an Ihren Partnerentwickler und geben Sie die folgenden Informationen an:

  • Dienstname: Dies ist eine eindeutige Produkt-ID, die Ihr Produkt von anderen Produkten unterscheidet. Es empfiehlt sich, den Dienstnamen zu verwenden, den Sie bei der Onboarding Ihres Produkts erstellt haben.

  • Projekt-ID: Die ID des Projekts, in dem Sie die Dienstkonten erstellen, die auf die Ressourcen Ihrer Kunden zugreifen. Sie müssen alle Dienstkonten, die Ihr Produkt verwendet, in einem einzigen Projekt erstellen.

  • IAM-Rollen und -Begründung: Die für die Dienstkonten erforderlichen IAM-Rollen und der Grund, warum die Rollen erforderlich sind. Diese wird mit Ihrem Kunden geteilt und kann sich darauf auswirken, ob Ihr Kunde Zugriff auf das Dienstkonto gewährt.

Wenn Ihr Kunde zu Ihrer Website zurückkehren soll, nachdem er Zugriff auf das Dienstkonto gewährt hat, senden Sie den Domainnamen Ihrer Konsole an Ihren Partnerentwickler. Sie können mehrere Domainnamen senden, einschließlich Subdomains, z. B. staging.example.com.

Seite für die Dienstkontoverwaltung in die Konsole Ihres Produkts einbinden

Der Partnerentwickler erstellt eine Seite zur Dienstkontoverwaltung, auf der Ihre Kunden Zugriff auf die Dienstkonten gewähren können. Anschließend verlinken Sie die Seite von Ihrer Konsole aus.

Nachdem Ihr Partnerentwickler Sie darüber informiert hat, dass die Seite zur Dienstkontoverwaltung bereit ist, fügen Sie der URL Parameter hinzu und verknüpfen Sie dann die Seite über Ihre Konsole.

Der URL müssen zwei Parameter hinzugefügt werden:

  • service-name: Dies ist der Dienstname, den Sie Ihrem Partnerentwickler angegeben haben.

  • service-account-email: Dies ist die E-Mail-Adresse des Dienstkontos, das Sie für Ihren Kunden erstellt haben. Jeder Kunde hat ein eindeutiges Dienstkonto.

Das folgende Beispiel zeigt eine URL mit den erforderlichen Parametern:

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

Sie können je nach Kundenanforderungen weitere Parameter hinzufügen. Beispiel:

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

Die Parameter der URL geben an, dass Ihr Produkt Zugriff auf ein einzelnes Google Cloud-Projekt benötigt und dass der Kunde zu Ihrer Konsole zurückkehren kann.

Liste der URL-Parameter

Im Folgenden finden Sie eine Liste der URL-Parameter, die Sie an die Seite für die Dienstkontoverwaltung senden können:

ParameterBeschreibung
service-nameDas ist ein Pflichtfeld. Dies ist der Dienstname, den Sie Ihrem Partnerentwickler angegeben haben.
service-account-emailDas ist ein Pflichtfeld. Dies ist die E-Mail-Adresse des Dienstkontos, das Sie für Ihren Kunden erstellt haben.
singleWenn "true" (wahr), bedeutet dies, dass Ihr Produkt Zugriff auf ein einzelnes Projekt benötigt.
hints=project-id-1Legt das Projekt fest, auf das das Dienstkonto zugreifen soll. Verwenden Sie Kommas, um Projekte zu trennen.
filter=role1Beschränkt die dem Dienstkonto zugewiesenen Rollen auf einen Teil der Rollen, die Sie Ihrem Partnerentwickler zugewiesen haben. Schließen Sie roles/ aus, wenn Sie den Filter verwenden.
redirectBietet einen Link, über den der Kunde zu Ihrer Verwaltungskonsole zurückkehren kann. Der Domainname muss bei Ihrem Partnerentwickler registriert sein, um diesen Parameter verwenden zu können.