Verwenden von Web-Verbundidentitäten zum Authentifizieren von Benutzern - AWS SDK for JavaScript

Wir haben das Kommende end-of-support für AWS SDK for JavaScript v2 angekündigt. Wir empfehlen Ihnen, auf AWS SDK for JavaScript Version 3 zu migrieren. Termine, weitere Details und Informationen zur Migration finden Sie in der verlinkten Ankündigung.

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.

Verwenden von Web-Verbundidentitäten zum Authentifizieren von Benutzern

Sie können einzelne Identitätsanbieter direkt für den Zugriff konfigurierenAWS-Ressourcen mithilfe eines Web-IdentitätsverbAWSunterstützt derzeit das Authentifizieren von Benutzern mithilfe eines Web-Identitätsverbunds über mehrere Identitätsanbieter:

Sie müssen Ihre Anwendung zunächst mit den Anbietern registrieren, die von Ihrer Anwendung unterstützt werden. Erstellen Sie anschließend eine IAM-Rolle und richten Sie die Berechtigungen dafür ein. Die IAM-Rolle, die Sie erstellen, wird dann für die Erteilung der Berechtigungen verwendet, die Sie für sie über den jeweiligen Identitätsanbieter konfiguriert haben. Sie können beispielsweise eine Rolle so einrichten, dass Benutzer, die sich über Facebook anmelden, Lesezugriff auf einen bestimmten Amazon S3 S3-Bucket haben, den Sie steuern.

Nachdem Sie sowohl über eine IAM-Rolle mit konfigurierten Berechtigungen verfügen als auch eine Anwendung bei den von Ihnen ausgewählten Identitätsanbieter registriert haben, können Sie das SDK so einrichten, dass die Anmeldeinformationen für die IAM-Rolle mithilfe von Hilfscode folgendermaßen abgerufen werden:

AWS.config.credentials = new AWS.WebIdentityCredentials({ RoleArn: 'arn:aws:iam::<AWS_ACCOUNT_ID>/:role/<WEB_IDENTITY_ROLE_NAME>', ProviderId: 'graph.facebook.com|www.amazon.com', // this is null for Google WebIdentityToken: ACCESS_TOKEN });

Der Wert des ProviderId-Parameters hängt vom angegebenen Identitätsanbieter ab. Der Wert des WebIdentityToken-Parameters ist das abgerufene Zugriffstoken aus einer erfolgreichen Anmeldung mit dem Identitätsanbieter. Weitere Informationen zum Konfigurieren und Abrufen von Zugriffstoken für die einzelnen Identitätsanbieter finden Sie in der Dokumentation des Identitätsanbieters.

Schritt 1: Registrierung bei Identitätsanbietern

Registrieren Sie eine Anwendung zu Beginn bei den Identitätsanbietern, die Sie unterstützen möchten. Sie werden um Informationen gebeten, anhand derer Ihre Anwendung und möglicherweise auch deren Autor identifiziert werden können. Auf diese Weise wird sichergestellt, dass die Identitätsanbieter den Empfänger ihrer Benutzerinformationen kennen. In jedem Fall erstellt der Identitätsanbieter eine Anwendungs-ID, mit der Sie Benutzerrollen konfigurieren können.

Schritt 2: Erstellen einer IAM-Rolle für einen Identitätsanbieter

Nachdem Sie die Anwendungs-ID von einem Identitätsanbieter erhalten haben, rufen Sie die IAM-Konsole unterhttps://console.aws.amazon.com/iam/um eine neue IAM-Rolle zu erstellen.

So erstellen Sie eine IAM-Rolle für einen Identitätsanbieter
  1. Rufen Sie in der Konsole den Abschnitt Roles (Rollen) auf und wählen Sie anschließend Create new role (Neue Rolle erstellen) aus.

  2. Geben Sie einen Namen für die neue Rolle ein, über den Sie deren Verwendung verfolgen können, z. B. facebookIdentity. Wählen Sie anschließend Next Step (Nächster Schritt) aus.

  3. Wählen Sie unter Select Role Type (Rollentyp auswählen) die Option Role for Identity Provider Access (Rolle für den Zugriff von Identitätsanbietern) aus.

  4. Wählen Sie unter Grant access to web identity providers (Web-Identitätsanbietern Zugriff gewähren) die Option Select (Auswählen) aus.

  5. AusIdentitätsanbieterWählen Sie den Identitätsanbieter aus, den Sie für diese IAM-Rolle verwenden möchten.

    Auswählen der Rolle für den Zugriff von Identitätsanbietern
  6. Geben Sie die Anwendungs-ID des Identitätsanbieters im Feld Application ID (Anwendungs-ID) ein und wählen Sie dann Next Step (Nächster Schritt) aus

  7. Konfigurieren Sie Berechtigungen für die Ressourcen, die Sie bereitstellen möchten, damit der Zugriff auf bestimmte Operationen für bestimmte Ressourcen gewährt wird. Weitere Informationen zu IAM-Berechtigungen finden Sie unterÜbersicht überAWSIAM-BerechtigungenimIAM User Guideaus. Überprüfen Sie die Vertrauensstellung der Rolle und passen Sie sie erforderlichenfalls an. Klicken Sie anschließend auf Next Step (Nächster Schritt).

  8. Fügen Sie zusätzliche benötigte Richtlinien an und wählen Sie dann Next Step (Nächster Schritt) aus. Weitere Informationen zu IAM-Richtlinien finden Sie unterÜbersicht über IAM-RichtlinienimIAM User Guideaus.

  9. Prüfen Sie die neue Rolle und wählen Sie dann Create Role (Rolle erstellen) aus.

Sie können der Rolle andere Einschränkungen hinzufügen, z. B. die Zuordnung zu bestimmten Benutzer-IDs. Wenn die Rolle Schreibberechtigungen für Ihre Ressourcen erteilt, stellen Sie sicher, dass Sie die Rolle nur Benutzern mit den entsprechenden Berechtigungen zuordnen, ansonsten kann jeder Benutzer mit einer Amazon-, Facebook- oder Google-Identität Änderungen an Ihren Ressourcen vornehmen.

Weitere Informationen zur Verwendung des Web-Identitätsverbunds in IAM finden Sie unterÜber Web-IdentitätsverbundimIAM User Guideaus.

Schritt 3: Abrufen eines Zugriffstokens für Anbieter nach der Anmeldung

Richten Sie die Anmeldung für Ihre Anwendung ein, indem Sie das SDK des Identitätsanbieters verwenden. Sie können ein JavaScript-SDK des Identitätsanbieters herunterladen und installieren, das Ihnen die Benutzeranmeldung mithilfe von OAuth oder OpenID ermöglicht. Weitere Informationen zum Herunterladen und Einrichten des SDK-Codes in Ihrer Anwendung finden Sie in der SDK-Dokumentation Ihres Identitätsanbieters:

Schritt 4: Abrufen temporärer Anmeldeinformationen

Nachdem Sie die Anwendung, Rollen und Ressourcenberechtigungen konfiguriert haben, fügen Sie Ihrer Anwendung den Code hinzu, um temporäre Anmeldeinformationen zu erhalten. Diese Anmeldeinformationen werden unter Verwendung des Web-Identitätsverbunds über AWS Security Token Service bereitgestellt. Benutzer melden sich beim Identitätsanbieter an, wodurch Ihnen ein Zugriffstoken bereitgestellt wird. Einrichten derAWS.WebIdentityCredentials-Objekt mithilfe des ARN für die IAM-Rolle, die Sie für diesen Identitätsanbieter erstellt haben:

AWS.config.credentials = new AWS.WebIdentityCredentials({ RoleArn: 'arn:aws:iam::<AWS_ACCOUNT_ID>:role/<WEB_IDENTITY_ROLE_NAME>', ProviderId: 'graph.facebook.com|www.amazon.com', // Omit this for Google WebIdentityToken: ACCESS_TOKEN // Access token from identity provider });

Serviceobjekte, die anschließend erstellt werden, verfügen über die entsprechenden Anmeldeinformationen. Objekte, die vor der Einrichtung der AWS.config.credentials-Eigenschaft erstellt wurden, verfügen nicht über die aktuellen Anmeldeinformationen.

Sie können AWS.WebIdentityCredentials auch vor dem Abrufen des Zugriffstokens erstellen. Auf diese Weise können Sie Serviceobjekte erstellen, die von den Anmeldeinformationen abhängen, bevor Sie das Zugriffstoken laden. Erstellen Sie hierzu das Anmeldeinformationsobjekt ohne den WebIdentityToken-Parameter:

AWS.config.credentials = new AWS.WebIdentityCredentials({ RoleArn: 'arn:aws:iam::<AWS_ACCOUNT_ID>:role/<WEB_IDENTITY_ROLE_NAME>', ProviderId: 'graph.facebook.com|www.amazon.com' // Omit this for Google }); // Create a service object var s3 = new AWS.S3;

Definieren Sie anschließend WebIdentityToken im Callback des SDK des Identitätsanbieters, das den Zugriffstoken enthält:

AWS.config.credentials.params.WebIdentityToken = accessToken;