Der optimale Kontoverknüpfungstyp für deine Aktion ist derjenige, der für die Nutzer besonders einfach zu verwenden ist und den Anforderungen deiner Anwendung oder deines Unternehmens entspricht. Die Wahl des Verknüpfungstyps hängt hauptsächlich von den folgenden Faktoren ab:
- Festlegen, ob Sie die Kontoerstellung per Spracheingabe zulassen möchten
- Festlegen, ob Nutzer sich mit einem Nicht-Google-Konto in Ihrem Dienst anmelden können
- Ob Ihr Dienst vertrauliche Informationen (z.B. Clientschlüssel) speichern kann
So findest du den idealen Kontoverknüpfungstyp:
- Berücksichtigen Sie die Fragen im Abschnitt Bevorzugten Anmeldetyp bestimmen.
- Informationen zur Auswahl des Verknüpfungstyps finden Sie im Entscheidungsbaum.
- Rufen Sie den Bereich auf, der dem ursprünglich ausgewählten Typ entspricht, um die Funktionsweise weiter zu verfeinern.
Bevorzugten Anmeldetyp auswählen
Bevor Sie den Entscheidungsbaum konsultieren, sollten Sie sich die folgenden Fragen stellen:
- Erwarten Sie, dass alle Ihre Nutzer ein Google-Konto haben?
- Wenn deine Aktion nur auf Assistant ausgerichtet ist, kannst du davon ausgehen, dass alle deine Nutzer ein Google-Konto haben. Wenn deine Aktion auf andere Plattformen als Assistant ausgerichtet ist, kannst du nicht erwarten, dass alle deine Nutzer ein Google-Konto haben.
- Wenn Ihr Dienst bereits Nutzer hat, haben diese wahrscheinlich kein Google-Konto oder sie haben sich nicht mit einem Google-Konto bei Ihrem Dienst angemeldet.
- Kann eine OAuth-Implementierung zur Unterstützung des Google-Protokolls erweitert werden?
- Zur Unterstützung des Google-Protokolls müssen Sie die Funktionen
intent=get
undintent=create
Ihrem Tokenaustausch-Endpunkt hinzufügen können. Mit dieser Funktion kann Google prüfen, ob der Nutzer bereits in Ihrem Back-End vorhanden ist, und eine Anfrage zum Erstellen eines neuen Kontos in Ihrem Dienst senden.
- Zur Unterstützung des Google-Protokolls müssen Sie die Funktionen
Anhand des folgenden Entscheidungsbaums kannst du den Kontoverknüpfungstyp ermitteln, der für dich und deine Nutzer am besten geeignet ist:
Sobald du einen Verknüpfungstyp ausgewählt hast, fahre mit dem entsprechenden Abschnitt unten fort, um mehr darüber zu erfahren und weitere Entscheidungen zur Kontoverknüpfung in deiner Aktion zu treffen.
„Optimierte“ Verknüpfung mit OAuth-basiertem Google Log-in
Beim Typ „Optimierte Verknüpfung“ wird neben der OAuth-basierten Kontoverknüpfung auch Google Log-in (GSI) hinzugefügt. Das bietet die Vorteile von GSI (z. B. sprachbasierte Verknüpfung für Google-Nutzer) und ermöglicht gleichzeitig die Kontoverknüpfung für Nutzer, die sich mit einem Nicht-Google-Konto bei Ihrem Dienst registriert haben. Dieser Verknüpfungstyp ist besonders für Endnutzer von Vorteil, da er für Google-Nutzer einen reibungslosen Ablauf und für Nicht-Google-Nutzer einen Fallback bietet. Weitere Informationen zur Funktionsweise der optimierten Verknüpfung finden Sie im Konzeptleitfaden „Optimierte“, OAuth-basierte Google Log-in-Verknüpfung.
OAuth-basierten Google Log-in-Verknüpfungstyp „Optimierte“ optimieren
Wenn Sie in Ihrer Aktion den Verknüpfungstyp „Optimierte“ verwenden, geben Sie die Antworten auf die folgenden Fragen in der Actions Console an, um die Funktionsweise zu definieren:
Möchten Sie die Erstellung von Sprachkonten aktivieren oder die Kontoerstellung nur auf Ihrer Website zulassen?
Im Allgemeinen sollten Sie die Kontoerstellung per Spracheingabe aktivieren, damit Nutzer auf einem nicht geprüften Gerät ein Konto erstellen können, ohne es auf ein anderes Gerät übertragen zu müssen. Wenn Sie die Kontoerstellung per Sprachbefehl nicht zulassen, öffnet Assistant die URL zu der Website, die Sie für die Nutzerauthentifizierung angegeben haben, und leitet den Nutzer zu einem Smartphone weiter, um mit der Kontoverknüpfung fortzufahren.
Sie sollten die Kontoerstellung per Spracheingabe jedoch in folgenden Fällen nicht zulassen:
- Sie benötigen die volle Kontrolle über die Kontoerstellung. Beispielsweise kann es sein, dass du dem Nutzer bei der Kontoerstellung oder in einer anderen Form von Benachrichtigungen deine Nutzungsbedingungen vorlegen musst.
- Nutzer, die bereits ein Konto bei Ihnen haben, sollen sich mit diesem Konto anmelden. Sie möchten beispielsweise, dass Nutzer ihre bestehenden Konten weiterverwenden, wenn Sie ein Treuepunkteprogramm anbieten und nicht möchten, dass sie die für ihr Konto gesammelten Punkte verlieren.
Möchten Sie den Vorgang mit Autorisierungscode oder den impliziten Vorgang verwenden?
Der Vorgang mit Autorisierungscode und der implizite Ablauf unterscheiden sich dadurch, dass für den Vorgang mit Autorisierungscode ein zweiter Endpunkt erforderlich ist: der Tokenaustausch-Endpunkt. Dieser Endpunkt verwendet Aktualisierungstokens, um neue, kurzlebige Zugriffstokens zu generieren, ohne den Nutzer zur erneuten Anmeldung aufzufordern.
Wenn Sie umgekehrt den impliziten Ablauf verwenden, geben Sie ein langlebiges Zugriffstoken an Google zurück, das normalerweise nicht neu generiert werden muss. Weitere Informationen zum Autorisierungscode und zu impliziten Abläufen findest du im Leitfaden zur vereinfachten Verknüpfung von OAuth-basiertem Google Log-in.
Google empfiehlt die Verwendung des Vorgangs mit Autorisierungscode in deiner Aktion, da dieser sicherer ist. Verwenden Sie jedoch stattdessen den impliziten Ablauf, wenn Ihr Dienst keine vertraulichen Informationen (z.B. einen Clientschlüssel) speichern kann. Sie müssen beispielsweise den impliziten Ablauf für öffentliche Clients wie Single-Page-Anwendungen (SPAs) verwenden.
Sehen Sie sich anschließend den folgenden Entscheidungsbaum an:
Google Log-in
Mit dem Verknüpfungstyp „Google Log-in“ (GSI) kann deine Aktion während einer Unterhaltung Zugriff auf das Google-Profil des Nutzers anfordern und anhand der Profilinformationen prüfen, ob der Nutzer im Back-End deines Dienstes vorhanden ist. Wenn der Nutzer nicht vorhanden ist, kann er mit seinen Google-Profilinformationen ein neues Konto in Ihrem System erstellen.
Für GSI müssen Sie die Kontoerstellung per Spracheingabe aktivieren, damit der Nutzer den gesamten Vorgang per Sprachbefehl ausführen kann. Weitere Informationen zu GSI findest du im Konzeptleitfaden Google Log-in.
OAuth-Verknüpfung
Mit dem OAuth-Verknüpfungstyp meldet sich der Nutzer mit dem standardmäßigen OAuth 2.0-Vorgang an. Der OAuth-Verknüpfungstyp unterstützt zwei branchenübliche OAuth 2.0-Abläufe: den impliziten und den Autorisierungscode.
Google empfiehlt den OAuth-Verknüpfungstyp selbst nicht, da der Nutzer bei Verwendung eines nicht geprüften Geräts von Sprache auf Bildschirm übertragen werden muss, um den Anmeldevorgang abzuschließen. Sie können diesen Ablauf verwenden, wenn Sie bereits eine Implementierung eines OAuth 2.0-Servers haben und den Endpunkt des Tokenaustauschs nicht erweitern können, um Google-Protokolle für die automatische Verknüpfung und Kontoerstellung aus einem ID-Token zu unterstützen. Weitere Informationen finden Sie im Konzeptleitfaden für die OAuth-Verknüpfung.
Ablauf optimieren
Wenn du den OAuth-Verknüpfungstyp in deiner Aktion verwendest, musst du die folgende Frage in der Actions Console beantworten, um die Funktionsweise zu definieren:
Möchten Sie den Vorgang mit Autorisierungscode oder den impliziten Vorgang verwenden?
Der OAuth-Verknüpfungstyp unterstützt zwei branchenübliche OAuth 2.0-Abläufe: den impliziten und den Autorisierungscode. Der Vorgang mit Autorisierungscode und der implizite Ablauf unterscheiden sich dadurch, dass der Vorgang mit Autorisierungscode einen zweiten Endpunkt erfordert, den Endpunkt des Tokenaustauschs. Dieser Endpunkt verwendet Aktualisierungstokens, um neue, kurzlebige Zugriffstokens zu generieren, ohne den Nutzer zur erneuten Anmeldung aufzufordern.
Wenn Sie umgekehrt den impliziten Ablauf verwenden, geben Sie ein langlebiges Zugriffstoken an Google zurück, das normalerweise nicht neu generiert werden muss. Weitere Informationen zum Autorisierungscode und zu impliziten Abläufen finden Sie im Konzeptleitfaden für die OAuth-Verknüpfung.
Google empfiehlt die Verwendung des Vorgangs mit Autorisierungscode in deiner Aktion, da dieser sicherer ist. Verwenden Sie jedoch stattdessen den impliziten Ablauf, wenn Ihr Dienst keine vertraulichen Informationen (z.B. einen Clientschlüssel) speichern kann. Sie müssen beispielsweise den impliziten Ablauf für öffentliche Clients wie Single-Page-Anwendungen (SPAs) verwenden.