Wie richte ich Google als Verbundidentitätsanbieter in einem Amazon Cognito-Benutzerpool ein?

Lesedauer: 6 Minute
0

Ich möchte Google als Verbundidentitätsanbieter (IdP) in einem Amazon Cognito-Benutzerpool verwenden.

Behebung

Amazon Cognito-Benutzerpools ermöglichen die Anmeldung über einen Drittanbieter (Verbund). Dies gilt auch über einen sozialen IdP wie Google oder Facebook. Weitere Informationen finden Sie unter Hinzufügen von Anbietern sozialer Identitäten zu einem Benutzerpool.

Erstellen eines Amazon Cognito-Benutzerpools mit einem App-Client und Domain-Namen

  1. Erstellen Sie einen Benutzerpool.
    Hinweis: Beim Erstellen wird das Standardattribut E-Mail standardmäßig ausgewählt. Weitere Informationen finden Sie unter Benutzerpool-Attribute.
  2. Erstellen Sie einen App-Client in Ihrem Benutzerpool. Weitere Informationen finden Sie unter Hinzufügen einer App, um die gehostete Web-Benutzeroberfläche zu aktivieren.
  3. Fügen Sie einen Domain-Namen für Ihren Benutzerpool hinzu.

Erstellen eines Google API Console-Projekts

Wenn Sie bereits ein Projekt haben, erstellen Sie ein neues Projekt:

  1. Melden Sie sich mit Ihrem Google-Konto bei Google API Console an. Weitere Informationen finden Sie unter APIs in der API-Konsole verwalten auf der Google-Hilfe-Website.
  2. Wählen Sie im Dashboard (APIs & Services) ERSTELLEN aus.
  3. Geben Sie unter Neues Projekt einen Projektnamen ein.
  4. Wählen Sie für Ort die Option BROWSEN aus, und wählen Sie dann einen Speicherort aus.
  5. Wählen Sie ERSTELLEN aus.

Weitere Informationen finden Sie in der Dokumentation Mit Google für Web anmelden auf der Google Identity-Website.

Konfigurieren des OAuth-Zustimmungsbildschirms

  1. Wählen Sie in der Google API Console im linken Navigationsbereich OAuth-Zustimmungsbildschirm aus.
  2. Füllen Sie das Einwilligungsformular aus. Gehen Sie mindestens wie folgt vor:
    Geben Sie für Anwendungsname einen Namen ein.
    Geben Sie für Authorized domains amazoncognito.com ein.
    Wichtig: Sie müssen diese Domain eingeben, sonst können Sie Ihre Amazon Cognito-Domain später nicht mehr verwenden, wenn Sie eine OAuth-Client-ID erstellen.
  3. Wählen Sie Speichern aus. Sie werden zur Seite Credentials weitergeleitet.

Weitere Informationen finden Sie unter OAuth-Zustimmungsbildschirm abschließen auf der Google Workspace-Website.

Abrufen der Anmeldeinformationen für den OAuth 2.0-Client

  1. Wählen Sie in der Google API Console auf der Seite Anmeldeinformationen die Option Anmeldeinformationen erstellen aus. Wählen Sie dann OAuth-Client-ID aus.
  2. Wählen Sie auf der Seite OAuth-Client-ID erstellen für Anwendungsart die Option Web-Anwendung aus.
  3. Gehen Sie wie folgt vor:
    Geben Sie unter Name einen Namen für Ihre OAuth-Client-ID ein.
    Geben Sie für Authorized JavaScript origins Ihre Amazon Cognito-Domain ein. Zum Beispiel: https://yourDomainPrefix.auth.region.amazoncognito.com.
    Hinweis: Ersetzen Sie yourDomainPrefix und Region durch die Werte für Ihren Benutzerpool. Suchen Sie in der Amazon Cognito-Konsole auf der Seite Domain-Name für Ihren Benutzerpool nach diesen Werten.
    Geben Sie für Authorized redirect URIs https://yourDomainPrefix.auth.region.amazoncognito.com/oauth2/idpresponse ein.
    Hinweis: Ersetzen Sie yourDomainPrefix und Region durch die Werte für Ihren Benutzerpool. Weitere Informationen finden Sie im vorherigen Schritt.
  4. Suchen Sie im Dialogfeld OAuth-Client nach der Client-ID und dem Client-Schlüssel, und notieren Sie sie sich für später. Sie benötigen diese, wenn Sie Google in Ihrem Amazon Cognito-Benutzerpool konfigurieren.

Weitere Informationen finden Sie unter Using OAuth 2.0 to access Google APIs auf der Google Identity-Website.

Konfigurieren von Google als Verbund-IdP in Ihrem Benutzerpool

  1. Wählen Sie in der Amazon Cognito-Konsole die Option Benutzerpools aus.
  2. Wählen Sie den Benutzerpool aus, den Sie verwenden möchten.
  3. Wählen Sie die Registerkarte Anmeldeerlebnis aus.
  4. Wählen Sie unter Anmeldung als Verbundidentitätsanbieter die Option Identitätsanbieter hinzufügen.
  5. Wählen Sie Google aus. Gehen Sie dann unter Google-Verbund mit Benutzerpool einrichten wie folgt vor:
    Fügen Sie unter Client-ID die Client-ID ein, die Sie in einem vorherigen Schritt notiert haben.
    Fügen Sie unter Client-Secret das Client-Geheimnis ein, das Sie in einem vorherigen Schritt notiert haben.
    Geben Sie für Authorized scopes die Profil-E-Mail OpenID ein.
  6. Unter Map attributes between Google and your user pool:
    Ordnen Sie das Benutzerpool-Attribut des Attributs E-Mail dem Google-Attribut von E-Mail zu.
    Wählen Sie Ein weiteres Attribut hinzufügen und ordnen Sie das Benutzerpool-Attribute von Benutzername dem Google-Attribut von Benutzername zu.
  7. Wählen Sie Identitätsanbieter hinzufügen aus.

Ändern der App-Client-Einstellungen für Ihren Benutzerpool

Hinweis: In den App-Client-Einstellungen müssen die zugewiesenen Benutzerpool-Attribute beschreibbar sein. Weitere Informationen finden Sie unter Festlegen von Identitätsanbieter-Attributzuordnungen für Ihren Benutzerpool.

  1. Wählen Sie in der Amazon Cognito-Konsole Ihren Benutzerpool aus.
  2. Wählen Sie die Registerkarte App-Integration.
  3. Wählen Sie unter App-Client-Liste die Option App-Client erstellen aus.
  4. Wählen Sie als die Art der App die Option Public client aus. Geben Sie dann einen Namen für Ihren App-Client ein.
    Wählen Sie für Authentifizierungsabläufe ALLOW_USER_PASSWORD_AUTH und ALLOW_REFRESH_TOKEN_AUTH aus.
    Geben Sie für Zugelassen Rückruf-URL(s) eine URL ein, zu der Ihre Benutzer nach der Anmeldung weitergeleitet werden sollen. Geben Sie zum Testen eine gültige URL ein, z. B. https://www.beispiel.com/.
    Geben Sie unter Abmelde-URL(s) eine URL ein, zu der Ihre Benutzer nach dem Abmelden weitergeleitet werden sollen. Geben Sie zum Testen eine gültige URL ein, z. B. https://www.beispiel.com/.
    Wählen Sie für Identitätsanbieter die Optionen Cognito-Benutzerpool und Google aus.
    Wählen Sie für OAuth 2.0 grant type die Option Implizite Gewährung aus.
    Wählen Sie für OpenID Connect scopes die Optionen E-Mail, openid und profile aus.
    Wichtig:
    Der implizite Gewährung-OAuth-Ablauf dient nur zu Testzwecken. Es hat sich bewährt, die Autorisierungscode-Gewährung für Produktionssysteme zu verwenden.
  5. Wählen Sie App-Client erstellen aus.

Weitere Informationen finden Sie unter Terminologie zu App-Client-Einstellungen.

Erstellen der Endpunkt-URL

Erstellen Sie mithilfe von Werten aus Ihrem Benutzerpool diese Anmelde-Endpunkt-URL für die von Amazon Cognito gehostete Weboberfläche: https://yourDomainPrefix.auth.region.amazoncognito.com/login?response_type=token&client_id=yourClientId&redirect_uri=redirectUrl

Hinweis: Ersetzen Sie yourDomainPrefix und Region durch die Werte für Ihren Benutzerpool. Suchen Sie in der Amazon Cognito-Konsole auf der Seite Domain-Name für Ihren Benutzerpool nach diesen Werten. Ersetzen Sie yourClientId durch die ID Ihres Amazon Cognito-App-Clients und redirectUrl durch die Callback-URL Ihres App-Clients. Sie finden diese Werte in der Amazon Cognito-Konsole auf der Seite App-Client-Einstellungen für Ihren Benutzerpool.

Weitere Informationen finden Sie unter Wie konfiguriere ich die gehostete Web-Benutzeroberfläche für Amazon Cognito? und Anmeldeendpunkt.

Testen der Endpunkt-URL

  1. Geben Sie die erstellte URL des Anmeldeendpunkts in Ihren Webbrowser ein.
  2. Wählen Sie auf der Webseite Ihres Anmeldeendpunkts Weiter mit Google aus.
    Hinweis: Wenn Sie zur Callback-URL Ihres Amazon Cognito-App-Clients weitergeleitet werden, sind Sie in Ihrem Browser bereits bei Ihrem Google-Konto angemeldet. Die Benutzerpool-Token werden in der URL in der Adressleiste Ihres Webbrowsers angezeigt.
  3. Wählen Sie unter Mit Google anmelden Ihr Google-Konto aus und melden Sie sich an.

Nach erfolgreicher Authentifizierung werden Sie zur Rückruf-URL Ihres Amazon Cognito-App-Clients weitergeleitet. Die vom Benutzerpool ausgegebenen JSON-Web-Tokens (JWT) werden in der URL in der Adressleiste Ihres Webbrowsers angezeigt.
Hinweis: In einer realen Web-App wird die URL des Anmeldeendpunkts von einem JavaScript-SDK generiert. Dadurch werden auch die JWT-Token in der URL analysiert.

Verwandte Informationen

Hinzufügen einer Benutzerpool-Anmeldung über einen Drittanbieter