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.
Gängige Szenarien
Anmerkung
Wir empfehlen, dass Sie von Ihren menschlichen Benutzern verlangen, dass sie beim Zugriff temporäre Anmeldeinformationen verwenden AWS. Haben Sie darüber nachgedacht, es zu verwenden AWS IAM Identity Center? Sie können IAM Identity Center verwenden, um den Zugriff auf mehrere Konten zentral zu verwalten AWS-Konten und Benutzern einen MFA geschützten Single-Sign-On-Zugriff auf alle ihnen zugewiesenen Konten von einem Ort aus zu gewähren. Mit IAM Identity Center können Sie Benutzeridentitäten in IAM Identity Center erstellen und verwalten oder ganz einfach eine Verbindung zu Ihrem bestehenden SAML 2.0-kompatiblen Identitätsanbieter herstellen. Weitere Informationen finden Sie unter Was ist IAM Identity Center? im AWS IAM Identity Center Benutzerhandbuch.
Sie können einen externen Identitätsanbieter (IdP) verwenden, um Benutzeridentitäten außerhalb AWS von. und des externen IdP zu verwalten. Ein externer IdP kann Identitätsinformationen entweder AWS mithilfe von OpenID Connect (OIDC) oder Security Assertion Markup Language () bereitstellen. SAML OIDCwird häufig verwendet, wenn eine Anwendung, die nicht ausgeführt wird, Zugriff auf Ressourcen AWS benötigt. AWS
Wenn Sie den Verbund mit einem externen IdP konfigurieren möchten, erstellen Sie einen IAM Identitätsanbieter, der AWS über den externen IdP und seine Konfiguration informiert. Dies schafft Vertrauen zwischen Ihrem AWS-Konto und dem externen IdP. Die folgenden Themen enthalten allgemeine Szenarien für die Verwendung von IAM Identitätsanbietern.
Amazon Cognito für mobile Apps
Die bevorzugte Methode zur Verwendung von OIDC Federation ist die Verwendung von Amazon Cognito
Damit die mobile App auf ihre AWS Ressourcen zugreifen kann, registriert sich Adele zunächst für eine Entwickler-ID bei der von ihr ausgewählten Person. IdPs Außerdem konfiguriert sie die Anwendung bei jedem dieser Anbieter. In ihrem Dokument AWS-Konto , das den Amazon S3 S3-Bucket und die DynamoDB-Tabelle für das Spiel enthält, verwendet Adele Amazon Cognito, um IAM Rollen zu erstellen, die genau definieren, welche Berechtigungen das Spiel benötigt. Wenn sie einen OIDC IdP verwendet, erstellt sie auch eine IAM OIDC Identitätsanbieter-Entität, um Vertrauen zwischen einem Amazon Cognito Cognito-Identitätspool in ihr AWS-Konto und dem IdP herzustellen.
Im Code der App ruft Adele die Anmeldeschnittstelle des zuvor konfigurierten Identitätsanbieters auf. Der IdP kümmert sich um alle Details, mit denen sich der Benutzer anmelden kann, und die App erhält vom Anbieter ein OAuth Zugriffstoken oder ein OIDC ID-Token. Adeles App kann diese Authentifizierungsinformationen gegen eine Reihe temporärer Sicherheitsanmeldedaten eintauschen, die aus einer AWS Zugriffsschlüssel-ID, einem geheimen Zugriffsschlüssel und einem Sitzungstoken bestehen. Die App kann diese Anmeldeinformationen dann verwenden, um auf Webdienste zuzugreifen, die von AWS angeboten werden. Dabei ist die App auf die Berechtigungen beschränkt, die in der angenommenen Rolle festgelegt wurden.
Die nachfolgende Abbildung zeigt eine vereinfachte Darstellung dieses Vorgangs mit Anmeldung über Login with Amazon als Identitätsanbieter. Für Schritt 2 kann die App auch Facebook, Google oder einen anderen OIDC kompatiblen IdP verwenden, aber das wird hier nicht angezeigt.
-
Ein Kunde startet Ihre App auf einem Mobilgerät. Er wird aufgefordert, sich anzumelden.
-
Die App verwendet die Anmeldung über Login with Amazon, um die Anmeldeinformationen des Benutzers zu überprüfen.
-
Die App verwendet die Amazon Cognito API Cognito-Operationen
GetId
undGetCredentialsForIdentity
tauscht das Login with Amazon ID-Token gegen ein Amazon Cognito Cognito-Token aus. Amazon Cognito, das so konfiguriert wurde, dass es Ihrem Login-with-Amazon-Projekt vertraut, generiert ein Token, das es für temporäre Sitzungs-Anmeldeinformationen mit AWS STS austauscht. -
Die App erhält temporäre Sicherheitsanmeldeinformationen von Amazon Cognito. Ihre App kann auch den Basic (Classic) -Workflow in Amazon Cognito verwenden, um Tokens von AWS STS Using abzurufen.
AssumeRoleWithWebIdentity
Weitere Informationen finden Sie unter Identitätspools (Verbundidentitäten) Authentifizierungsablauf im Amazon-Cognito-Entwicklerhandbuch. -
Über diese temporären Sicherheitsanmeldeinformationen kann die App auf alle AWS -Ressourcen zugreifen, die für die App benötigt werden. Über die mit den temporären Sicherheitsanmeldeinformationen verknüpfte Rolle sowie die ihr zugewiesenen Richtlinien wird genau festgelegt, welcher Zugriff gewährt wird.
Gehen Sie wie folgt vor, um Ihre App so zu konfigurieren, dass sie Amazon Cognito verwendet, um Benutzer zu authentifizieren und Ihrer App Zugriff auf Ressourcen zu AWS gewähren. Wie Sie dieses Szenario genau umsetzen, wird in der Dokumentation zu Amazon Cognito erläutert.
-
(Optional) Melden Sie sich als Entwickler mit Login with Amazon, Facebook, Google oder einem anderen OpenID Connect (OIDC) -kompatiblen IdP an und konfigurieren Sie eine oder mehrere Apps mit dem Anbieter. Dieser Schritt ist optional, da Amazon Cognito auch unauthentifizierten (Gast-)Zugang für Ihre Benutzer unterstützt.
-
Gehen Sie zu Amazon Cognito in der AWS Management Console
. Verwenden Sie den Amazon Cognito-Assistenten, um einen Identitätspool zu erstellen. Dabei handelt es sich um einen Container, den Amazon Cognito verwendet, um die Identitäten der Endbenutzer für Ihre Anwendungen zu organisieren. Identitäten-Pools können zwischen Apps geteilt werden. Wenn Sie einen Identitätspool einrichten, erstellt Amazon Cognito eine oder zwei IAM Rollen (eine für authentifizierte Identitäten und eine für nicht authentifizierte „Gast“ -Identitäten), die Berechtigungen für Amazon Cognito Cognito-Benutzer definieren. -
Integrieren Sie AWS
Amplify in Ihre App und importieren Sie die Dateien, die für die Verwendung von Amazon Cognito erforderlich sind. -
Erstellen Sie eine Instanz des Amazon Cognito Cognito-Anmeldeinformationsanbieters und übergeben Sie die Identitätspool-ID, Ihre AWS-Konto Nummer und den Amazon-Ressourcennamen (ARN) der Rollen, die Sie dem Identitätspool zugeordnet haben. Der Amazon Cognito-Assistent im AWS Management Console bietet Beispielcode, der Ihnen den Einstieg erleichtert.
-
Wenn Ihre App auf eine AWS Ressource zugreift, übergeben Sie die Credentials Provider-Instance an das Client-Objekt, das temporäre Sicherheitsanmeldedaten an den Client weitergibt. Die Berechtigungen für die Anmeldeinformationen basieren auf der Rolle bzw. den Rollen, die Sie zuvor definiert haben.
Weitere Informationen finden Sie unter:
OIDCVerband für mobile Apps
Die besten Ergebnisse erzielen Sie, wenn Sie Amazon Cognito als Identitätsbroker für fast alle OIDC Verbundszenarien verwenden. 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 sie manuell aufrufen AssumeRoleWithWebIdentity
API, können Sie sie weiterhin verwenden, und Ihre Apps funktionieren weiterhin einwandfrei.
Der Prozess für die Verwendung von OIDC Federation ohne Amazon Cognito folgt dieser allgemeinen Gliederung:
-
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. (Verschiedene IdPs verwenden unterschiedliche Terminologie für diesen Prozess. In dieser Gliederung wird der Begriff „Konfigurieren“ für den Prozess der Identifizierung Ihrer App mit dem IdP verwendet.) Jeder IdP gibt dir eine App-ID, die für diesen IdP eindeutig ist. Wenn du also dieselbe App mit mehreren konfigurierst IdPs, hat deine App mehrere Apps. IDs Sie können mehrere Apps mit jedem Anbieter konfigurieren.
Die folgenden externen Links bieten Informationen zur Verwendung einiger der häufig verwendeten Identitätsanbieter ()IdPs:
-
Add Facebook Login to Your App or Website
auf der Facebook-Entwickler-Website. -
Verwenden von OAuth 2.0 für die Anmeldung (OpenID Connect)
auf der Google-Entwicklerseite.
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 OIDC Identitätsanbieter integriert und stehen Ihnen zur Verfügung. Überspringen Sie den folgenden Schritt, und wechseln Sie direkt zum Erstellen neuer Rollen mit Ihrem Identitätsanbieter.
-
Wenn Sie einen anderen IdP als Google, Facebook oder Amazon verwenden, der mit Cognito kompatibel istOIDC, erstellen Sie dafür eine IAM Identitätsanbieter-Entität.
-
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 eineCondition
ein, die der vom Identitätsanbieter zugewiesenen App-ID entspricht. Beispiele von Rollen für verschiedene Anbieter sind in Eine Rolle für einen externen Identitätsanbieter (Federation) erstellen beschrieben. -
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. Beispielsweise kann sich die Authentifizierungsmethode einer Android-App 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.
-
Führen Sie in Ihrer App einen nicht signierten Aufruf an die
AssumeRoleWithWebIdentity
-Aktion durch, um temporäre Sicherheitsanmeldeinformationen anzufordern. In der Anfrage übergeben Sie das Authentifizierungstoken des IdP und geben den Amazon-Ressourcennamen (ARN) für die IAM Rolle an, die Sie für diesen IdP erstellt haben. 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 Anfrage angeben. 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. -
Mithilfe der temporären Sicherheitsanmeldedaten aus der
AssumeRoleWithWebIdentity
Antwort sendet Ihre App signierte Anfragen an AWS API Operationen. Die Benutzer-ID-Informationen des IdP können Benutzer in Ihrer App unterscheiden. Sie können beispielsweise Objekte in Amazon S3 S3-Ordnern ablegen, 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 AWS STS Hauptbenutzer verbundener Benutzersitzungen. -
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 anAssumeRoleWithWebIdentity
machen, da die Token des Identitätsanbieters normalerweise nach einer bestimmten Zeit ablaufen. Wenn Sie die AWS SDK für iOS oder die AWS SDK für Android verwenden, können Sie die Aktion A mazonSTSCredentials Providerverwenden, die die IAM temporären Anmeldeinformationen verwaltet und sie bei Bedarf aktualisiert.