OIDCBenutzerpool-IdP-Authentifizierungsablauf - Amazon Cognito

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

OIDCBenutzerpool-IdP-Authentifizierungsablauf

Mit der OpenID Connect (OIDC) -Anmeldung automatisiert Ihr Benutzerpool den Anmeldevorgang mit dem Autorisierungscode bei Ihrem Identitätsanbieter (IdP). Nachdem Ihr Benutzer die Anmeldung mit seinem IdP abgeschlossen hat, sammelt Amazon Cognito seinen Code am oauth2/idpresponse Endpunkt des externen Anbieters. Mit dem resultierenden Zugriffstoken fragt Ihr Benutzerpool den userInfo IdP-Endpunkt ab, um Benutzerattribute abzurufen. Ihr Benutzerpool vergleicht dann die empfangenen Attribute mit den von Ihnen eingerichteten Regeln für die Attributzuweisung und füllt das Benutzerprofil und das ID-Token entsprechend aus.

Die OAuth 2.0-Bereiche, die Sie in Ihrer OIDC Anbieterkonfiguration anfordern, definieren die Benutzerattribute, die der IdP Amazon Cognito zur Verfügung stellt. Aus Sicherheitsgründen sollten Sie nur die Bereiche anfordern, die den Attributen entsprechen, die Sie Ihrem Benutzerpool zuordnen möchten. Wenn Ihr Benutzerpool beispielsweise Anfragen stelltopenid profile, erhalten Sie alle möglichen Attribute, aber wenn Sie eine Anfrage stellen, erhalten openid email phone_number Sie nur die E-Mail-Adresse und Telefonnummer des Benutzers. Sie können die Bereiche, aus denen Sie anfragen, so konfigurieren, dass OIDC IdPs sie sich von denen unterscheiden, die Sie im App-Client und in der Benutzerpool-Authentifizierungsanfrage autorisieren und anfordern.

Wenn sich Ihr Benutzer mit einem OIDC IdP bei Ihrer Anwendung anmeldet, führt Ihr Benutzerpool den folgenden Authentifizierungsablauf durch.

  1. Ihr Benutzer landet auf der integrierten Anmeldeseite von Amazon Cognito und hat die Möglichkeit, sich über einen OIDC IdP, beispielsweise Salesforce, anzumelden.

  2. Ihr Benutzer wird zum authorization Endpunkt des OIDC IdP umgeleitet.

  3. Nachdem sich Ihr Benutzer authentifiziert hat, leitet der OIDC IdP mit einem Autorisierungscode zu Amazon Cognito weiter.

  4. Amazon Cognito tauscht den Autorisierungscode mit dem OIDC IdP gegen ein Zugriffstoken aus.

  5. Amazon Cognito erstellt oder aktualisiert das Benutzerkonto in Ihrem Benutzerpool.

  6. Amazon Cognito stellt die Bearer-Token für Ihre Anwendung aus, wobei es sich unter anderem um Identitäts-, Zugriffs- und Aktualisierungs-Token handeln kann.

Ablauf der OIDC Benutzerpool-IdP-Authentifizierung
Anmerkung

Amazon Cognito bricht Authentifizierungsanfragen ab, die nicht innerhalb von 5 Minuten abgeschlossen werden, und leitet den Benutzer an die gehostete Benutzeroberfläche um. Für die Seite wird eine Something went wrong-Fehlermeldung angezeigt.

OIDCist eine Identitätsebene auf OAuth 2.0, die Identitätstoken im JSON -Format (JWT) spezifiziert, die von IdPs an OIDC Client-Apps (vertrauende Parteien) ausgegeben werden. Informationen dazu, wie Sie Amazon Cognito als OIDC vertrauende Partei hinzufügen können, finden Sie in der Dokumentation für Ihren OIDC IdP.

Wenn sich ein Benutzer mit einer Autorisierungscode-Erteilung authentifiziert, gibt der Benutzerpool das ID-, Zugriffs- und Aktualisierungstoken zurück. Das ID-Token ist ein OIDCStandard-Token für die Identitätsverwaltung, und das Zugriffstoken ist ein OAuthStandard-2.0-Token. Weitere Informationen zu den Erteilungsarten, die Ihr Benutzerpool-App-Client unterstützen kann, finden Sie unter Autorisieren des Endpunkts.

Wie ein Benutzerpool Ansprüche eines OIDC Anbieters verarbeitet

Wenn Ihr Benutzer die Anmeldung bei einem OIDC Drittanbieter abschließt, ruft die von Amazon Cognito gehostete Benutzeroberfläche einen Autorisierungscode vom IdP ab. Ihr Benutzerpool tauscht den Autorisierungscode für Zugriffs- und ID-Tokens mit dem token-Endpunkt Ihres IdP aus. Ihr Benutzerpool gibt diese Token nicht an Ihren Benutzer oder Ihre App weiter, sondern verwendet sie, um ein Benutzerprofil mit Daten zu erstellen, die in Form von Anträgen in eigenen Tokens dargestellt werden.

Amazon Cognito validiert das Zugriffstoken nicht unabhängig. Stattdessen fordert es Benutzerattributinformationen vom userInfo-Endpunkt des Anbieters an und erwartet, dass die Anfrage abgelehnt wird, wenn das Token nicht gültig ist.

Amazon Cognito validiert das Anbieter-ID-Token mit den folgenden Prüfungen:

  1. Überprüfen Sie, ob der Anbieter das Token mit einem Algorithmus aus dem folgenden Satz signiert hat:RSA,, HMAC Elliptic Curve.

  2. Wenn der Anbieter das Token mit einem asymmetrischen Signaturalgorithmus signiert hat, prüfen, ob die Signaturschlüssel-ID im Token-kid-Antrag am Endpunkt jwks_uri des Anbieters aufgeführt ist.

  3. Die ID-Tokensignatur mit der Signatur vergleichen, die auf der Grundlage der Anbieter-Metadaten erwartet wird.

  4. Vergleichen Sie den iss Anspruch mit dem für den IdP konfigurierten OIDC Aussteller.

  5. Vergleichen, ob der aud-Antrag mit der auf dem IdP konfigurierten Client-ID übereinstimmt oder ob er die konfigurierte Client-ID enthält, wenn der aud-Antrag mehrere Werte enthält.

  6. Sicherstellen, dass der Zeitstempel im exp-Antrag nicht vor der aktuellen Uhrzeit liegt.

Ihr Benutzerpool validiert das ID-Token und versucht dann, mit dem Anbieter-Zugriffstoken eine Anfrage an den Anbieter-userInfo-Endpunkt zu stellen. Er ruft alle Benutzerprofilinformationen ab, zu deren Lesen die Bereiche im Zugriffstoken berechtigen. Ihr Benutzerpool sucht dann nach den Benutzerattributen, die Sie in Ihrem Benutzerpool als erforderlich festgelegt haben. Sie müssen in Ihrer Anbieterkonfiguration Attributzuordnungen für die erforderlichen Attribute erstellen. Ihr Benutzerpool überprüft das Provider-ID-Token und die userInfo-Antwort. Ihr Benutzerpool schreibt alle Anträge, die den Zuordnungsregeln entsprechen, den Benutzerattributen im Benutzerprofil des Benutzerpools zu. Ihr Benutzerpool ignoriert Attribute, die einer Zuordnungsregel entsprechen, aber nicht erforderlich sind und nicht in den Anträgen des Anbieters enthalten sind.