Konten werden über die branchenüblichen impliziten und Autorisierungscode-Vorgänge für OAuth 2.0 verknüpft. Ihr Dienst muss OAuth 2.0-konforme Autorisierungs- und Token-Austauschendpunkte unterstützen.
Beim impliziten Ablauf öffnet Google Ihren Autorisierungsendpunkt im Browser des Nutzers. Nach der erfolgreichen Anmeldung geben Sie ein langlebiges Zugriffstoken an Google zurück. Dieses Zugriffstoken ist jetzt in jeder Anfrage enthalten, die von Google gesendet wird.
Für den Ablauf mit Autorisierungscode sind zwei Endpunkte erforderlich:
Den Autorisierungsendpunkt, der noch nicht angemeldeten Nutzern die Anmelde-UI anzeigt. Der Autorisierungsendpunkt erstellt auch einen kurzlebigen Autorisierungscode, um die Einwilligung der Nutzer in den angeforderten Zugriff zu erfassen.
Der Token-Austausch-Endpunkt, der für zwei Arten von Anzeigenplattformen verantwortlich ist:
- Hier wird ein Autorisierungscode gegen ein langlebiges Aktualisierungstoken und ein kurzlebiges Zugriffstoken eingetauscht. Dieser Austausch erfolgt, wenn der Nutzer die Kontoverknüpfung durchläuft.
- Ein langlebiges Aktualisierungstoken wird gegen ein kurzlebiges Zugriffstoken eingetauscht. Dieser Austausch erfolgt, wenn Google ein neues Zugriffstoken benötigt, weil das vorherige abgelaufen ist.
OAuth 2.0-Vorgang auswählen
Der implizite Ablauf ist zwar einfacher zu implementieren, Google empfiehlt jedoch, dass die über den impliziten Ablauf ausgestellten Zugriffstokens nie ablaufen. Das liegt daran, dass der Nutzer beim impliziten Ablauf gezwungen wird, sein Konto noch einmal zu verknüpfen, nachdem ein Token abgelaufen ist. Wenn Sie aus Sicherheitsgründen ein Ablaufdatum für Tokens benötigen, empfehlen wir Ihnen dringend, stattdessen den Ablaufvorgang für Autorisierungscodes zu verwenden.
Gestaltungsrichtlinien
In diesem Abschnitt werden die Designanforderungen und -empfehlungen für den Nutzerbildschirm beschrieben, den Sie für OAuth-Verknüpfungsvorgänge hosten. Nachdem die Funktion von der Google-App aufgerufen wurde, wird dem Nutzer auf Ihrer Plattform eine Seite zur Anmeldung bei Google und ein Bildschirm zur Einwilligung in die Kontoverknüpfung angezeigt. Nachdem der Nutzer seine Einwilligung zur Kontoverknüpfung gegeben hat, wird er zur Google-App zurückgeleitet.
Voraussetzungen
- Du musst angeben, dass das Konto des Nutzers mit Google verknüpft wird und nicht mit einem bestimmten Google-Produkt wie Google Home oder Google Assistant.
Empfehlungen
Wir empfehlen Folgendes:
Datenschutzerklärung von Google anzeigen Fügen Sie im Zustimmungsbildschirm einen Link zur Datenschutzerklärung von Google ein.
Zu teilende Daten: Informieren Sie die Nutzer in einer klaren und prägnanten Sprache darüber, welche Daten von ihnen Google benötigt und warum.
Klarer Call-to-Action Geben Sie auf dem Einwilligungsbildschirm einen klaren Call-to-Action an, z. B. „Zustimmen und verknüpfen“. Nutzer müssen wissen, welche Daten sie mit Google teilen müssen, um ihre Konten zu verknüpfen.
Kündigung möglich. Bieten Sie Nutzern die Möglichkeit, zurückzugehen oder abzubrechen, wenn sie die Verknüpfung nicht herstellen möchten.
Klarer Anmeldevorgang. Achten Sie darauf, dass Nutzer eine eindeutige Methode für die Anmeldung in ihrem Google-Konto haben, z. B. Felder für ihren Nutzernamen und das Passwort oder Über Google anmelden.
Möglichkeit, die Verknüpfung aufzuheben Bieten Sie Nutzern die Möglichkeit, die Verknüpfung aufzuheben, z. B. über eine URL zu ihren Kontoeinstellungen auf Ihrer Plattform. Alternativ können Sie einen Link zum Google-Konto einfügen, über den Nutzer ihr verknüpftes Konto verwalten können.
Berechtigung zum Ändern des Nutzerkontos. Schlage Nutzern eine Methode vor, mit der sie ihr Konto bzw. ihre Konten wechseln können. Das ist besonders hilfreich, wenn Nutzer mehrere Konten haben.
- Wenn ein Nutzer den Einwilligungsbildschirm schließen muss, um das Konto zu wechseln, senden Sie einen wiederherstellbaren Fehler an Google, damit sich der Nutzer mit der OAuth-Verknüpfung und dem impliziten Ablauf im gewünschten Konto anmelden kann.
Fügen Sie Ihr Logo hinzu. Zeigen Sie Ihr Firmenlogo auf dem Einwilligungsbildschirm an. Verwenden Sie die Stilrichtlinien, um Ihr Logo zu platzieren. Wenn Sie auch das Google-Logo anzeigen lassen möchten, lesen Sie den Hilfeartikel Logos und Marken.
Projekt erstellen
So erstellen Sie ein Projekt, für das die Kontoverknüpfung verwendet werden soll:
- Go to the Google API Console.
- Klicken Sie auf Projekt erstellen .
- Geben Sie einen Namen ein oder akzeptieren Sie den generierten Vorschlag.
- Bestätigen oder bearbeiten Sie alle verbleibenden Felder.
- Klicken Sie auf Erstellen .
So zeigen Sie Ihre Projekt-ID an:
- Go to the Google API Console.
- Finden Sie Ihr Projekt in der Tabelle auf der Zielseite. Die Projekt - ID wird in der ID - Spalte.
OAuth-Zustimmungsbildschirm konfigurieren
Der Vorgang zur Google-Kontoverknüpfung umfasst einen Einwilligungsbildschirm, auf dem Nutzer die Anwendung sehen, die Zugriff auf ihre Daten anfordert, welche Art von Daten angefordert werden und welche Nutzungsbedingungen gelten. Sie müssen den OAuth-Zustimmungsbildschirm konfigurieren, bevor Sie eine Google API-Client-ID generieren können.
- Öffnen Sie in der Google APIs Console die Seite OAuth-Zustimmungsbildschirm.
- Wählen Sie bei Aufforderung das Projekt aus, das Sie gerade erstellt haben.
Füllen Sie auf der Seite "OAuth-Zustimmungsbildschirm" das Formular aus und klicken Sie auf die Schaltfläche "Speichern".
Name der Anwendung:Der Name der Anwendung, für die die Einwilligung eingeholt werden soll. Der Name sollte Ihre Anwendung korrekt widerspiegeln und mit dem Namen der Anwendung übereinstimmen, der Nutzern an anderer Stelle angezeigt wird. Der Name der Anwendung wird auf dem Einwilligungsbildschirm für die Kontoverknüpfung angezeigt.
App-Logo:Ein Bild auf dem Zustimmungsbildschirm, anhand dessen Nutzer Ihre App erkennen können. Das Logo ist auf dem Zustimmungsbildschirm für die Kontoverknüpfung und in den Kontoeinstellungen zu sehen.
Support-E-Mail-Adresse:E-Mail-Adresse des Supports, mit der Nutzer Sie mit Fragen zu ihrer Einwilligung kontaktieren können.
Bereiche für Google APIs:Bereiche ermöglichen es Ihrer Anwendung, auf die privaten Google-Daten Ihrer Nutzer zuzugreifen. Für den Anwendungsfall der Google-Kontoverknüpfung reicht der Standardumfang (E-Mail, Profil, OpenID) aus. Sie müssen keine sensiblen Bereiche hinzufügen. Es wird empfohlen, Zugriffsbereiche schrittweise anzufordern, wenn der Zugriff erforderlich ist, und nicht im Voraus. Weitere Informationen
Autorisierte Domains:Um Sie und Ihre Nutzer zu schützen, erlaubt Google die Nutzung autorisierter Domains nur solchen Anwendungen, die OAuth verwenden. Die Links Ihrer Apps müssen auf autorisierten Domains gehostet werden. Weitere Informationen
Link zur Startseite der Anwendung:Startseite Ihrer Anwendung. Muss auf einer autorisierten Domain gehostet werden.
Link zur Datenschutzerklärung der Anwendung:Wird auf dem Bildschirm für die Einwilligung in die Google-Kontoverknüpfung angezeigt. Muss auf einer autorisierten Domain gehostet werden.
Link zu den Nutzungsbedingungen der Anwendung (optional): Muss auf einer autorisierten Domain gehostet werden.
Abbildung 1. Zustimmungsbildschirm für die Google-Kontoverknüpfung für eine fiktive Anwendung, Tunery
Prüfen Sie den Bestätigungsstatus. Falls Ihr Antrag überprüft werden muss, klicken Sie auf die Schaltfläche „Zur Überprüfung einreichen“, um Ihren Antrag zur Überprüfung einzureichen. Weitere Informationen finden Sie unter Anforderungen an die OAuth-Überprüfung.
OAuth-Server implementieren
Ihr Dienst führt eine Autorisierung durch, um den impliziten OAuth 2.0-Vorgang zu unterstützen. Endpunkt verfügbar über HTTPS. Dieser Endpunkt ist für die Authentifizierung und Einholen der Einwilligung der Nutzer für den Datenzugriff Den Autorisierungsendpunkt Nutzern, die noch nicht angemeldet sind, wird eine Anmeldeoberfläche angezeigt und die Daten werden aufgezeichnet. Zustimmung zum angeforderten Zugriff geben.
Wenn eine Google-Anwendung eine der autorisierten APIs Ihres Dienstes aufrufen muss, Google verwendet diesen Endpunkt, um von Ihren Nutzern die Berechtigung zum Aufrufen dieser APIs einzuholen im Namen der Person.
Eine typische von Google initiierte Sitzung im impliziten OAuth 2.0-Vorgang hat den folgenden Ablauf:
- Google öffnet Ihren Autorisierungsendpunkt im Browser des Nutzers. Die Der Nutzer meldet sich an, falls er nicht bereits angemeldet ist, und erteilt Google die Berechtigung, mit Ihrer API auf ihre Daten zugreifen, falls sie nicht bereits eine Berechtigung erteilt haben.
- Ihr Dienst erstellt ein Zugriffstoken und gibt es an Google. Leiten Sie dazu den Browser des Nutzers zurück zu Google mit den Zugriffsrechten Token, das an die Anfrage angehängt ist.
- Google ruft die APIs Ihres Dienstes auf und hängt das Zugriffstoken mit für jede Anfrage. Ihr Dienst überprüft, ob das Zugriffstoken Google autorisiert, auf die API zuzugreifen und dann den API-Aufruf abzuschließen.
Autorisierungsanfragen verarbeiten
Wenn eine Google-Anwendung die Kontoverknüpfung über OAuth 2.0 durchführen muss impliziten Vorgang ab, sendet Google den Nutzer mit einer -Anfrage mit den folgenden Parametern:
Parameter des Autorisierungsendpunkts | |
---|---|
client_id |
Die Client-ID, die Sie Google zugewiesen haben. |
redirect_uri |
Die URL, an die Sie die Antwort auf diese Anfrage senden. |
state |
Buchhaltungswert, der unverändert an Google zurückgegeben wird Weiterleitungs-URI. |
response_type |
Der Werttyp, der in der Antwort zurückgegeben werden soll. Für den impliziten OAuth 2.0-Code
ist der Antworttyp immer token . |
user_locale |
Die Spracheinstellung des Google-Kontos in RFC5646 -Format, mit dem Ihre Inhalte in die bevorzugte Sprache des Nutzers lokalisiert werden. |
Wenn Ihr Autorisierungsendpunkt z. B. unter
https://myservice.example.com/auth
, kann eine Anfrage so aussehen:
GET https://myservice.example.com/auth?client_id=GOOGLE_CLIENT_ID&redirect_uri=REDIRECT_URI&state=STATE_STRING&response_type=token&user_locale=LOCALE
Damit der Autorisierungsendpunkt Anmeldeanfragen verarbeiten kann, musst du Folgendes tun: Schritte:
Prüfen Sie die Werte
client_id
undredirect_uri
, um So verhindern Sie, dass unbeabsichtigte oder falsch konfigurierte Client-Apps Zugriff gewährt werden:- Prüfen Sie, ob die
client_id
mit Ihrer Client-ID übereinstimmt die Google zugewiesen sind. - Prüfen Sie, ob die in
redirect_uri
angegebene URL hat das folgende Format:https://oauth-redirect.googleusercontent.com/r/YOUR_PROJECT_ID https://oauth-redirect-sandbox.googleusercontent.com/r/YOUR_PROJECT_ID
- Prüfen Sie, ob die
Prüfen Sie, ob der Nutzer in Ihrem Dienst angemeldet ist. Wenn der Nutzer nicht angemeldet ist angemeldet haben, müssen Sie den Anmelde- bzw. Anmeldevorgang für den Dienst abschließen.
Generieren Sie ein Zugriffstoken, mit dem Google auf Ihre API zugreifen kann. Die Zugriffstoken kann ein beliebiger Stringwert sein, muss aber den Wert Nutzer und den Client, für den das Token bestimmt ist, und darf nicht erraten werden.
Eine HTTP-Antwort senden, die den Browser des Nutzers an die URL weiterleitet
redirect_uri
wird angegeben. Schließen Sie alle folgende Parameter im URL-Fragment:access_token
: Das Zugriffstoken, das Sie gerade generiert haben.token_type
: der Stringbearer
state
: der unveränderte Statuswert aus dem Original Anfrage
Hier ein Beispiel für die resultierende URL:
https://oauth-redirect.googleusercontent.com/r/YOUR_PROJECT_ID#access_token=ACCESS_TOKEN&token_type=bearer&state=STATE_STRING
Der OAuth 2.0-Weiterleitungs-Handler von Google empfängt das Zugriffstoken und bestätigt
dass sich der Wert für state
nicht geändert hat. Nachdem Google eine
Zugriffstoken für Ihren Dienst verwendet, hängt Google das Token an nachfolgende Aufrufe an.
zu Ihren Dienst-APIs hinzu.
Handle userinfo requests
The userinfo endpoint is an OAuth 2.0 protected resource that return claims about the linked user. Implementing and hosting the userinfo endpoint is optional, except for the following use cases:
- Linked Account Sign-In with Google One Tap.
- Frictionless subscription on AndroidTV.
After the access token has been successfully retrieved from your token endpoint, Google sends a request to your userinfo endpoint to retrieve basic profile information about the linked user.
userinfo endpoint request headers | |
---|---|
Authorization header |
The access token of type Bearer. |
For example, if your userinfo endpoint is available at
https://myservice.example.com/userinfo
, a request might look like the following:
GET /userinfo HTTP/1.1 Host: myservice.example.com Authorization: Bearer ACCESS_TOKEN
For your userinfo endpoint to handle requests, do the following steps:
- Extract access token from the Authorization header and return information for the user associated with the access token.
- If the access token is invalid, return an HTTP 401 Unauthorized error with using the
WWW-Authenticate
Response Header. Below is an example of a userinfo error response:HTTP/1.1 401 Unauthorized WWW-Authenticate: error="invalid_token", error_description="The Access Token expired"
If a 401 Unauthorized, or any other unsuccessful error response is returned during the linking process, the error will be non-recoverable, the retrieved token will be discarded and the user will have to initiate the linking process again. If the access token is valid, return and HTTP 200 response with the following JSON object in the body of the HTTPS response:
{ "sub": "USER_UUID", "email": "EMAIL_ADDRESS", "given_name": "FIRST_NAME", "family_name": "LAST_NAME", "name": "FULL_NAME", "picture": "PROFILE_PICTURE", }
If your userinfo endpoint returns an HTTP 200 success response, the retrieved token and claims are registered against the user's Google account.userinfo endpoint response sub
A unique ID that identifies the user in your system. email
Email address of the user. given_name
Optional: First name of the user. family_name
Optional: Last name of the user. name
Optional: Full name of the user. picture
Optional: Profile picture of the user.
Implementierung validieren
您可以使用 OAuth 2.0 Playground 工具验证您的实现。
在该工具中,执行以下步骤:
- 点击配置 以打开 OAuth 2.0 配置窗口。
- 在 OAuth flow 字段中,选择 Client-side(客户端)。
- 在 OAuth 端点字段中,选择自定义。
- 在相应字段中指定您的 OAuth 2.0 端点和您分配给 Google 的客户端 ID。
- 在第 1 步部分,不要选择任何 Google 范围。请将此字段留空或输入对服务器有效的范围(如果您不使用 OAuth 范围,则可以输入任意字符串)。完成后,点击授权 API。
- 在 Step 2 和 Step 3 部分中,完成 OAuth 2.0 流程,并验证每个步骤是否按预期运行。
您可以使用 Google 账号关联演示版工具验证您的实现。
在该工具中,执行以下步骤:
- 点击使用 Google 账号登录按钮。
- 选择您要关联的账号。
- 输入服务 ID。
- (可选)输入您要请求访问权限的一个或多个范围。
- 点击开始演示。
- 当系统提示时,请确认您同意或拒绝关联请求。
- 确认您已被重定向到您的平台。