Frontend Ihrer Anwendung einbinden

Auf dieser Seite wird beschrieben, wie Sie das Frontend Ihrer Anwendung mit Cloud Marketplace, um Ihren Kunden einen reibungslosen Wechsel zu ermöglichen vom Cloud Marketplace zu Ihrem Produkt.

Sie müssen eine Registrierungs-URL angeben, um die Erstellung der Konten, die dann in Ihrer Webkonsole verwaltet werden. Außerdem müssen Sie eine URL, unter der sich Nutzer anmelden können. Optional können Sie auch die Einmalanmeldung (SSO) einbinden.

Producer Portal verwenden, um das Frontend Ihrer Anwendung zu integrieren

Für den Zugriff auf alle Informationen benötigen Sie das Frontend Ihrer Anwendung Cloud Marketplace von einem Standort aus nutzen können, Bereich Frontend-Integration des Producer Portal.

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. Gehen Sie auf der Seite Übersicht Ihres Produkts zur technischen Integration. und klicken Sie auf Front-End-Integration.

Registrierungs-URL hinzufügen

Wenn Nutzer Ihr Produkt im Cloud Marketplace kaufen, müssen Sie ein mit Ihrem Produkt verknüpfen. Dazu musst du eine Anmeldeseite erstellen zum Einrichten und Genehmigen von Konten in Ihrem System. Sie können die Seite einrichten als Registrierungsseite, auf der sich Nutzer für ein Konto in Ihrem System anmelden, oder als auf der automatisch Konten genehmigt werden.

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. Gehen Sie auf der Übersichtsseite Ihres Produkts zum technischen integration und klicken Sie auf Frontend-Integration.

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

Anmeldeinformationen des Nutzers überprüfen

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

Nach der Bestätigung des JWT muss deine Registrierungsseite ein Anfrage zur Kontogenehmigung an die Partner Procurement API, beschrieben in den Back-End-Integrationsschritte.

Detaillierte Informationen zur JWT-Nutzlast und dazu, wie sie überprüft werden kann, findest du unter Überprüfe das JWT unten.

Wenn Sie noch nie mit JWTs gearbeitet haben, finden Sie weitere Informationen in der JWT-Einführung.

Log-in-URL hinzufügen

Sie müssen die URL für die Anmeldeseite Ihrer Anwendung 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. Gehen Sie auf der Übersichtsseite Ihres Produkts zum technischen integration und klicken Sie auf Frontend-Integration.

  3. Geben Sie in das Feld Login URL (Anmelde-URL) die URL der Anmeldeseite Ihrer App ein.

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

So aktivieren Sie die Einmalanmeldung (SSO) im Producer Portal:

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

    1. Gehen Sie auf der Übersichtsseite Ihres Produkts zum technischen integration und klicken Sie auf Frontend-Integration.

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

Bestätigen Sie die SSO-Anmeldeinformationen

Wenn sich Kunden mit SSO in Ihrer Anwendung anmelden, sendet Google Cloud eine HTTP POST-Anfrage an die Anmeldeseite Ihrer App mit einem JSON-Webtoken (JWT) des JWT, das gesendet wird, wenn sich Nutzer zum ersten Mal für Ihre App registrieren.

Detaillierte Informationen zur JWT-Nutzlast und dazu, wie sie überprüft werden kann, findest du unter Überprüfe das JWT unten.

JWT überprüfen

Einige Prozesse, z. B. die Registrierung eines Neukunden oder die Anmeldung eines Kunden mit SSO (engl. „HTTP POST“-Anfrage mit einem Möglicherweise benötigte JSON-Webtoken (JWT) zu überprüfen.

In der folgenden Tabelle ist aufgeführt:

  • Ereignisse, bei denen eine HTTP-Anfrage mit einem JWT gesendet wird.
  • Der Typ der betreffenden 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, die zum Sichern des JWT verwendet wurde. Verwenden Sie die Schlüssel-ID, um den Schlüssel vom 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 Anfrage iss 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 kann sein, Entweder:

    • account_admin, was angibt, dass der Nutzer ein Rechnungskontoadministrator (Bestelladministrator) des Rechnungskontos, über das das Produkt erworben wurde, oder

    • project_editor, was angibt, dass der Nutzer ein Bearbeiter (Berechtigung) ist Administrator), aber nicht als Abrechnungsadministrator des Projekts unter diesem Rechnungskonto.

  • user_identity ist die verschleierte GAIA-ID des Nutzers, mit der Sie Folgendes tun können: Initiieren Sie OpenID Connect.

Nutzlast für mehrere Bestellungen desselben Produkts

Wenn Sie mehrere Bestellungen desselben Produkts aktiviert haben, enthält die Nutzlast ein zusätzliches orders-Objekt. Dazu gehört auch die eindeutige Bestell-ID, die der Berechtigungs-ID jeder Bestellung entspricht. Achte darauf, dass die Anmeldeseite deiner App auf dieses neue orders-Feld reagieren kann.

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

Wobei:

  • ORDER_ID ist eine Liste eindeutiger Bestell-IDs für jede Berechtigungs-ID, die die verschiedenen Angebote für dasselbe Produkt angibt. Dieses Feld ist nur verfügbar, wenn mehrere Bestellungen desselben Produkts aktiviert sind.

Weitere Informationen zum Aktivieren mehrerer Bestellungen für dasselbe Produkt finden Sie unter Mehrere Bestellungen für dasselbe Produkt aktivieren.

Nutzlast überprüfen

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

  1. Prüfen Sie, ob die JWT-Signatur den öffentlichen Schlüssel von Google.

  2. Achte darauf, dass das JWT nicht abgelaufen ist, indem du die exp-Anforderung prüfst.

  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 Log-in 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 Google OAuth 2.0-Dokumentation

Nachdem der Nutzer den OAuth 2.0-Vorgang mit Ihrer Website abgeschlossen hat, sollten Sie dass sie den OAuth-Ablauf ausführen sollen. 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 wahrscheinlich mit dem Feld user_identity aus dem JWT.

Dienstkonten für Ihre Kunden erstellen

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

  • Dienstkonten für Ihre Kunden bereitstellen und
  • Richten Sie eine Seite zur Dienstkontoverwaltung ein, auf der Ihre Kunden dem erforderliche IAM-Rollen (Identity and Access Management, Identitäts- und Zugriffsverwaltung) für die Dienstkonten.

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

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 Ihre Marke Produkt von anderen Produkten. Wir empfehlen, den Dienstnamen zu verwenden, erstellt, als Sie eingeführt.

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

  • IAM-Rollen und -Begründung: Die IAM-Rollen für die Dienstkonten und den Grund dafür, warum die Rollen notwendig sind. Diese Information wird an Ihren Kunden weitergegeben und kann sich darauf auswirken, ob Ihr Kunde Zugriff auf das Dienstkonto.

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 zur Dienstkontoverwaltung in die Produktkonsole einbinden

Der Partnerentwickler erstellt eine Seite für die Dienstkontoverwaltung, damit Ihr Zugriff auf die Dienstkonten gewähren. Danach verlinken Sie die Seite, von Ihrer Konsole aus.

Nachdem Ihr Partnerentwickler Ihnen mitgeteilt hat, dass die Dienstkontoverwaltung fügen Sie der URL Parameter hinzu und erstellen dann einen Link zur Seite. .

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 den Anforderungen Ihrer Kunden Anforderungen. 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 für Ihr Produkt Zugriff auf ein einzelnes Google Cloud-Projekt zu erstellen und der Kunde zu Ihrer Konsole zurückkehren kann.

Liste der URL-Parameter

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

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.