Front-End Ihrer Anwendung einbinden

Auf dieser Seite werden die Schritte zum Einbinden des Frontends Ihrer Anwendung Google Cloud Marketplace beschrieben. Die Front-End-Einbindung sorgt dafür, dass Ihre Kunden reibungslos vom Google Cloud Marketplace zu Ihrer Anwendung wechseln können.

Kontoaktivierungsseite für neue Nutzer erstellen

Wenn Nutzer Ihr Produkt in Google Cloud Marketplace auswählen, müssen sie ihre Konten in Ihrer Anwendung aktivieren. Sie müssen eine Aktivierungsseite erstellen, um die Konten von Nutzern in Ihrem System einzurichten und zu genehmigen. Sie können die Seite als Registrierungsseite einrichten, auf der Nutzer sich für ein Konto in Ihrem System anmelden müssen, oder als Seite, auf der Konten automatisch genehmigt werden. Achten Sie beim Einrichten der Aktivierungsseite darauf, dass die Nutzer auf die Seite zugreifen können, ohne einen Nutzernamen und ein Passwort einzugeben.

Wenn Nutzer im Google Cloud Marketplace auf den Link klicken, um sich für Ihre Anwendung anzumelden, sendet Google eine HTTP POST-Anforderung an Ihre Aktivierungsseite und ein JSON-Web-Token (JWT) in den x-gcp-marketplace-token-Parameter. Das JWT enthält die Beschaffungskonto-ID des Nutzers, die ihn als Google Cloud-Nutzer identifiziert. Sie müssen diese ID verwenden, um das Google-Konto des Nutzers mit seinem Konto in Ihrem System zu verknüpfen.

Nach der JWT-Validierung muss auf der Aktivierungsseite eine Kontogenehmigungsanfrage an die Partner Procurement API gesendet werden, wie unter Back-End-Integrationsschritte beschrieben.

Wenn Sie mit JWT noch nicht vertraut sind, lesen Sie die JWT-Einführung.

Kontoaktivierungsseite zum Portal hinzufügen

Über das Producer Portal können Sie die URL für die Seite zur Kontoaktivierung hinzufügen.

Producer Portal

Der Link zum Producer Portal lautet:

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

So fügen Sie Ihre Kontoaktivierungsseite zu 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-EINBINDUNG.

  3. Geben Sie die URL für die Seite zur Kontoaktivierung in das Feld Registrierungs-URL ein.

Partner-Portal

Der Link zum Partner-Portal lautet:

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

So fügen Sie Ihre Kontoaktivierungsseite dem Partner-Portal hinzu:

  1. Klicken Sie in der Liste der Lösungen auf die Lösungs-ID, die Sie erstellt haben.

  2. Klicken Sie auf die Seite Abos und Features, um die Seite zu bearbeiten.

  3. Geben Sie die URL für die Seite zur Kontoaktivierung in das Feld Registrierungs-URL ein.

JWT überprüfen

Die JWT-Nutzlast hat folgendes Format:

Header

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

Dabei gilt:

  • 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 aus dem JSON-Objekt im Attribut iss in der Nutzlast zu suchen.

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

Dabei gilt:

  • 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 identifiziert den Absender des JWT. Die URL im iss-Anspruch verweist auf einen öffentlichen Schlüssel von Google.
  • 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-pro.com.
  • roles ist ein Array von Strings, die die Rollen des Nutzers darstellen. Derzeit kann es entweder: ** account_admin geben, was darauf hinweist, dass der Nutzer ein Rechnungskontoadministrator des Rechnungskontos ist, das das Produkt gekauft hat, oder ** project_editor, das angibt, dass der Nutzer ein Projektbearbeiter, aber kein Abrechnungsadministrator des Projekts unter diesem Rechnungskonto ist.
  • user_identity ist die verschleierte GAIA-ID des Nutzers, die zum Starten von Open ID Connect verwendet werden kann.

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

  1. die JWT-Signatur den öffentlichen Schlüssel von Google verwendet.

  2. Bestätigen Sie, dass die JWT nicht abgelaufen ist, indem Sie den Anspruch exp prüfen.

  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 OAuth2.0.

Nachdem der Nutzer den OAuth 2.0-Ablauf für Ihre Website abgeschlossen hat, sollten Sie prüfen, der OAuth-Ablauf auch tatsächlich vom erwarteten Nutzer ausgeführt wurde. Dazu verwenden Sie das OAuth 2.0-Zugriffstoken, um über die Google UserInfo API die grundlegenden Nutzerinformationen abzurufen. Dieses gibt eine ID zurück, die dem Feld user_identity aus dem JWT entsprechen sollte.

Einmalanmeldung (SSO) für Ihre Kunden einbinden

Kunden müssen sich für Ihr Produkt auf Ihrer Aktivierungsseite für ein Konto registrieren können, ohne zuerst einen Nutzernamen und ein Passwort eingeben zu müssen.

Die SSO-Einbindung verwendet zur Authentifizierung von Nutzern JWTs. Wenn Sie mit JWT noch nicht vertraut sind, lesen Sie die JWT-Einführung.

Producer Portal

So richten Sie die SSO-Einbindung ein:

  1. Wechseln Sie auf der Seite Übersicht des Produkts zum Abschnitt Technische Einbindung und klicken Sie auf FRONT-END-EINBINDUNG.

  2. Geben Sie zum Verknüpfen mit dem Dashboard die URL für das Dashboard in das Feld Anmelde-URL ein.

  3. Klicken Sie zur Verwendung von Google SSO auf SSO-Anmeldung aktivieren (optional) und geben Sie dann im Feld SSO-URL die SSO-Log-in-URL ein.

  4. Fügen Sie in der Weboberfläche Ihrer Anwendung Code hinzu, um die JWT-Nutzlast zu prüfen, die an Ihre Anwendung gesendet werden, wenn sich Nutzer über Google Cloud Marketplace anmelden.

    Das JWT für die Authentifizierung hat das gleiche Format wie das JWT, das gesendet wird, wenn Nutzer sich zum ersten Mal für Ihre Anwendung registrieren. Erläuterungen dazu finden Sie unter JWT prüfen.

Partner-Portal

SSO-Integration einrichten:

  1. Rufen Sie die Seite Abos und Features des Produkts auf klicken Sie auf BEARBEITEN, um die Abos und Features des Produkts zu bearbeiten.

  2. Geben Sie zum Verknüpfen Ihres Dashboards die URL für das Dashboard in das Feld Dashboard-URL ein.

  3. So verwenden Sie Google SLO: unter SSO-Anmeldung (optional) klicken Sie, um SSO zu aktivieren, dann geben Sie Ihre SSO-Anmelde-URL in dieSSO-Anmelde-URL ein. Geben Sie die URL für Ihre SSO API-Schlüssel in das Feld URL der SSO API-Schlüssel ein.

  4. Fügen Sie in der Weboberfläche Ihrer Anwendung Code hinzu, um die JWT-Nutzlast zu prüfen, die an Ihre Anwendung gesendet werden, wenn sich Nutzer über Google Cloud Marketplace anmelden.

    Das JWT für die Authentifizierung hat das gleiche Format wie das JWT, das gesendet wird, wenn Nutzer sich zum ersten Mal für Ihre Anwendung registrieren. Erläuterungen dazu finden Sie unter JWT prüfen.

Dienstkonten für Ihre Kunden bereitstellen

Wenn Ihre Anwendung ein Dienstkonto erfordert, können Sie mit einem Partnerentwickler zusammenarbeiten, um Dienstkonten für Ihre Kunden bereitzustellen und eine Seite für Ihre Kunden einzurichten, auf der Sie die erforderlichen IAM-Rollen (Identity and Access Management) zuweisen können. Dienstkonten. Sie müssen den Link zur Seite angeben, normalerweise über die Verwaltungskonsole Ihrer Anwendung.

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 Anwendung von anderen Produkten unterscheidet. Wir empfehlen die Verwendung des Dienstnamens, der beim Einrichten der Anwendung erstellt wurde.

  • Projekt-ID: Die ID des Projekts, in dem Sie die Dienstkonten erstellen, die auf die Ressourcen Ihrer Kunden zugreifen. Alle von Ihrer Anwendung verwendeten Dienstkonten müssen in einem einzigen Projekt erstellt werden.

  • IAM-Rollen und -Gründe: Die für die Dienstkonten erforderlichen IAM-Rollen und der Grund für die erforderliche Rolle. Dies wird Ihrem Kunden mitgeteilt 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.

Der Partnerentwickler erstellt eine Seite, auf der Ihre Kunden Zugriff auf die Dienstkonten gewähren können. Anschließend verweisen Sie über die Konsole auf die Seite.

URL in Ihre Konsole einbinden

Wenn Ihr Partnerentwickler Ihnen mitgeteilt hat, dass die Seite bereit ist, fügen Sie der URL Parameter hinzu und verknüpfen Sie die Seite dann über Ihre Konsole mit der 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 Ihres Kunden zusätzliche 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 in 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 Zugriffsseite 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.