Method: accounts.signInWithIdp

Meldet einen Nutzer mit Anmeldedaten eines Identitätsanbieters an oder registriert ihn. Dazu können Sie manuell Anmeldedaten für den Identitätsanbieter angeben oder die Autorisierungsantwort bereitstellen, die über die Autorisierungsanfrage von accounts.createAuthUri zurückgegeben wurde. Wenn die Anmeldung erfolgreich ist, werden für den authentifizierten Nutzer ein neues Identity Platform-ID-Token und ein neues Aktualisierungstoken ausgestellt.

Ein neues Identity Platform-Nutzerkonto wird erstellt, wenn sich der Nutzer zuvor nicht mit demselben Konto beim Identitätsanbieter angemeldet hat. Wenn die Einstellung „Ein Konto pro E-Mail-Adresse“ aktiviert ist, darf kein Identity Platform-Nutzerkonto mit derselben E-Mail-Adresse vorhanden sein, damit ein neues Nutzerkonto erstellt werden kann.

In der Anfrage ist ein API-Schlüssel erforderlich, um das Google Cloud-Projekt zu identifizieren.

HTTP-Anfrage

POST https://identitytoolkit.googleapis.com/v1/accounts:signInWithIdp

Die URL verwendet die Syntax der gRPC-Transcodierung.

Anfragetext

Der Anfragetext enthält Daten mit folgender Struktur:

JSON-Darstellung
{
  "requestUri": string,
  "postBody": string,
  "pendingIdToken": string,
  "returnRefreshToken": boolean,
  "sessionId": string,
  "delegatedProjectNumber": string,
  "idToken": string,
  "returnSecureToken": boolean,
  "returnIdpCredential": boolean,
  "autoCreate": boolean,
  "tenantId": string,
  "pendingToken": string
}
Felder
requestUri

string

Pflichtangabe. Die URL, an die der IdP den Nutzer zurückleitet. Dieser Wert kann auf http://localhost festgelegt werden, wenn sich der Nutzer mit manuell bereitgestellten IdP-Anmeldedaten anmeldet.

postBody

string

Wenn sich der Nutzer mit einer Autorisierungsantwort anmeldet, die über eine vorherige Autorisierungsanfrage von accounts.createAuthUri abgerufen wurde, ist dies der Textkörper des HTTP-POST-Callbacks vom IdP, sofern vorhanden.

Andernfalls, wenn sich der Nutzer mit manuell bereitgestellten Anmeldedaten für den Identitätsanbieter anmeldet, sollte dies ein URL-codiertes Formular sein, das die Anmeldedaten (z.B. ein ID-Token oder Zugriffstoken für OAuth 2.0-Identitätsanbieter) und die Anbieter-ID des Identitätsanbieters enthält, der die Anmeldedaten ausgestellt hat.

Wenn sich der Nutzer beispielsweise mit einem Google-ID-Token beim Google-Anbieter anmeldet, sollte dies auf id_token=[GOOGLE_ID_TOKEN]&providerId=google.com festgelegt werden. Dabei muss [GOOGLE_ID_TOKEN] durch das Google-ID-Token ersetzt werden.

Wenn sich der Nutzer mit einem Facebook-Authentifizierungstoken beim Facebook-Anbieter anmeldet, sollte dies auf id_token=[FACEBOOK_AUTHENTICATION_TOKEN]&providerId=facebook. com&nonce= [NONCE] festgelegt werden. Dabei muss [FACEBOOK_AUTHENTICATION_TOKEN] durch das Facebook-Authentifizierungstoken ersetzt werden. Der Nonce ist für die Validierung des Tokens erforderlich. Wenn kein Nonce angegeben wird, schlägt die Anfrage fehl.

Wenn sich der Nutzer mit einem Facebook-Zugriffstoken beim Facebook-Anbieter anmeldet, sollte dies auf access_token=[FACEBOOK_ACCESS_TOKEN]&providerId=facebook. com festgelegt werden. Dabei muss [FACEBOOK_ACCESS_TOKEN] durch das Facebook-Zugriffstoken ersetzt werden.

Wenn sich der Nutzer mit Twitter OAuth 1.0-Anmeldedaten beim Twitter-Anbieter anmeldet, sollte dies auf access_token=[TWITTER_ACCESS_TOKEN]&oauthTokenSecret= [TWITTER_TOKEN_SECRET]&providerId=twitter.com festgelegt werden. Dabei sollten [TWITTER_ACCESS_TOKEN] und [TWITTER_TOKEN_SECRET] durch das Twitter OAuth-Zugriffstoken und das Twitter OAuth-Token-Geheimnis ersetzt werden.

pendingIdToken
(deprecated)

string

returnRefreshToken

boolean

Gibt an, ob das OAuth-Aktualisierungstoken vom Identitätsanbieter zurückgegeben werden soll, falls verfügbar.

sessionId

string

Die Sitzungs-ID, die von einem vorherigen Aufruf von „accounts.createAuthUri“ zurückgegeben wurde. Dieses Feld wird anhand dieser Sitzungs-ID überprüft, um Angriffe über Sitzungsfixierung zu verhindern. Erforderlich, wenn sich der Nutzer mit einer Autorisierungsantwort aus einer vorherigen Autorisierungsanfrage von accounts.createAuthUri anmeldet.

delegatedProjectNumber
(deprecated)

string (int64 format)

idToken

string

Ein gültiges Identity Platform-ID-Token. Wenn der Test bestanden wird, wird das Konto des Nutzers beim IdP mit dem Konto verknüpft, das durch dieses ID-Token dargestellt wird.

returnSecureToken

boolean

Sollte immer wahr sein.

returnIdpCredential

boolean

Gibt an, ob OAuth-Anmeldedaten vom IdP für die folgenden Fehler zurückgegeben werden sollen: FEDERATED_USER_ID_ALREADY_LINKED und EMAIL_EXISTS.

autoCreate
(deprecated)

boolean

tenantId

string

Die ID des Identity Platform-Mandanten, bei dem sich der Nutzer anmeldet. Wenn nicht festgelegt, meldet sich der Nutzer im Standardprojekt von Identity Platform an.

pendingToken

string

Ein undurchsichtiger String aus einer vorherigen Antwort von „accounts.signInWithIdp“. Wenn dieser Parameter festgelegt ist, kann er verwendet werden, um den Anmeldevorgang aus dem vorherigen Vorgang „accounts.signInWithIdp“ zu wiederholen. Das kann der Fall sein, wenn der Nutzer seine Kontoinformationen im Rahmen eines vorherigen föderierten Anmeldeversuchs bestätigen oder eine Kontoverknüpfung vornehmen muss.

Antworttext

Antwortnachricht für accounts.signInWithIdp.

Bei Erfolg enthält der Antworttext Daten mit der folgenden Struktur:

JSON-Darstellung
{
  "federatedId": string,
  "providerId": string,
  "email": string,
  "emailVerified": boolean,
  "firstName": string,
  "fullName": string,
  "lastName": string,
  "nickName": string,
  "language": string,
  "timeZone": string,
  "photoUrl": string,
  "dateOfBirth": string,
  "inputEmail": string,
  "originalEmail": string,
  "localId": string,
  "emailRecycled": boolean,
  "displayName": string,
  "idToken": string,
  "context": string,
  "verifiedProvider": [
    string
  ],
  "needConfirmation": boolean,
  "oauthAccessToken": string,
  "oauthRefreshToken": string,
  "oauthExpireIn": integer,
  "oauthAuthorizationCode": string,
  "needEmail": boolean,
  "oauthTokenSecret": string,
  "refreshToken": string,
  "expiresIn": string,
  "oauthIdToken": string,
  "screenName": string,
  "rawUserInfo": string,
  "errorMessage": string,
  "isNewUser": boolean,
  "kind": string,
  "pendingToken": string,
  "tenantId": string,
  "mfaPendingCredential": string,
  "mfaInfo": [
    {
      object (MfaEnrollment)
    }
  ]
}
Felder
federatedId

string

Die Konto-ID des Nutzers beim IdP. Muss immer in der Antwort vorhanden sein.

providerId

string

Die Anbieter-ID des Identitätsanbieters, bei dem sich der Nutzer anmeldet. Muss immer in der Antwort vorhanden sein.

email

string

Die E-Mail-Adresse des Kontos des Nutzers beim Identitätsanbieter.

emailVerified

boolean

Gibt an, ob die E-Mail-Adresse des Nutzerkontos bestätigt wurde.

firstName

string

Der Vorname des Nutzers für sein Konto beim IdP.

fullName

string

Der vollständige Name des Nutzerkontos beim IdP.

lastName

string

Der Nachname des Nutzers für sein Konto beim IdP.

nickName

string

Der Alias für das Konto des Nutzers beim IdP.

language

string

Die Spracheinstellung für das Konto des Nutzers beim IdP.

timeZone

string

Die Zeitzone für das Konto des Nutzers beim IdP.

photoUrl

string

Die URL des Profilbilds des Nutzers beim Identitätsanbieter.

dateOfBirth

string

Das Geburtsdatum des Nutzers für sein Konto beim Identitätsanbieter.

inputEmail
(deprecated)

string

originalEmail

string

Die Haupt-E-Mail-Adresse (E-Mail-Adresse der obersten Ebene) des Identity Platform-Kontos des Nutzers, sofern sie von der E-Mail-Adresse beim IdP abweicht. Nur vorhanden, wenn die Einstellung „Ein Konto pro E-Mail-Adresse“ aktiviert ist.

localId

string

Die ID des authentifizierten Identity Platform-Nutzers. Muss immer in der Antwort vorhanden sein.

emailRecycled

boolean

Ob es ein Identity Platform-Nutzerkonto mit derselben E-Mail-Adresse gibt, das aber mit einem anderen Konto beim selben IdP verknüpft ist. Nur vorhanden, wenn die Einstellung „Ein Konto pro E-Mail-Adresse“ aktiviert ist und die E-Mail-Adresse beim IdP bestätigt wurde.

displayName

string

Der Anzeigename für das Konto des Nutzers beim Identitätsanbieter.

idToken

string

Ein Identity Platform-ID-Token für den authentifizierten Nutzer.

context

string

Der in „accounts.createAuthUri“ festgelegte opake String, der verwendet wird, um Kontextinformationen zwischen der Authentifizierungsanfrage und dem Callback vom IdP aufrechtzuerhalten.

verifiedProvider[]

string

Eine Liste von Anbieter-IDs, mit denen sich der Nutzer anmelden kann, um einen needConfirmation-Fehler zu beheben. Nur vorhanden, wenn needConfirmation auf true gesetzt ist.

needConfirmation

boolean

Ob es ein Identity Platform-Nutzerkonto mit derselben E-Mail-Adresse wie das aktuelle Konto gibt, das beim IdP angemeldet ist, und ob die E-Mail-Adresse des Kontos beim IdP nicht bestätigt wurde. Der Nutzer muss sich im vorhandenen Identity Platform-Konto anmelden und die aktuellen Anmeldedaten des IdP damit verknüpfen. Nur vorhanden, wenn die Einstellung „Ein Konto pro E-Mail-Adresse“ aktiviert ist.

oauthAccessToken

string

Das OAuth-Zugriffstoken des Identitätsanbieters, falls verfügbar.

oauthRefreshToken

string

Das OAuth 2.0-Aktualisierungstoken vom IdP, falls verfügbar und returnRefreshToken auf true festgelegt ist.

oauthExpireIn

integer

Die Anzahl der Sekunden, bis das OAuth-Zugriffstoken vom IdP abläuft.

oauthAuthorizationCode

string

Den OAuth 2.0-Autorisierungscode, falls verfügbar. Nur für den Google-Anbieter vorhanden.

needEmail
(deprecated)

boolean

oauthTokenSecret

string

Das OAuth 1.0-Token-Secret des Identitätsanbieters, falls verfügbar. Nur für den Twitter-Anbieter vorhanden.

refreshToken

string

Ein aktualisierter Identity Platform-Token für den authentifizierten Nutzer.

expiresIn

string (int64 format)

Die Anzahl der Sekunden, bis das Identity Platform-ID-Token abläuft.

oauthIdToken

string

Das OpenID Connect-ID-Token vom IdP, falls verfügbar.

screenName

string

Der Alias für das Konto des Nutzers beim Twitter-IdP oder der Anmeldename für das Konto des Nutzers beim GitHub-IdP.

rawUserInfo

string

Die String-JSON-Antwort mit allen Daten, die dem Konto des Nutzers beim IdP entsprechen.

errorMessage

string

Die Fehlermeldung, die zurückgegeben wird, wenn returnIdpCredential auf true gesetzt ist und entweder der Fehler FEDERATED_USER_ID_ALREADY_LINKED oder EMAIL_EXISTS auftritt. Der Wert dieses Felds ist entweder FEDERATED_USER_ID_ALREADY_LINKED oder EMAIL_EXISTS.

isNewUser

boolean

Gibt an, ob für den authentifizierten Nutzer ein neues Identity Platform-Konto erstellt wurde.

kind
(deprecated)

string

pendingToken

string

Ein intransparenter String, der als Anmeldedaten des Identitätsanbieters verwendet werden kann, bei dem sich der Nutzer anmeldet. Das hier erhaltene ausstehende Token kann in einer zukünftigen accounts.signInWithIdp-Anfrage festgelegt werden, um denselben Nutzer noch einmal beim Identitätsanbieter anzumelden.

tenantId

string

Der Wert des Felds tenantId in der Anfrage.

mfaPendingCredential

string

Ein nicht transparenter String, der als Nachweis dient, dass der Nutzer die Authentifizierung mit dem ersten Faktor bestanden hat.

mfaInfo[]

object (MfaEnrollment)

Informationen dazu, welche Anbieter für die Multi-Faktor-Authentifizierung für das Konto aktiviert sind. Wird angezeigt, wenn der Nutzer die Anmeldung mit der Multi-Faktor-Authentifizierung abschließen muss.

Autorisierungsbereiche

Erfordert einen der folgenden OAuth-Bereiche:

  • https://www.googleapis.com/auth/identitytoolkit
  • https://www.googleapis.com/auth/cloud-platform

Weitere Informationen finden Sie unter Authentication Overview.