Verwenden von OIDC-Verbund-API-Operationen für mobile Apps - AWS Identitäts- und Zugriffsverwaltung

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 OIDC-Verbund-API-Operationen für mobile Apps

Verwenden Sie Amazon Cognito als Identity Broker für fast alle OIDC-Verbundszenarien, um optimale Ergebnisse zu erzielen. Amazon Cognito ist einfach zu bedienen und bietet zusätzliche Funktionen wie anonymen (nicht authentifizierten) Zugriff und die Synchronisierung von Benutzerdaten über Geräte und Anbieter hinweg. Wenn Sie jedoch bereits eine App erstellt haben, die den OIDC-Verbund verwendet, indem Sie die AssumeRoleWithWebIdentity API manuell aufrufen, können Sie sie weiterhin verwenden und Ihre Apps funktionieren weiterhin gut.

Der Prozess zur Verwendung des OIDC-Verbunds ohne Amazon Cognito folgt dieser allgemeinen Übersicht:

  1. Melden Sie sich als Entwickler über den externen Identitätsanbieter (Identity Provider, IdP) an und konfigurieren Sie Ihre App mit dem Identitätsanbieter, der Ihnen eine eindeutige ID für Ihre App übermittelt. (Unterschiedliche IdPs verwenden für diesen Prozess unterschiedliche Terminologie. In dieser Übersicht wird der Begriff Configure verwendet, um Ihre App beim IdP.) Jeder IdP gibt Ihnen eine App-ID, die für diesen IdP eindeutig ist. Wenn Sie also dieselbe App mit mehreren konfigurieren IdPs, hat Ihre App mehrere App-IDs. Sie können mehrere Apps mit jedem Anbieter konfigurieren.

    Die folgenden externen Links enthalten Informationen zur Verwendung einiger der häufig verwendeten Identitätsanbieter (IdPs):

    Wichtig

    Wenn Sie einen OIDC-Identitätsanbieter von Google, Facebook oder Amazon Cognito verwenden, erstellen Sie keinen separaten IAM-Identitätsanbieter in der AWS Management Console. AWS hat diese integrierten OIDC-Identitätsanbieter und steht Ihnen zur Verwendung zur Verfügung. Überspringen Sie den folgenden Schritt, und wechseln Sie direkt zum Erstellen neuer Rollen mit Ihrem Identitätsanbieter.

  2. Wenn Sie einen anderen IdentiIdP als Google, Facebook oder Amazon Cognito verwenden, der mit OIDC kompatibel ist, erstellen Sie dafür eine IAM-Identitätsanbieter-Entität.

  3. Erstellen Sie in IAM eine oder mehrere Rollen. Definieren Sie für jede Rolle, wer die Rolle übernehmen kann (die Vertrauensrichtlinie), und welche Berechtigungen die Benutzer der App haben sollen (die Berechtigungsrichtlinie). In der Regel erstellen Sie eine Rolle für jeden Identitätsanbieter, den die Anwendung unterstützt. Sie können beispielsweise eine Rolle erstellen, die von einer Anwendung übernommen wird, wenn sich der Benutzer über Login with Amazon anmeldet, eine zweite Rolle für die gleiche Anwendung, in der der Benutzer sich mit Facebook anmeldet, und eine dritte Rolle für die Anwendung, in der sich der Benutzer mit Google angemeldet. Für die Vertrauensbeziehung geben Sie den Identitätsanbieter (wie Amazon.com) als Principal (die vertrauenswürdigen Entität) an und schließen eine Condition ein, die der vom Identitätsanbieter zugewiesenen App-ID entspricht. Beispiele von Rollen für verschiedene Anbieter sind in Erstellen von Rollen für externe Identitätsanbieter (Verbund) beschrieben.

  4. Authentifizieren Sie Ihre Benutzer in der Anwendung mit dem Identitätsanbieter. Die Einzelheiten zur Vorgehensweise unterscheiden sich sowohl nach Maßgabe des verwendeten Identitätsanbieters (Login with Amazon, Facebook oder Google) als auch der Plattform, auf der die App ausgeführt wird. Die Authentifizierungsmethode einer Android-App kann sich beispielsweise von der einer iOS-App oder einer JavaScript-basierten Web-App unterscheiden.

    Wenn der Benutzer nicht bereits angemeldet haben, zeigt der Identitätsanbieter in der Regel eine Anmeldeseite an. Nachdem der Identitätsanbieter den Benutzer authentifiziert hat, gibt er einen Authentifizierungs-Token mit Informationen über den Benutzer an Ihre App zurück. Die Informationen hängt davon ab, was der Identitätsanbieter bereitstellt und welche Informationen der Benutzer weitergeben möchte. Sie können diese Informationen in Ihrer App verwenden.

  5. Führen Sie in Ihrer App einen nicht signierten Aufruf an die AssumeRoleWithWebIdentity-Aktion durch, um temporäre Sicherheitsanmeldeinformationen anzufordern. In der Anforderung übergeben Sie das Authentifizierungstoken des IdP und geben den Amazon-Ressourcennamen (ARN) für die IAM-Rolle an, die Sie für diesen IdP. AWS überprüft, ob das Token vertrauenswürdig und gültig ist, und gibt in diesem Fall temporäre Sicherheitsanmeldeinformationen an Ihre App zurück, die über die Berechtigungen für die Rolle verfügen, die Sie in der Anforderung benennen. Die Antwort umfasst auch Metadaten über den Benutzer vom Identitätsanbieter, wie z. B. die eindeutige Benutzer-ID, die der Identitätsanbieter dem Benutzer zuweist.

  6. Unter Verwendung der temporären Sicherheitsanmeldeinformationen aus der AssumeRoleWithWebIdentity Antwort stellt Ihre App signierte Anforderungen an AWS -API-Operationen. Die Benutzer-ID-Informationen des Identitätsanbieters können Benutzer in Ihrer App unterscheiden. Sie können beispielsweise Objekte in Amazon S3-Ordner legen, die die Benutzer-ID als Präfixe oder Suffixe enthalten. Dadurch können Sie Richtlinien zur Zugriffskontrolle erstellen, die den Ordner sperren, sodass nur der Benutzer mit der entsprechenden ID darauf zugreifen kann. Weitere Informationen finden Sie unter Identifizieren von Benutzern mit OIDC-Verbund an späterer Stelle in diesem Thema.

  7. Ihre App sollte die temporären Sicherheitsanmeldeinformationen zwischenspeichern, sodass Sie nicht jedes Mal, wenn die App eine Anforderung an AWS machen muss, neue abrufen müssen. Die Anmeldeinformationen sind standardmäßig eine Stunde gültig. Wenn die Anmeldeinformationen abgelaufen sind (oder davor), rufen Sie AssumeRoleWithWebIdentity erneut auf, um einen neuen Satz an temporären Sicherheitsanmeldeinformationen abzurufen. Abhängig vom Identitätsanbieter und der Vorgehensweise beim Verwalten seiner Token müssen Sie möglicherweise das Token aktualisieren, bevor Sie einen neuen Aufruf an AssumeRoleWithWebIdentity machen, da die Token des Identitätsanbieters normalerweise nach einer bestimmten Zeit ablaufen. Wenn Sie das AWS SDK für iOS oder das AWS SDK für Android verwenden, können Sie die AmazonSTSCredentialsProvider-Aktion verwenden, die die temporären IAM-Anmeldeinformationen verwaltet, einschließlich deren Aktualisierung nach Bedarf.