Google-Kontoverknüpfung mit OAuth-basiertem App-Flip

基于 OAuth 的应用快速关联 (App Flip) 关联功能可让用户快速将其在您的身份验证系统中的账号关联到其 Google 账号。 如果用户在发起账户关联过程时手机上已安装您的应用,系统会顺畅地将他们转到您的应用以获取用户授权。

这种方法可提供更快的账户关联过程,因为用户无需重新输入用户名和密码进行身份验证;相反,App Flip 会利用用户在您的应用中的账号凭据。用户将其 Google 账号与您的应用关联后,便可利用您开发的任何集成。

您可以为 iOS 和 Android 应用设置 App Flip。

此图显示了用户将其 Google 账号与您的身份验证系统相关联的步骤。第一张屏幕截图显示了用户如何选择您的应用(如果其 Google 账号已与您的应用相关联)。第二张屏幕截图显示了用户将其 Google 账号与您的应用相关联的确认信息。第三张屏幕截图显示了 Google 应用中已成功关联的用户账号。
图 1.用户手机上使用 App Flip 进行账号关联。

要求

如需实现 App Flip,您必须满足以下要求:

  • 您必须拥有 Android 或 iOS 应用。
  • 您必须拥有、管理和维护支持 OAuth 2.0 授权代码流程的 OAuth 2.0 服务器。

基于 OAuth 的 App Flip 流程

以下序列图详细说明了用户、Google 应用、您的应用和您的授权服务器之间针对 App Flip 的交互。

用户 Google 应用 您的应用 Google 服务器 您的授权 服务器 1. 发起关联 2. 深层链接到您的应用 3. 显示意见征求屏幕 4. 用户授予意见征求 5. 获取授权代码 6. authorization_code 7. 返回到 Google 应用 8. 将代码传递给 Google 服务器 9. 令牌交换 (POST) 10. access_token, refresh_token 11. 存储用户令牌 12. 访问用户资源
图 2.App Flip 流程中的事件序列。 如果提供了授权代码,则令牌交换将以 服务器到服务器的方式进行,与基于浏览器的 OAuth 关联流程中的方式相同。

角色和职责

下表定义了 App Flip 流程中执行者的角色和职责。

执行者 / 组件 GAL 角色 职责
Google 应用 / 服务器 OAuth 客户端 发起账户关联过程,触发到您的移动应用深层链接,将授权代码交换为令牌,并安全地存储这些令牌以访问您服务的 API。
您的应用 授权代理 对用户进行身份验证(通常使用现有应用凭据), 获取意见征求,并从您的服务器检索授权代码。
您的授权服务器 授权服务器 验证授权代码和刷新令牌,并向 Google 服务器颁发访问 令牌。

Gestaltungsrichtlinien

In diesem Abschnitt werden die Designanforderungen und ‑empfehlungen für den Zustimmungsbildschirm für die App-Flip-Kontoverknüpfung beschrieben. Nachdem Google Ihre App aufgerufen hat, zeigt Ihre App dem Nutzer den Zustimmungsbildschirm an.

Voraussetzungen

  1. Sie müssen dem Nutzer mitteilen, dass sein Konto mit Google verknüpft wird, nicht mit einem bestimmten Google-Produkt wie Google Home oder Google Assistant.

Empfehlungen

Wir empfehlen Folgendes:

  1. Datenschutzerklärung von Google anzeigen Fügen Sie auf dem Zustimmungsbildschirm einen Link zur Datenschutzerklärung von Google ein.

  2. Zu teilende Daten: Verwenden Sie eine klare und prägnante Sprache, um dem Nutzer mitzuteilen, welche seiner Daten Google benötigt und warum.

  3. Klarer Call-to-Action: Geben Sie auf dem Einwilligungsbildschirm einen klaren Call-to-Action an, z. B. „Zustimmen und verknüpfen“. Nutzer müssen verstehen, welche Daten sie mit Google teilen müssen, um ihre Konten zu verknüpfen.

  4. Möglichkeit zum Ablehnen oder Kündigen: Bieten Sie Nutzern die Möglichkeit, zurückzugehen, die Verknüpfung abzulehnen oder abzubrechen, wenn sie keine Verknüpfung wünschen.

  5. Verknüpfung aufheben: Bieten Sie Nutzern eine Möglichkeit, die Verknüpfung aufzuheben, z. B. eine URL zu ihren Kontoeinstellungen auf Ihrer Plattform. Alternativ können Sie einen Link zu Google-Konto einfügen, über den Nutzer ihr verknüpftes Konto verwalten können.

  6. Nutzerkonto ändern: Schlagen Sie Nutzern eine Methode vor, mit der sie ihr(e) Konto(s) wechseln können. Das ist besonders dann von Vorteil, wenn Nutzer mehrere Konten haben.

    • Wenn ein Nutzer den Zustimmungsbildschirm schließen muss, um das Konto zu wechseln, senden Sie einen behebaren Fehler an Google, damit sich der Nutzer mit OAuth-Verknüpfung und dem impliziten Ablauf im gewünschten Konto anmelden kann.
  7. Fügen Sie Ihr Logo ein. Ihr Unternehmenslogo auf dem Zustimmungsbildschirm anzeigen Platzieren Sie Ihr Logo gemäß Ihren Style-Richtlinien. Wenn Sie auch das Google-Logo anzeigen möchten, lesen Sie den Abschnitt Logos und Marken.

In dieser Abbildung sehen Sie ein Beispiel für einen Zustimmungsbildschirm mit Hinweisen zu den einzelnen Anforderungen und Empfehlungen, die beim Entwerfen eines Zustimmungsbildschirms für Nutzer zu beachten sind.
Abbildung 2. Designrichtlinien für den Zustimmungsbildschirm für die Kontoverknüpfung

App-Flip in Ihren Apps implementieren

Wenn Sie App-Flip implementieren möchten, müssen Sie den Autorisierungscode in Ihrer App so ändern, dass er einen Deeplink von Google akzeptiert.

Wenn Sie App-Flip in Ihrer Android-App unterstützen möchten, folgen Sie der Anleitung im Android-Implementierungsleitfaden.

Wenn Sie App-Flip in Ihrer iOS-App unterstützen möchten, folgen Sie der Anleitung im iOS-Implementierungsleitfaden.

App-Flip testen

App-Flip kann mit Beispiel- und Test-Apps simuliert werden, bevor verifizierte Produktions-Apps und ein funktionierender OAuth 2.0-Server verfügbar sind.

Bei App-Flip wird zuerst eine Google-App geöffnet, die dann eine Autorisierungscode-Antwort von Ihrem OAuth 2.0-Server anfordert. Im letzten Schritt wird die Antwort an die Google-App zurückgegeben.

Vorbereitung

Wenn Sie eine Google-App simulieren und die Intent auslösen möchten, mit der Ihre App gestartet wird, laden Sie das App-Flip-Testtool für Android und iOSherunter und installieren Sie es.

Laden Sie das App-Flip-Beispiel für Android und iOS herunter und installieren Sie es, um Ihre App zu simulieren und einen OAuth 2.0-Antworttyp auszuwählen.

Testablauf

  1. Öffnen Sie das App-Flip-Testtool.
  2. Drücken Sie auf Try Flip!, um die App „App-Flip-Beispiel“ zu starten.
  3. Wählen Sie in der Beispiel-App eine Antwort aus den Optionsfeldern aus.
  4. Drücken Sie auf Send, um eine simulierte OAuth 2.0-Antwort an das Testtool zurückzugeben.
  5. Prüfen Sie die Protokollmeldungen des Testtools auf einen auth_code oder Fehlerdetails.

Produktionstests

App-Flip kann in der Produktion getestet werden, nachdem Sie die Registrierung und die Implementierung Ihres OAuth 2.0-Servers abgeschlossen haben.

Für automatisierte Tests werden ein einzelnes Google-Konto und eine aufgabenbezogene E-Mail-Adresse empfohlen.

Der Status der Kontoverknüpfung kann unter Verknüpfte Konten angezeigt werden, wenn Sie als Inhaber des Google-Kontos angemeldet sind. Hier können Sie auch die Verknüpfung von Konten zwischen wiederholten Tests aufheben.

Optional können Sie RISC implementieren, um die Verknüpfung programmatisch aufzuheben und Google über die Änderung zu benachrichtigen.