View a markdown version of this page

Verwendung von OIDC-Identitätsanbietern mit einem Benutzerpool - 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.

Verwendung von OIDC-Identitätsanbietern mit einem Benutzerpool

Benutzer können sich mit ihren vorhandenen Konten von OpenID Connect (OIDC) -Identitätsanbietern () bei Ihrer Anwendung anmelden. IdPs Mit OIDC-Anbietern können Benutzer unabhängiger Single-Sign-On-Systeme vorhandene Anmeldeinformationen angeben, während Ihre Anwendung OIDC-Token im gemeinsamen Format von Benutzerpools erhält. Um einen OIDC-IdP zu konfigurieren, richten Sie Ihren IdP so ein, dass er Ihren Benutzerpool als RP verwaltet, und konfigurieren Sie Ihre Anwendung so, dass Ihr Benutzerpool als IdP behandelt wird. Amazon Cognito dient als Zwischenschritt zwischen mehreren OIDC und Ihren Anwendungen. IdPs Ihr Benutzerpool wendet Regeln zur Attributzuordnung auf die Ansprüche in der ID und den Zugriffstoken an, die Ihr Anbieter direkt an Ihren Benutzerpool weiterleitet. Amazon Cognito gibt dann neue Token aus, die auf den zugewiesenen Benutzerattributen und allen zusätzlichen Anpassungen basieren, die Sie mit Lambda-Triggern am Authentifizierungsablauf vorgenommen haben. Lambda-Auslöser für Verbundbenutzer

Benutzer, die sich mit einem OIDC-IdP anmelden, müssen keine neuen Anmeldeinformationen oder Informationen angeben, um auf Ihre Benutzerpool-Anwendung zuzugreifen. Ihre Anwendung kann sie zur Anmeldung im Hintergrund an ihren IdP weiterleiten. Im Hintergrund befindet sich ein Benutzerpool als Tool, das das Token-Format für Ihre Anwendung standardisiert. Weitere Informationen zur IdP-Umleitung finden Sie unter. Autorisieren des Endpunkts

Wie bei anderen externen Identitätsanbietern müssen Sie Ihre Anwendung beim OIDC-Anbieter registrieren und Informationen über die IdP-Anwendung abrufen, die Sie mit Ihrem Benutzerpool verbinden möchten. Ein OIDC-IdP für einen Benutzerpool benötigt eine Client-ID, einen geheimen Client-Schlüssel, Bereiche, die Sie anfordern möchten, und Informationen zu den Dienstendpunkten des Anbieters. Ihr Benutzerpool kann die Provider-OIDC-Endpunkte von einem Discovery-Endpunkt aus ermitteln, oder Sie können sie manuell eingeben. Sie müssen auch die Provider-ID-Token untersuchen und Attributzuordnungen zwischen dem IdP und den Attributen in Ihrem Benutzerpool erstellen.

Ablauf der OIDC-Benutzerpool-IdP-Authentifizierung

Weitere Informationen Authentifizierungsablauf für den OIDC-Benutzerpool-IdP zu diesem Authentifizierungsablauf finden Sie unter.

Anmerkung

Sign-in über einen Drittanbieter (Verband) ist in Amazon Cognito-Benutzerpools verfügbar. Diese Funktion ist unabhängig vom OIDC-Verbund mit Amazon Cognito-Identitätspools.

Sie können Ihrem Benutzerpool einen OIDC-IdP in der AWS-Managementkonsole, über die oder mit der AWS CLI Benutzerpool-API-Methode hinzufügen. CreateIdentityProvider

Voraussetzungen

Bevor Sie beginnen, muss Folgendes sichergestellt sein:

  • Ein Benutzerpool mit einem App-Client und eine Benutzerpool-Domäne. Weitere Informationen finden Sie unter Einen Benutzerpool erstellen.

  • Ein OIDC IdP mit folgender Konfiguration:

    • Unterstützt die client_secret_post Clientauthentifizierung. Amazon Cognito überprüft nicht den token_endpoint_auth_methods_supported-Antrag am OIDC-Erkennungsendpunkt für Ihren IdP. Amazon Cognito unterstützt nicht die client_secret_basic Clientauthentifizierung. Weitere Informationen zur Clientauthentifizierung finden Sie unter Clientauthentifizierung in der Dokumentation zu OpenID Connect.

    • Verwendet HTTPS nur für OIDC-Endpunkte wie openid_configuration, userInfo und jwks_uri.

    • Verwendet nur die TCP-Ports 80 und 443 für OIDC-Endpunkte.

    • Signiert ID-Token nur mit ECDSA HMAC-SHA - oder RSA-Algorithmen.

    • Veröffentlicht einen Schlüssel-IDkid-Anspruch am jwks_uri und enthält einen kid-Anspruch in seinen Token.

    • Stellt einen nicht abgelaufenen öffentlichen Schlüssel mit einer gültigen Root-CA-Vertrauenskette dar.

Registrieren Sie eine Anwendung bei einem OIDC-IdP

Bevor Sie Ihrer Benutzerpool-Konfiguration einen OIDC-IdP hinzufügen und ihn App-Clients zuweisen, richten Sie eine OIDC-Client-Anwendung in Ihrem IdP ein. Ihr Benutzerpool ist die Anwendung der Vertrauenspartei, die die Authentifizierung bei Ihrem IdP verwaltet.

Registrieren mit einem OIDC-IdP
  1. Erstellen Sie ein Entwickler-Konto bei dem OIDC-IdP.

    Links zu OIDC IdPs
    OIDC-IdP Installieren URL für die OIDC-Erkennung
    Salesforce

    Salesforce als OpenID Connect-Identitätsanbieter

    https://MyDomainName.my.salesforce.com/.well-known/openid-configuration

    OneLogin Verbinden Sie eine OIDC-fähige App

    https://your-domain.onelogin.com/oidc/2/.well-known/openid-configuration

    JumpCloud SSO mit OIDC

    https://oauth.id.jumpcloud.com/.well-known/openid-configuration

    Okta

    Installieren eines Okta-Identitätsanbieters

    https://Your Okta subdomain.okta.com/.well-known/openid-configuration

    Microsoft Entra ID

    OpenID Connect auf der Microsoft-Identitätsplattform

    https://login.microsoftonline.com/{tenant}/v2.0

    Die Werte von tenant können eine Mandanten-ID, commonorganizations, oder consumers enthalten.

  2. Registrieren Sie Ihre Benutzerpool-Domänen-URL mit dem Endpunkt /oauth2/idpresponse bei Ihrem OIDC-Identitätsanbieter. Auf diese Weise wird sichergestellt, dass der OIDC-Identitätsanbieter sie von Amazon Cognito später akzeptiert, wenn es Benutzer authentifiziert.

    https://mydomain.auth.us-east-1.amazoncognito.com/oauth2/idpresponse
  3. Wählen Sie die Bereiche aus, die Ihr Benutzerverzeichnis mit Ihrem Benutzerpool teilen soll. Der Bereich openid ist erforderlich, damit OIDC Benutzerinformationen IdPs anbieten kann. Der email Geltungsbereich wird benötigt, um Zugriff auf die und Claims zu gewähren. email email_verified https://openid.net/specs/openid-connect-basic-1_0.html#StandardClaims Zusätzliche Bereiche in der OIDC-Spezifikation gelten profile für alle Benutzerattribute und für undphone. phone_number phone_number_verified

  4. Der OIDC-Identitätsanbieter stellt Ihnen eine Client-ID und einen geheimen Client-Schlüssel bereit. Notieren Sie sich diese Werte und fügen Sie sie der Konfiguration des OIDC-IdP hinzu, den Sie später zu Ihrem Benutzerpool hinzufügen.

Beispiel: Verwendung von Salesforce als OIDC-Identitätsanbieter für Ihren Benutzerpool

Sie verwenden einen OIDC-IdP, wenn Sie eine Vertrauensstellung zwischen einem OIDC-compatible IdP wie Salesforce und Ihrem Benutzerpool herstellen möchten.

  1. Erstellen Sie ein Konto auf der Salesforce-Entwickler-Website.

  2. Melden Sie sich über Ihr Entwickler-Konto an, das Sie im vorherigen Schritt eingerichtet haben.

  3. Führen Sie auf Ihrer Salesforce-Seite einen der folgenden Schritte aus:

    • Wenn Sie Lightning Experience verwenden, wählen Sie das Zahnradsymbol für die Einrichtung und dann Setup Home (Einrichtung Startseite) aus.

    • Wenn Sie Salesforce Classic verwenden und Setup (Einstellung) in der Kopfzeile der Benutzeroberfläche sehen, wählen Sie es aus.

    • Wenn Sie Salesforce Classic verwenden und Setup (Einstellung) nicht angezeigt wird, wählen Sie Ihren Namen in der oberen Navigationsleiste und wählen dann Setup (Einstellung) aus der Dropdown-Liste aus.

  4. Wählen Sie in der linken Navigationsleiste Company Settings (Unternehmenseinstellungen).

  5. Wählen Sie in der Navigationsleiste Domain (Domäne), geben Sie eine Domäne ein und wählen Sie Create (Erstellen).

  6. Wählen Sie in der linken Navigationsleiste Platform Tools (Plattform-Tools) und wählen Sie Apps (Anwendungen).

  7. Wählen Sie App Manager.

    1. Wählen Sie new connected app (neue verbundene App) aus.

    2. Füllen Sie die Pflichtfelder aus.

      Geben Sie unter Start URL (Start-URL) eine URL am /authorize-Endpunkt für die Benutzerpool-Domäne ein, die sich bei Ihrem Salesforce-IDP anmeldet. Wenn Ihre Benutzer auf Ihre verbundene App zugreifen, leitet Salesforce sie an diese URL weiter, um die Anmeldung abzuschließen. Dann leitet Salesforce die Benutzer an die Rückruf-URL um, die Sie Ihrem App-Client zugeordnet haben.

      https://mydomain.auth.us-east-1.amazoncognito.com/authorize?response_type=code&client_id=<your_client_id>&redirect_uri=https://www.example.com&identity_provider=CorpSalesforce
    3. Aktivieren Sie OAuth settings (OAuth-Einstellungen) und geben Sie die URL des /oauth2/idpresponse-Endpunkts für Ihre Benutzerpool-Domäne unter Callback URL (Rückruf-URL) ein. Dies ist die URL, mit der SalesForce den Autorisierungscode ausgibt, den Amazon Cognito gegen ein OAuth-Token eintauscht.

      https://mydomain.auth.us-east-1.amazoncognito.com/oauth2/idpresponse
  8. Wählen Sie Ihre Bereiche aus. Sie müssen den Bereich openid einschließen. Fügen Sie den Bereich email hinzu, um Zugriff auf die Ansprüche email und email_verified zu erteilen. Trennen Sie Bereiche durch Leerzeichen.

  9. Wählen Sie Erstellen aus.

    In Salesforce wird die Client-ID als Consumer Key (Verbraucherschlüssel) bezeichnet, der geheime Client-Schlüssel als Consumer Secret (Verbrauchergeheimnis). Notieren Sie die Client-ID und den geheimen Client-Schlüssel. Sie brauchen diese Informationen im nächsten Abschnitt.

Hinzufügen eines OIDC-IdP zu Ihrem Benutzerpool

Nachdem Sie Ihren IdP eingerichtet haben, können Sie Ihren Benutzerpool so konfigurieren, dass Authentifizierungsanfragen mit einem OIDC-IdP verarbeitet werden.

Amazon Cognito console
Fügen Sie einen OIDC-IdP in der Konsole hinzu
  1. Melden Sie sich bei der Amazon-Cognito-Konsole an. Geben Sie bei Aufforderung Ihre AWS -Anmeldeinformationen ein.

  2. Wählen Sie User Pools (Benutzerpools) aus dem Navigationsmenü aus.

  3. Wählen Sie einen vorhandenen Benutzerpool aus der Liste aus oder erstellen Sie einen neuen Benutzerpool.

  4. Wählen Sie das Menü Soziale und externe Anbieter und wählen Sie dann Identitätsanbieter hinzufügen aus.

  5. Wählen Sie einen OpenID Connect-IDP aus.

  6. Geben Sie einen eindeutigen Anbieternamen ein.

  7. Geben Sie die IdP-Client-ID ein. Dies ist die ID des Anwendungsclients, den Sie in Ihrem OIDC-IdP erstellen. Die von Ihnen angegebene Client-ID muss ein OIDC-Anbieter sein, den Sie mit einer Rückruf-URL von konfiguriert haben. https://[your user pool domain]/oauth2/idpresponse

  8. Geben Sie den geheimen IdP-Client ein. Dies muss das Client-Geheimnis für denselben Anwendungsclient aus dem vorherigen Schritt sein.

  9. Geben Sie Authorized scopes (Autorisierte Bereiche) für diesen Anbieter ein. Bereiche definieren, welche Gruppen von Benutzerattributen (z. B. name und email) Ihre Anwendung von Ihrem Anbieter anfordert. Bereiche müssen durch Leerzeichen getrennt werden, gefolgt von einer OAuth 2.0-Angabe.

    Ihr IdP fordert Benutzer möglicherweise auf, der Bereitstellung dieser Attribute für Ihre Anwendung zuzustimmen, wenn sie sich anmelden.

  10. Wählen Sie eine Methode zur Anforderung von Attributen. IdPserfordert möglicherweise, dass Anfragen an ihre userInfo Endpunkte als entweder oder GET formatiert werden. POST Der Amazon userInfo Cognito-Endpunkt erfordert HTTP GET beispielsweise Anfragen.

  11. Wählen Sie eine Einrichtungsmethode für die Art und Weise, wie Ihr Benutzerpool den Pfad zu den wichtigsten OIDC-federation Endpunkten bei Ihrem IdP bestimmen soll. IdPs Hosten Sie einen /well-known/openid-configuration Endpunkt in der Regel unter einer Basis-URL des Ausstellers. Wenn dies bei Ihrem Anbieter der Fall ist, fordert Sie die Option Automatisches Ausfüllen über die Aussteller-URL auf, versucht, von dort aus auf den /well-known/openid-configuration Pfad zuzugreifen, und liest die dort aufgeführten Endpunkte. Möglicherweise haben Sie ungewöhnliche Endpunktpfade oder möchten Anfragen über einen alternativen Proxy an einen oder mehrere Endpunkte weiterleiten. Wählen Sie in diesem Fall Manuelle Eingabe und geben Sie die Pfade für die authorization Endpunkte, tokenuserInfo, und jwks_uri an.

    Anmerkung

    Die URL sollte mit https:// beginnen und nicht mit einem Slash / enden. Nur die Portnummern 443 und 80 können mit dieser URL verwendet werden. Beispielsweise verwendet Salesforce diese URL:

    https://login.salesforce.com

    Wenn Sie das automatische Ausfüllen auswählen, muss das Erkennungsdokument HTTPS für die folgenden Werte verwenden: authorization_endpoint, token_endpoint, userinfo_endpoint und jwks_uri. Andernfalls schlägt die Anmeldung fehl.

  12. Konfigurieren Sie Ihre Regeln für die Attributzuordnung unter Attribute zwischen Ihrem OpenID Connect-Anbieter und Ihrem Benutzerpool zuordnen. Das Benutzerpoolattribut ist das Zielattribut im Amazon Cognito-Benutzerprofil und das OpenID Connect-Attribut ist das Quellattribut, das Amazon Cognito in einem Anspruch oder einer Antwort finden soll. ID-token userInfo Amazon Cognito ordnet den untergeordneten OIDC-Anspruch automatisch im Zielbenutzerprofil zuusername.

    Weitere Informationen finden Sie unter Zuordnung von IdP-Attributen zu Profilen und Tokens.

  13. Wählen Sie Identitätsanbieter hinzufügen aus.

  14. Wählen Sie im Menü App-Clients einen App-Client aus der Liste aus. Navigieren Sie zur Registerkarte Anmeldeseiten und wählen Sie unter Konfiguration der verwalteten Anmeldeseiten die Option Bearbeiten aus. Suchen Sie nach Identitätsanbietern und fügen Sie Ihren neuen OIDC-IdP hinzu.

  15. Wählen Sie Änderungen speichern aus.

API/CLI

Die OIDC-Konfiguration in Beispiel 2 finden Sie unter. CreateIdentityProvider Sie können diese Syntax ändern und sie als Anforderungstext von CreateIdentityProvider oder als --cli-input-json Eingabedatei für UpdateIdentityProvider create-identity-provider verwenden.

Testen Ihrer OIDC-IdP-Konfiguration

In Ihrer Anwendung müssen Sie einen Browser im Client des Benutzers aufrufen, damit sich dieser bei seinem OIDC-Anbieter anmelden kann. Testen Sie die Anmeldung bei Ihrem Anbieter, nachdem Sie die Einrichtungsverfahren in den vorherigen Abschnitten abgeschlossen haben. Die folgende Beispiel-URL lädt die Anmeldeseite für Ihren Benutzerpool mit einer Präfix-Domain.

https://mydomain.auth.us-east-1.amazoncognito.com/oauth2/authorize?response_type=code&client_id=1example23456789&redirect_uri=https://www.example.com

Dieser Link ist die Seite, zu der Amazon Cognito Sie weiterleitet, wenn Sie zum App-Client-Menü gehen, einen App-Client auswählen, zum Tab Anmeldeseiten navigieren und Anmeldeseite anzeigen auswählen. Weitere Informationen zu Benutzerpool-Domains finden Sie unterKonfigurieren einer Benutzerpool-Domäne. Weitere Informationen zu App-Clients, einschließlich Client-IDs und Rückruf-URLs, finden Sie unterAnwendungsspezifische Einstellungen mit App-Clients.

Der folgende Beispiel-Link richtet eine automatische Weiterleitung vom MyOIDCIdP Anbieter Autorisieren des Endpunkts mit einem identity_provider Abfrageparameter ein. Diese URL umgeht die interaktive Benutzerpool-Anmeldung mit verwalteter Anmeldung und leitet direkt zur IdP-Anmeldeseite weiter.

https://mydomain.auth.us-east-1.amazoncognito.com/oauth2/authorize?identity_provider=MyOIDCIdP&response_type=code&client_id=1example23456789&redirect_uri=https://www.example.com