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.
Beispielanwendung für Identitätspools
Der häufigste Anwendungsfall für Amazon Cognito Cognito-Identitätspools besteht darin, Benutzer aus mehreren Anmeldesystemen zusammenzuführen und temporäre AWS Anmeldeinformationen mit eingeschränktem Zugriff direkt an den Client zu senden. Dadurch entfällt die Notwendigkeit, einen Credential-Broker für Zugriffsberechtigungen auf Ihre Ressourcen einzurichten. AWS Möglicherweise müssen Sie Benutzern die Möglichkeit geben, sich mit ihren Social-Media-Konten anzumelden und auf App-Assets von Amazon S3 für Ihre mobile Anwendung zuzugreifen. Identitätspools stellen Benutzern, die sich bei Benutzerpools anmelden, auch Anmeldeinformationen zur Verfügung.
In diesem Tutorial erstellen Sie eine Webanwendung, mit der Sie temporäre Authentifizierungs- und Gastanmeldedaten in den erweiterten und grundlegenden Authentifizierungsabläufen mit unterstützten Identitätsanbietern (IdPs) in Identitätspools abrufen können. Wenn Sie bereits Erfahrung in der Webentwicklung haben, laden Sie die Beispiel-App von GitHub herunter.
Laden Sie die Beispielanwendung von herunter GitHub
Diese Beispielanwendung demonstriert die folgenden Funktionen von Amazon Cognito Cognito-Identitätspools:
- Die Authentifizierung erfolgt in Identitätspools
-
- Implementierung des (nicht authentifizierten) Gastzugriffs
-
- Integration mit unterstützten Identitätsanbietern
-
-
Soziale Netzwerke IdPs (Facebook, Amazon, Twitter, Apple und Google) für den Zugang von Verbrauchern
-
Enterprise IdPs (über OpenID Connect oder SAML) für Unternehmensanwender
-
Amazon Cognito-Benutzerpools
- AWS Verwaltung von Anmeldeinformationen
-
Nachdem Sie die Anwendung auf Ihrem Entwicklungs-Webserver eingerichtet und in einem Browser darauf zugegriffen haben, werden Ihnen die folgenden Optionen angezeigt.
Voraussetzungen
Bevor Sie beginnen, müssen Sie die folgenden Ressourcen konfigurieren.
-
Ein AWS Konto mit Zugriff auf Amazon Cognito. Wenn Sie kein AWS Konto haben, folgen Sie den Anweisungen unterErste Schritte mit AWS.
-
Python 3.8 oder höher ist auf Ihrem Entwicklungscomputer installiert.
-
GitHub Zugriff.
-
AWS Anmeldeinformationen, die mit Berechtigungen zum Stellen authentifizierter Anfragen an Amazon Cognito APIs konfiguriert sind. Diese Anmeldeinformationen sind für die Entwicklerauthentifizierung erforderlich.
Weitere Informationen zur Implementierung von AWS Anmeldeinformationen und zum Identitätspoolverbund in Ihrem speziellen SDK finden Sie unterAbrufen von Anmeldeinformationen.
Einrichtung des Authentifizierungsanbieters
Um optimale Ergebnisse mit dieser Anwendung zu erzielen, richten Sie einen oder mehrere externe Identitätsanbieter (IdPs) oder Amazon Cognito Cognito-Benutzerpools ein und integrieren Sie sie in Ihren Amazon Cognito Cognito-Identitätspool. Nachdem Sie die Voraussetzungen erfüllt haben und bevor Sie diese Demo-Anwendung ausführen, wählen Sie aus, welche Identitätsanbieter konfiguriert werden sollen. Die Amazon Cognito Cognito-Konsole führt Sie durch den Prozess der Konfiguration von Identitätspools und Anbietern.
- Amazon Cognito-Benutzerpools
-
- Anbieter sozialer Identitäten
-
- Open ID Connect (OIDC)-Anbieter
-
- SAML-Anbieter
-
Für diese Demo-Anwendung müssen Sie nicht alle unterstützten Identitätsanbieter einrichten. Sie können mit einem beginnen, der Ihrem Anwendungsfall entspricht. Jeder Link enthält detaillierte Konfigurationsanweisungen.
Stellen Sie die Demo-Anwendung bereit
Klonen Sie das Repository
-
Öffnen Sie ein Terminal-Fenster.
-
Klonen Sie das aws-doc-sdk-examples Repository oder rufen Sie diesen Ordner auf andere Weise im Repository ab.
git clone https://github.com/awsdocs/aws-doc-sdk-examples.git
-
Navigieren Sie zum -Projektverzeichnis.
cd python/example_code/cognito/scenarios/identity_pools_example_demo/web
Erstellen eines Identitäten-Pools
Um einen Amazon Cognito Cognito-Identitätspool für Ihre Anwendung zu erstellen, folgen Sie den Anweisungen unterÜbersicht über die Identity-Pools-Konsole.
Um einen Identitätspool für die Demo-Anwendung zu konfigurieren
-
Öffnen Sie die Amazon-Cognito-Konsole.
-
Wählen Sie im linken Navigationsmenü Identitätspools aus. Wählen Sie einen vorhandenen Identitätspool oder erstellen Sie einen neuen.
-
Aktivieren Sie unter Benutzerzugriff die Optionen Authentifizierter Zugriff und Gastzugriff. Konfigurieren Sie eine neue oder bestehende IAM-Rolle und weisen Sie ihr die Berechtigungen zu, die Sie den einzelnen Benutzertypen gewähren möchten.
-
Richten Sie unter Benutzerzugriff alle Identitätsanbieter ein, die Sie konfigurieren möchten.
-
Aktivieren Sie unter Eigenschaften des Identitätspools die Standardauthentifizierung (klassisch).
-
Öffnen Sie in Ihrem Browser die Konsole für Ihren Identitätspool. Sie werden die Identitätspool-ID und andere Konfigurationsinformationen in Ihrem Anwendungs-Setup verwenden.
Die folgenden Schritte führen Sie durch die Ersteinrichtung Ihrer Demo-Anwendung.
Um die Demo-Anwendung zu konfigurieren
-
Öffnen Sie eine Befehlszeile python/example_code/cognito/scenarios/identity_pools_example_demo/web in Ihrem aws-doc-sdk-examples Clone.
-
Erstellen Sie eine .env Datei, indem Sie die Beispiel-Umgebungsdatei kopieren.
cp .env.example .env
-
Öffnen Sie die Datei .env in einem Text-Editor. Ersetzen Sie die Beispielwerte in der Datei durch Ihre eigenen Konfigurationswerte.
-
Installieren Sie Backend-Abhängigkeiten.
pip install -r requirements.txt
-
Starten Sie den Backend-Server:
cd backend
python oauth_server.py
-
Öffnen Sie ein neues Terminalfenster, navigieren Sie zum Projektverzeichnis und starten Sie den Frontend-Server:
cd frontend
python -m http.server 8001
-
Öffnen Sie Ihren Browser für die Anwendung unter http://localhost:8001. Ihr Browser zeigt die Benutzeroberfläche der Demo-Anwendung an, mit der Sie die Authentifizierung von Identitätspools testen können.
Erkunden Sie die Authentifizierungsmethoden in Ihrem Identitätspool
Dieser Abschnitt führt Sie durch grundlegende und erweiterte Authentifizierungsabläufe mit der Demo-Anwendung Amazon Cognito Identity Pools. In dieser Demo erfahren Sie, wie Identitätspools mit verschiedenen Identitätsanbietern zusammenarbeiten, um temporäre AWS Anmeldeinformationen für Ihre Anwendungsbenutzer bereitzustellen.
Im Abschnitt Interaktive Demo der Beispielanwendung wählen Sie zunächst zwischen zwei Zugriffsarten, die von Identitätspools unterstützt werden.
- Nicht authentifizierter (Gast-) Zugriff
-
Geben Sie Benutzern, die sich noch nicht authentifiziert haben, AWS Anmeldeinformationen an.
- Authentifizierter Zugriff
-
Tauschen Sie Identitätsanbieter-Token gegen AWS Anmeldeinformationen mit dem vollen Umfang verfügbarer Berechtigungen aus. Wählen Sie aus den in Ihrer .env Datei konfigurierten Identitätsanbietern einen Identitätsanbieter aus.
In diesem Schritt wird gezeigt, wie Sie mithilfe der Gastzugriffsfunktion Ihres Identitätspools temporäre AWS Anmeldeinformationen für nicht authentifizierte (Gast-) Benutzer abrufen können. In der Demo-Anwendung testen Sie sowohl erweiterte als auch grundlegende Abläufe, um zu sehen, wie Identitätspools Anmeldeinformationen ausgeben, ohne dass eine Benutzeranmeldung erforderlich ist. Der Gastzugriff verwendet dieselbe API-Sequenz wie der authentifizierte Zugriff, jedoch ohne Bereitstellung von Identitätsanbieter-Token (wie OAuth Token von Google, Facebook oder SAML-Assertionen von Unternehmensanbietern).
Lesen Sie weiter, wenn Sie nach Informationen suchen, wie Sie Benutzern eingeschränkten AWS
Zugriff gewähren können, ohne dass eine Authentifizierung erforderlich ist. Nachdem Sie den Gastzugriff implementiert haben, erfahren Sie, wie Sie anonymen Benutzern auf sichere Weise AWS Anmeldeinformationen zur Verfügung stellen können, und Sie werden die Unterschiede zwischen den beiden Authentifizierungsabläufen verstehen.
Bei einem nicht authentifizierten Zugriff können Anmeldeinformationen für jeden Benutzer mit Internetzugang ausgestellt werden. Daher eignet er sich am besten für AWS Ressourcen, die nur minimale Sicherheit erfordern, wie z. B. öffentliche Ressourcen APIs und Grafikdateien. Bevor Sie mit diesem Schritt fortfahren, überprüfen Sie, ob Sie Ihren Identitätspool mit aktiviertem Gastzugriff konfiguriert haben, und stellen Sie sicher, dass die richtigen IAM-Richtlinien zur Einschränkung von Berechtigungen vorhanden sind.
- Guest access with enhanced flow
-
Der erweiterte Ablauf ist ein optimierter Ansatz zum Abrufen von AWS
Anmeldeinformationen für nicht authentifizierte Benutzer mit zwei API-Anfragen.
Um den Gastzugriff mit dem erweiterten Ablauf zu testen
-
Navigieren Sie in der Demo-Anwendung zum Bereich Interaktive Demo
-
Wählen Sie die Registerkarte Gastzugriff.
-
Wählen Sie die Registerkarte „Verbesserter Ablauf“.
-
Wählen Sie Gastzugriff testen aus.
-
Die App bezieht temporäre AWS Anmeldeinformationen aus Ihren Identitätspools ohne zusätzliche Authentifizierungsaufforderungen.
-
Nach erfolgreicher Authentifizierung wird auf der Weboberfläche das Ergebnisfenster angezeigt, und Sie haben zwei Möglichkeiten, diese zu erkunden:
-
Schaltfläche „Nur Anmeldeinformationen anzeigen“: Wählen Sie diese Schaltfläche, wenn Sie direkt temporäre AWS Anmeldeinformationen sehen möchten, die ohne die Details zum API-Flow generiert wurden.
{
"IdentityId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE11111",
"Credentials": {
"AccessKeyId": "AKIAIOSFODNN7EXAMPLE",
"SecretAccessKey": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY",
"SessionToken": "IQoJb3JpZ2luX2VjEEXAMPLE......",
"Expiration": "2025-08-07T00:58:21-07:00"
}
}
-
Schaltfläche „Detaillierten API-Flow anzeigen“: Wählen Sie diese Schaltfläche, wenn Sie die step-by-step API-Anfragen sehen möchten.
-
GetId()API-Anfrage mit IhremidentityPoolId. Für den Gastzugriff sind keine Authentifizierungstoken erforderlich
{
"IdentityPoolId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE11111"
}
Falls gültig, findet oder erstellt es die des Benutzers und gibt sie zurückIdentityID. Eine Beispielantwort sieht wie folgt aus:
{
"IdentityId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE11111"
}
-
GetCredentialsForIdentity()mit der zurückgegebenenidentityPoolId.
POST GetCredentialsForIdentity
{
"IdentityId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE11111"
}
Cognito validiert den Gastzugriff, übernimmt intern die nicht authentifizierte Rolle und gibt temporäre AWS STS AWS-Anmeldeinformationen zurück. (Keine IAM-Authentifizierung bei diesem Anruf; Rollenvertrauen muss dies zulassen.) cognito-identity-amazonzaws.com
{
"IdentityId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE11111",
"Credentials": {
"AccessKeyId": "AKIAIOSFODNN7EXAMPLE",
"SecretAccessKey": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY",
"SessionToken": "IQoJb3JpZ2luX2VjEEXAMPLE......",
"Expiration": "2025-08-07T00:58:21-07:00"
}
}
- Guest access with basic flow
-
Der grundlegende Ablauf bietet eine detaillierte Kontrolle über den Authentifizierungsprozess mit separaten API-Anfragen für den Identitätsabruf und die Generierung von Anmeldeinformationen.
Um den Gastzugriff mit dem Basisablauf zu testen
-
Navigieren Sie in der Demo-Anwendung zum Bereich Interaktive Demo
-
Wählen Sie die Registerkarte Gastzugriff.
-
Wählen Sie den Tab Basic Flow.
-
Wählen Sie Gastzugriff testen aus.
-
Die App bezieht temporäre AWS Anmeldeinformationen aus Ihren Identitätspools ohne zusätzliche Authentifizierungsaufforderungen.
-
Nach erfolgreicher Authentifizierung wird auf der Weboberfläche das Ergebnisfenster angezeigt, und Sie haben zwei Möglichkeiten, diese zu erkunden.
-
Schaltfläche „Nur Anmeldeinformationen anzeigen“: Wählen Sie diese Schaltfläche, wenn Sie direkt temporäre AWS Anmeldeinformationen sehen möchten, die ohne die Details zum API-Flow generiert wurden.
{
"IdentityId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE22222",
"Credentials": {
"AccessKeyId": "AKIAIOSFODNN7EXAMPLE",
"SecretAccessKey": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY",
"SessionToken": "IQoJb3JpZ2luX2VjEEXAMPLE......",
"Expiration": "2025-08-12T13:36:17-07:00"
}
}
-
Schaltfläche „Detaillierten API-Flow anzeigen“: Wählen Sie diese Schaltfläche, wenn Sie die step-by-step API-Anfragen sehen möchten.
-
GetId()API-Anfrage mit Ihrer Identitätspool-ID. Für den Gastzugriff sind keine Authentifizierungstoken erforderlich.
POST GetId
{
"IdentityPoolId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE11111"
}
Falls gültig, findet oder erstellt es die des Benutzers und gibt sie zurückIdentityID. Eine Beispielantwort sieht wie folgt aus:
{
"IdentityId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE22222"
}
-
GetOpenIdToken()mit der zurückgegebenen IdentityID und derselben Logins Map
POST GetOpenIdToken
{
"IdentityId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE22222"
}
Antwort:
{
"IdentityId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE22222",
"Token": "eyJraWQiOiJFWAMPLE......"
}
Was passiert in diesem Schritt: Amazon Cognito gibt ein kurzlebiges OpenID Connect-Web-Identitätstoken von cognito-identity.amazonaws.com aus, das dies repräsentiert. IdentityId Das Token enthält OIDC-Ansprüche, die AWS STS bewertet werden, darunter aud (Ihre Identitätspool-ID) und amr (authentifiziert oder nicht authentifiziert). Die Vertrauensrichtlinie Ihrer IAM-Rolle muss diese Ansprüche vorschreiben.
-
AssumeRoleWithWebIdentity()- Ihre App ruft AWS STS direkt auf, um das Amazon Cognito OpenID-Token gegen temporäre Anmeldeinformationen auszutauschen AWS
POST sts:AssumeRoleWithWebIdentity
{
"RoleArn": "arn:aws:iam::111122223333:role/Cognito_IdentityPoolUnauth_Role",
"WebIdentityToken": "eyJraWQiOiJFWAMPLE......"
}
Antwort:
{
"Credentials": {
"AccessKeyId": "AKIAIOSFODNN7EXAMPLE",
"SecretAccessKey": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY",
"SessionToken": "FwoGZXIvYXdzEEXAMPLE......"
}
}
Was passiert in diesem Schritt: Nach der Validierung: Gibt temporäre Anmeldeinformationen zurück AWS
Verwenden Sie die temporären Anmeldeinformationen
Diese temporären Anmeldeinformationen funktionieren wie AWS Standardanmeldedaten, verfügen jedoch über eingeschränkte Berechtigungen, die durch die nicht authentifizierte IAM-Rolle Ihres Identitätspools definiert werden. Sie können sie mit jedem AWS SDK oder verwenden. AWS CLI Weitere Informationen zur Konfiguration AWS SDKs mit Anmeldeinformationen finden Sie unter Standardisierte Anbieter von Anmeldeinformationen im Referenzhandbuch AWS SDKs und im Tools-Referenzhandbuch.
Die folgenden Beispiele stellen keine vollständige Liste dar, sie zeigen jedoch, wie die Gastfunktion eines Identitätspools die Benutzererfahrung verbessern kann.
In den folgenden Beispielen werden Anbieter von Anmeldeinformationen für den eingeschränkten Amazon S3 S3-Zugriff als Gastbenutzer konfiguriert.
- Python
-
# Example: Using credentials with boto3
import boto3
# Configure client with temporary credentials
s3_client = boto3.client(
's3',
aws_access_key_id='AKIAIOSFODNN7EXAMPLE',
aws_secret_access_key='wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY',
aws_session_token='IQoJb3JpZ2luX2VjEEXAMPLE......'
)
# Make API requests within IAM role permissions
response = s3_client.list_objects_v2(Bucket='my-public-bucket')
# Access public content
for obj in response.get('Contents', []):
print(f"File: {obj['Key']}, Size: {obj['Size']} bytes")
- JavaScript
-
// Example: Accessing public content
import { S3Client, GetObjectCommand } from "@aws-sdk/client-s3";
const s3Client = new S3Client({
region: "us-east-1",
credentials: {
accessKeyId: 'AKIAIOSFODNN7EXAMPLE',
secretAccessKey: 'wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY',
sessionToken: 'IQoJb3JpZ2luX2VjEEXAMPLE......'
}
});
// Access public images or documents
const response = await s3Client.send(new GetObjectCommand({
Bucket: 'my-public-content',
Key: 'product-catalog.pdf'
}));
In den folgenden Beispielen wird der schreibgeschützte Zugriff auf Amazon DynamoDB als Gastbenutzer verwendet.
- Python
-
# Example: Limited app functionality for trial users
import boto3
dynamodb = boto3.client(
'dynamodb',
aws_access_key_id='AKIAIOSFODNN7EXAMPLE',
aws_secret_access_key='wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY',
aws_session_token='IQoJb3JpZ2luX2VjEEXAMPLE......'
)
# Allow guest users to view sample data (limited to 5 items)
response = dynamodb.scan(TableName='SampleProducts', Limit=5)
- JavaScript
-
// Example: Limited app functionality for trial users
import { DynamoDBClient, ScanCommand } from "@aws-sdk/client-dynamodb";
const dynamodbClient = new DynamoDBClient({
region: "us-east-1",
credentials: {
accessKeyId: 'AKIAIOSFODNN7EXAMPLE',
secretAccessKey: 'wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY',
sessionToken: 'IQoJb3JpZ2luX2VjEEXAMPLE......'
}
});
// Allow guest users to view sample data (limited to 5 items)
const response = await dynamodbClient.send(new ScanCommand({
TableName: 'SampleProducts',
Limit: 5
}));
In diesem Schritt wird der allgemeine Ablauf der Nutzung von Anbietern sozialer Identitäten mit Amazon Cognito Cognito-Identitätspools untersucht. Die soziale Authentifizierung bietet ein vertrautes Anmeldeerlebnis bei gleichzeitiger Wahrung der Sicherheit durch föderiertes Identitätsmanagement. Sie können sich bei einem Social Identity Provider (IdP) wie Google, Facebook und Amazon anmelden und dieses IdP-Token dann gegen temporäre AWS Anmeldeinformationen eintauschen. Die Integration von Twitter und Apple wird auch von Identitätspools unterstützt, in der Beispielanwendung jedoch nicht.
Der Identitätspool selbst ist kein Benutzerverzeichnis. Es speichert keine Passwörter oder Profilfelder. Stattdessen vertraut es bei der Authentifizierung des Benutzers IdPs auf externe Benutzer und konzentriert sich darauf, den bereits authentifizierten Benutzer zu autorisieren, AWS
Dienste direkt aufzurufen, indem Anmeldeinformationen für IAM-Rollen verkauft werden.
- Social identity provider with enhanced flow
-
In diesem Abschnitt wird gezeigt, wie Sie einen Social Identity Provider verwenden können, um einen Benutzer anzumelden und mithilfe des erweiterten Ablaufs das Provider-Token in einem Amazon Cognito Cognito-Identitätspool gegen temporäre Anmeldeinformationen zum Anfordern von AWS
Ressourcen auszutauschen.
Verwenden Sie Social Sign-In mit dem erweiterten Ablauf in der Beispielanwendung
-
Navigieren Sie in der Demo-Anwendung zum Bereich Interaktive Demo
-
Wählen Sie die Registerkarte Authentifizierter Zugriff.
-
Wählen Sie die Registerkarte Erweiterter Ablauf.
-
Wählen Sie einen unterstützten sozialen Anbieter, den Sie konfiguriert haben, z. B. Mit Google anmelden, Mit Facebook anmelden oder Mit Amazon anmelden.
-
Melden Sie sich an und stimmen Sie zu, Benutzerdaten mit der Anwendung zu teilen.
-
Der Anbieter leitet zurück zur Weiterleitungs-URI der App
-
Die App sendet das Provider-Token an Ihren Identitätspool und ruft temporäre AWS Anmeldeinformationen ab
-
Die App zeigt das Ergebnisfenster in der Weboberfläche an.
Nach erfolgreicher Authentifizierung wird auf der Weboberfläche das Ergebnisfenster angezeigt, und Sie haben zwei Möglichkeiten, diese zu erkunden:
-
Schaltfläche „Nur Anmeldeinformationen anzeigen“: Wählen Sie diese Schaltfläche, wenn Sie direkt temporäre AWS Anmeldeinformationen sehen möchten, die ohne die Details zum API-Flow generiert wurden.
{
"IdentityId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE22222",
"Credentials": {
"AccessKeyId": "AKIAIOSFODNN7EXAMPLE",
"SecretAccessKey": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY",
"SessionToken": "IQoJb3JpZ2luX2VjEEXAMPLE......",
"Expiration": "2025-08-12T13:36:17-07:00"
}
}
-
Schaltfläche „Detaillierten API-Flow anzeigen“: Wählen Sie diese Schaltfläche, wenn Sie die step-by-step API-Anfragen sehen möchten.
-
Die App meldet den Benutzer mit einem sozialen IdP an und erhält das Provider-Token. Identitätspools akzeptieren diese Artefakte von sozialen Anbietern:
| Identitätsanbieter |
Cognito-Anbieterschlüssel |
Zweck |
| Google |
accounts.google.com |
OAuth 2.0-Token von Google Sign-In |
| Facebook |
graph.facebook.com |
Greifen Sie über das Facebook-Login auf Token zu |
| Amazon |
www.amazon.com |
OAuth Tokens von Login with Amazon |
Nach erfolgreicher Authentifizierung beim sozialen Anbieter erhält Ihre App eine OAuth Antwort mit dem Zugriffstoken und anderen Authentifizierungsdetails:
{
"access_token": "ya29.A0AS3H6NEXAMPLE......",
"expires_in": 3599,
"scope": "openid https://www.examplesocial....",
"token_type": "Bearer",
"id_token": "eyJhbGciOiJSUzI1NiIsEXAMPLE......"
}
-
GetId()API-Anfrage mit Ihrer Identitätspool-ID und einer Logins Map, die Ihr Social Provider-Token enthält
POST GetId
{
"IdentityPoolId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE11111",
"Logins": {
"accounts.google.com": "eyJhbGciOiJSUzI1NiIsEXAMPLE......"
}
}
Antwort:
{
"IdentityId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE22222"
}
-
GetCredentialsForIdentity()mit der zurückgegebenen IdentityID und derselben Logins Map
POST GetCredentialsForIdentity
{
"IdentityId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE22222",
"Logins": {
"accounts.google.com": "eyJhbGciOiJSUzI1NiIsEXAMPLE......"
}
}
Antwort:
{
"Credentials": {
"AccessKeyId": "AKIAIOSFODNN7EXAMPLE",
"SecretAccessKey": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY",
"SessionToken": "IQoJb3JpZ2luX2VjEEXAMPLE......",
"Expiration": "2025-08-07T00:58:21-07:00"
},
"IdentityId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE22222"
}
Was ist passiert: Amazon Cognito hat das Token anhand des konfigurierten Anbieters validiert, basierend auf Ihrer Anbieterkonfiguration eine IAM-Rolle ausgewählt und in AWS STS Ihrem Namen angerufen. Ihr Identitätspool hat dann temporäre Anmeldeinformationen zurückgegeben.
- Social identity provider with basic flow
-
In diesem Abschnitt wird gezeigt, wie Sie einen Social Identity Provider verwenden können, um einen Benutzer anzumelden und mithilfe des Basisablaufs das Provider-Token in einem Amazon Cognito Cognito-Identitätspool gegen temporäre Anmeldeinformationen zum Aufrufen von AWS Diensten auszutauschen.
Verwenden Sie Social Sign-In mit dem Basisablauf in der Beispielanwendung
-
Navigieren Sie in der Demo-Anwendung zum Bereich Interaktive Demo
-
Wählen Sie die Registerkarte Authentifizierter Zugriff.
-
Wählen Sie die Registerkarte Basic Flow.
-
Wählen Sie einen unterstützten sozialen Anbieter, den Sie konfiguriert haben, z. B. Mit Google anmelden, Mit Facebook anmelden oder Mit Amazon anmelden.
-
Melden Sie sich an und stimmen Sie zu, Benutzerdaten mit der Anwendung zu teilen.
-
Der Anbieter leitet zurück zur Weiterleitungs-URI der App
-
Die App sendet das Provider-Token an Ihren Identitätspool und ruft temporäre AWS Anmeldeinformationen ab
-
Die App zeigt das Ergebnisfenster in der Weboberfläche an.
Nach erfolgreicher Authentifizierung wird auf der Weboberfläche das Ergebnisfenster angezeigt, und Sie haben zwei Möglichkeiten, diese zu erkunden:
-
Schaltfläche „Nur Anmeldeinformationen anzeigen“: Wählen Sie diese Schaltfläche, wenn Sie direkt temporäre AWS Anmeldeinformationen sehen möchten, die ohne die Details zum API-Flow generiert wurden.
{
"IdentityId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE22222",
"Credentials": {
"AccessKeyId": "AKIAIOSFODNN7EXAMPLE",
"SecretAccessKey": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY",
"SessionToken": "IQoJb3JpZ2luX2VjEEXAMPLE......",
"Expiration": "2025-08-12T13:36:17-07:00"
}
}
-
Schaltfläche „Detaillierten API-Flow anzeigen“: Wählen Sie diese Schaltfläche, wenn Sie die step-by-step API-Anfragen sehen möchten.
-
Die App meldet den Benutzer mit einem sozialen IdP an und erhält das Provider-Token. Identitätspools akzeptieren diese Artefakte von sozialen Anbietern:
| Identitätsanbieter |
Cognito-Anbieterschlüssel |
Zweck |
| Google |
accounts.google.com |
OAuth 2.0-Token von Google Sign-In |
| Facebook |
graph.facebook.com |
Greifen Sie über das Facebook-Login auf Token zu |
| Amazon |
www.amazon.com |
OAuth Tokens von Login with Amazon |
Nach erfolgreicher Authentifizierung beim sozialen Anbieter erhält Ihre App eine OAuth Antwort mit dem Zugriffstoken und anderen Authentifizierungsdetails:
{
"access_token": "ya29.A0AS3H6NEXAMPLE......",
"expires_in": 3599,
"scope": "openid https://www.examplesocial....",
"token_type": "Bearer",
"id_token": "eyJhbGciOiJSUzI1NiIsEXAMPLE......"
}
-
GetId()API-Anfrage mit Ihrer Identitätspool-ID und einer Logins Map, die Ihr Social Provider-Token enthält
POST GetId
{
"IdentityPoolId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE11111",
"Logins": {
"accounts.google.com": "token..."
}
}
Antwort:
{
"IdentityId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE22222"
}
-
GetOpenIdToken()mit der zurückgegebenen IdentityID und derselben Logins-Map
POST GetOpenIdToken
{
"IdentityId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE22222",
"Logins": {
"accounts.google.com": "token..."
}
}
Antwort:
{
"IdentityId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE22222",
"Token": "eyJraWQiOiJFWAMPLE......"
}
-
AssumeRoleWithWebIdentity()mit dem OpenID-Token
POST AssumeRoleWithWebIdentity
{
"RoleArn": "arn:aws:iam::111122223333:role/Cognito_IdentityPoolAuth_Role",
"WebIdentityToken": "eyJraWQiOiJFWAMPLE......"
}
Antwort:
{
"Credentials": {
"AccessKeyId": "AKIAIOSFODNN7EXAMPLE",
"SecretAccessKey": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY",
"SessionToken": "IQoJb3JpZ2luX2VjEEXAMPLE......",
"Expiration": "2025-08-12T14:36:17-07:00"
}
}
Was ist passiert: Amazon Cognito validierte das Token anhand des konfigurierten Anbieters und gab ein OpenID-Token aus. Die Anwendung wurde AWS STS direkt aufgerufen, um eine IAM-Rolle zu übernehmen und temporäre Anmeldeinformationen zu erhalten.
Verstehen Sie den sozialen Zugang
-
Soziale Benutzer erhalten temporäre AWS Anmeldeinformationen über Amazon Cognito Cognito-Identitätspools, nachdem sie sich bei ihrem sozialen Anbieter authentifiziert haben.
-
Jeder authentifizierte Benutzer erhält eine eindeutige Identitäts-ID, die für alle Sitzungen gültig ist.
-
Diese Anmeldeinformationen sind mit einer IAM-Rolle verknüpft, die speziell für den authentifizierten Zugriff entwickelt wurde und umfassendere Berechtigungen bietet als der Gastzugriff.
-
Tokens von sozialen Anbietern werden gegen AWS Anmeldeinformationen ausgetauscht, wobei die Benutzeridentität und die Benutzerberechtigungen gewahrt bleiben.
In diesem Schritt wird die Amazon Cognito Cognito-Authentifizierung mit der vom Benutzerpool verwalteten Anmeldeintegration untersucht. Wenn Sie einen Benutzerpool als IdP mit einem Identitätspool verknüpfen, autorisieren Benutzerpool-Token Ihren Identitätspool, temporäre Anmeldeinformationen auszustellen.
- User pool authentication with enhanced flow
-
Der erweiterte Ablauf bietet einen optimierten Ansatz zum Abrufen von AWS
Anmeldeinformationen über Amazon Cognito Cognito-Identitätspools mit einer einzigen API-Anfrage.
Verwenden Sie die Amazon Cognito Cognito-Benutzerpool-Authentifizierung mit dem Identity Pool Enhanced Flow
-
Navigieren Sie in der Demo-Anwendung zum Bereich Interaktive Demo
-
Wählen Sie die Registerkarte Authentifizierter Zugriff.
-
Wählen Sie die Registerkarte Erweiterter Ablauf.
-
Wählen Sie Mit Amazon Cognito Cognito-Benutzerpools anmelden
-
Schließen Sie die Anmeldung mit Ihrem Benutzernamen und Passwort bei der verwalteten Anmeldung ab.
-
Der Benutzerpool leitet mit einem Autorisierungscode zurück zu Ihrer Anwendungsweiterleitungs-URI.
-
Die Anwendung tauscht den Autorisierungscode mit Ihrem Benutzerpool gegen JSON-Webtoken aus.
-
Die Anwendung tauscht das ID-Token mit Ihrem Identitätspool gegen temporäre AWS Anmeldeinformationen aus
-
Die App zeigt das Ergebnisfenster in der Weboberfläche an
Nach erfolgreicher Authentifizierung wird auf der Weboberfläche das Ergebnisfenster angezeigt, und Sie haben zwei Möglichkeiten, diese zu erkunden:
-
Schaltfläche „Nur Anmeldeinformationen anzeigen“: Wählen Sie diese Schaltfläche, wenn Sie direkt temporäre AWS Anmeldeinformationen sehen möchten, die ohne die Details zum API-Flow generiert wurden.
{
"IdentityId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE22222",
"Credentials": {
"AccessKeyId": "AKIAIOSFODNN7EXAMPLE",
"SecretAccessKey": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY",
"SessionToken": "IQoJb3JpZ2luX2VjEEXAMPLE......",
"Expiration": "2025-08-12T13:36:17-07:00"
}
}
-
Schaltfläche „Detaillierten API-Flow anzeigen“: Wählen Sie diese Schaltfläche, wenn Sie die step-by-step API-Anfragen sehen möchten.
-
Die App meldet den Benutzer mit einem Amazon Cognito an. Nach erfolgreicher Authentifizierung mit dem Benutzerpool erhält Ihre App eine OAuth 2.0-Antwort, die das ID-Token (JWT) enthält. Identitätspools akzeptieren JWT-ID-Token von Benutzerpools, die dieses Anbieterschlüsselformat verwenden:
| Identitätsanbieter |
Cognito-Anbieterschlüssel |
Zweck |
| Amazon Cognito-Benutzerpool |
cognito-idp.{region}.amazonaws.com/{user-pool-id} |
JWT-ID-Token aus Amazon Cognito Cognito-Benutzerpools |
Nach erfolgreicher Authentifizierung mit dem Benutzerpool erhält Ihre App eine OAuth 2.0-Antwort, die das ID-Token (JWT) enthält:
{
"id_token": "eyJraWQiOiJFWAMPLE......",
"token_type": "Bearer",
"expires_in": 3600
}
-
GetId()API-Anfrage mit Ihrer identityPoolId und einer Logins Map, die Ihren Benutzerpool-Anbieterschlüssel enthält, der dem zugeordnet ist. id_token Amazon Cognito hat überprüft, dass die Signatur, der Aussteller, das Ablaufdatum und die Zielgruppe (aud) des Benutzerpool-Id-Tokens mit einem der App-Clients übereinstimmen, die IDs Sie für diesen Benutzerpool-IdP im Identitätspool registriert haben.
POST GetId
{
"AccountId": "111122223333",
"IdentityPoolId": "us-east-1:1ac4a76d-1fef-48aa-83af-4224799c0b5c",
"Logins": {
"cognito-idp.us-east-1.amazonaws.com/us-east-1_EXAMPLE123": "eyJraWQiOiJFWAMPLE......"
}
}
Falls gültig, findet es die des Benutzers oder erstellt sie und gibt sie zurück. IdentityID Eine Beispielantwort sieht wie folgt aus:
{
"IdentityId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE22222"
}
-
GetCredentialsForIdentity()mit dem zurückgegebenen identityPoolId und a=derselben Logins Map mit dem. id_token Amazon Cognito überprüft erneut, ob die Signatur, der Aussteller, das Ablaufdatum und die Zielgruppe (aud) des Benutzerpool-Id-Tokens mit einem der App-Clients übereinstimmen, die IDs Sie für diesen Benutzerpool-IdP im Identitätspool registriert haben.
POST GetCredentialsForIdentity
{
"IdentityId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE22222",
"Logins": {
"cognito-idp.us-east-1.amazonaws.com/us-east-1_EXAMPLE123": "eyJraWQiOiJFWAMPLE......"
}
}
Falls gültig, wählt es eine IAM-Rolle (roles-in-token, Regeln oder Standard), ruft in Ihrem Namen AWS STS
an und gibt temporäre Anmeldeinformationen zurück. AWS
Eine Beispielantwort sieht wie folgt aus:
{
"IdentityId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE22222",
"Credentials": {
"AccessKeyId": "ASIAW7TIP7EJEXAMPLE",
"SecretAccessKey": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY",
"SessionToken": "IQoJb3JpZ2luX2VjEEXAMPLE......",
"Expiration": "2025-08-12T14:36:17-07:00"
}
}
- User pool authentication with basic flow
-
Der grundlegende Ablauf bietet eine detaillierte Kontrolle über den Authentifizierungsprozess mit separaten API-Anfragen für den Identitätsabruf und die Generierung von Anmeldeinformationen.
Verwenden Sie die Amazon Cognito Cognito-Benutzerpool-Authentifizierung mit dem Identitätspool-Basisablauf
-
Navigieren Sie in der Demo-Anwendung zum Bereich Interaktive Demo
-
Wählen Sie die Registerkarte Authentifizierter Zugriff.
-
Wählen Sie die Registerkarte Basic Flow.
-
Wählen Sie Mit Amazon Cognito Cognito-Benutzerpools anmelden
-
Schließen Sie die Anmeldung mit Ihrem Benutzernamen und Passwort bei der verwalteten Anmeldung ab.
-
Der Benutzerpool leitet mit einem Autorisierungscode zurück zu Ihrer Anwendungsweiterleitungs-URI.
-
Die Anwendung tauscht den Autorisierungscode mit Ihrem Benutzerpool gegen JSON-Webtoken aus.
-
Die Anwendung tauscht das ID-Token mit Ihrem Identitätspool gegen temporäre AWS Anmeldeinformationen aus
-
Die App zeigt das Ergebnisfenster in der Weboberfläche an
Nach erfolgreicher Authentifizierung wird auf der Weboberfläche das Ergebnisfenster angezeigt, und Sie haben zwei Möglichkeiten, diese zu erkunden:
-
Schaltfläche „Nur Anmeldeinformationen anzeigen“: Wählen Sie diese Schaltfläche, wenn Sie direkt temporäre AWS Anmeldeinformationen sehen möchten, die ohne die Details zum API-Flow generiert wurden.
{
"IdentityId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE22222",
"Credentials": {
"AccessKeyId": "AKIAIOSFODNN7EXAMPLE",
"SecretAccessKey": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY",
"SessionToken": "IQoJb3JpZ2luX2VjEEXAMPLE......",
"Expiration": "2025-08-12T13:36:17-07:00"
}
}
-
Schaltfläche „Detaillierten API-Flow anzeigen“: Wählen Sie diese Schaltfläche, wenn Sie die step-by-step API-Anfragen sehen möchten.
-
Die App meldet den Benutzer mit einem Amazon Cognito Cognito-Benutzerpool an und erhält das ID-Token (JWT) als Artefakt. Nach erfolgreicher Authentifizierung mit dem Benutzerpool erhält Ihre App eine OAuth Antwort, die das ID-Token (JWT) enthält. Identitätspools verwenden dieses Token zur Authentifizierung:
{
"id_token": "eyJraWQiOiJFWAMPLE......",
"token_type": "Bearer",
"expires_in": 3600
}
-
GetId()API-Anfrage mit Ihrer Identitätspool-ID und einer Logins Map, die Ihren Benutzerpool-Anbieterschlüssel und das ID-Token als Wert enthält. Amazon Cognito hat überprüft, dass Signatur, Ablauf und Zielgruppe (aud) des Benutzerpool-ID-Tokens mit einem der App-Clients übereinstimmen, die IDs Sie für diesen Benutzerpool-IdP im Identitätspool registriert haben.
POST GetId
{
"AccountId": "111122223333",
"IdentityPoolId": "us-east-1:1ac4a76d-1fef-48aa-83af-4224799c0b5c",
"Logins": {
"cognito-idp.us-east-1.amazonaws.com/us-east-1_EXAMPLE123": "eyJraWQiOiJFWAMPLE......"
}
}
Falls gültig, findet es die des Benutzers oder erstellt sie und gibt sie zurück. IdentityID Eine Beispielantwort sieht wie folgt aus:
{
"IdentityId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE22222"
}
-
GetOpenIdToken()mit der zurückgegebenen IdentityID und derselben Logins Map
POST GetOpenIdToken
{
"IdentityId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE22222",
"Logins": {
"cognito-idp.us-east-1.amazonaws.com/us-east-1_EXAMPLE123": "eyJraWQiOiJFWAMPLE......"
}
}
Antwort:
{
"IdentityId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE22222",
"Token": "eyJraWQiOiJFWAMPLE......"
}
Was passiert in diesem Schritt: Amazon Cognito gibt ein kurzlebiges OpenID Connect-Web-Identitätstoken von cognito-identity.amazonaws.com aus, das dies repräsentiert. IdentityId Das Token enthält OIDC-Ansprüche, die AWS STS bewertet werden, darunter aud (Ihre Identitätspool-ID) und amr (authentifiziert oder nicht authentifiziert). Die Vertrauensrichtlinie Ihrer IAM-Rolle muss diese Ansprüche vorschreiben.
-
AssumeRoleWithWebIdentity()- Ihre App ruft AWS STS direkt auf, um das Amazon Cognito OpenID-Token gegen temporäre Anmeldeinformationen auszutauschen AWS
POST sts:AssumeRoleWithWebIdentity
{
"RoleArn": "arn:aws:iam::111122223333:role/Cognito_IdentityPoolAuth_Role",
"WebIdentityToken": "eyJraWQiOiJFWAMPLE......",
"RoleSessionName": "CognitoIdentityCredentials"
}
Antwort:
{
"Credentials": {
"AccessKeyId": "AKIAIOSFODNN7EXAMPLE",
"SecretAccessKey": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY",
"SessionToken": "FwoGZXIvYXdzEEXAMPLE......",
"Expiration": "2025-08-12T14:36:17-07:00"
},
"AssumedRoleUser": {
"AssumedRoleId": "AROAW7TIP7EJYEXAMPLE:CognitoIdentityCredentials",
"Arn": "arn:aws:sts::111122223333:assumed-role/Cognito_IdentityPoolAuth_Role/CognitoIdentityCredentials"
}
}
Was Ihre Demo-Anwendung getan hat: Ihre App hat das OpenID-Token von GetOpenIdToken() an gesendet AWS STS und temporäre Anmeldeinformationen angefordert. AWS STS
hat Validierungsprüfungen durchgeführt und Anmeldeinformationen ausgestellt:
-
Benutzerpool-Benutzer erhalten temporäre AWS Anmeldeinformationen über Amazon Cognito Cognito-Identitätspools.
-
Diese Anmeldeinformationen sind mit einer IAM-Rolle verknüpft, die in Ihrer Identitätspool-Konfiguration angegeben ist.
-
ID-Token für Benutzerpools werden über den Identitätspool gegen AWS Anmeldeinformationen ausgetauscht.
In diesem Schritt wird die SAML-Authentifizierung untersucht. Benutzer können sich bei Identitätsanbietern für Unternehmen anmelden, die SAML unterstützen, um auf Dienste zuzugreifen AWS . Der grundlegende Ablauf mit SAML wird in der Beispielanwendung nicht unterstützt.
- SAML authentication with enhanced flow
-
In diesem Abschnitt wird gezeigt, wie Sie einen SAML-Identitätsanbieter verwenden können, um einen Benutzer anzumelden und mithilfe des erweiterten Ablaufs die SAML-Assertion in einem Amazon Cognito Cognito-Identitätspool gegen temporäre AWS Anmeldeinformationen zum Aufrufen von Diensten auszutauschen. AWS
Verwenden Sie die SAML-Authentifizierung mit dem erweiterten Identitätspool
-
Navigieren Sie in der Demo-Anwendung zum Bereich Interaktive Demo
-
Wählen Sie die Registerkarte Authentifizierter Zugriff.
-
Wählen Sie die Registerkarte Erweiterter Ablauf.
-
Wählen Sie Mit SAML-Anbieter anmelden
-
Schließen Sie die Anmeldung mit Ihren Unternehmensanmeldedaten ab.
-
Der Benutzerpool leitet mit einer SAML-Assertion zurück zu Ihrer Anwendungsumleitungs-URI.
-
Die Anwendung tauscht den Autorisierungscode mit Ihrem Benutzerpool gegen JSON-Webtoken aus.
-
Die Anwendung tauscht die SAML-Antwort mit Ihrem Identitätspool gegen temporäre AWS Anmeldeinformationen aus
-
Die App zeigt das Ergebnisfenster in der Weboberfläche an
Nach erfolgreicher Authentifizierung wird auf der Weboberfläche das Ergebnisfenster angezeigt, und Sie haben zwei Möglichkeiten, diese zu erkunden:
-
Schaltfläche „Nur Anmeldeinformationen anzeigen“: Wählen Sie diese Schaltfläche, wenn Sie direkt temporäre AWS Anmeldeinformationen sehen möchten, die ohne die Details zum API-Flow generiert wurden.
{
"IdentityId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE22222",
"Credentials": {
"AccessKeyId": "AKIAIOSFODNN7EXAMPLE",
"SecretAccessKey": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY",
"SessionToken": "IQoJb3JpZ2luX2VjEEXAMPLE......",
"Expiration": "2025-08-12T13:36:17-07:00"
}
}
-
Schaltfläche „Detaillierten API-Flow anzeigen“: Wählen Sie diese Schaltfläche, wenn Sie die step-by-step API-Anfragen sehen möchten.
-
Die App meldet den Benutzer mit einem SAML-IdP an und erhält die SAML-Antwort. Identitätspools akzeptieren SAML-Assertionen von Unternehmensanbietern, die den SAML-Provider-ARN als Schlüssel verwenden:
| Identitätsanbieter |
Cognito-Anbieterschlüssel |
Zweck |
| SAML-Anbieter |
arn:aws:iam::111122223333:saml-provider/EXAMPLE |
SAML-Assertionen von Unternehmen IdPs |
Nach erfolgreicher Authentifizierung beim SAML-Anbieter erhält Ihre App eine SAML-Antwort per HTTP POST an Ihre Callback-URL:
{
"saml_response": "PD94bWwgdmVyc2lvbj0iMS4wIiBFWAMPLE...",
"provider_arn": "arn:aws:iam::111122223333:saml-provider/EXAMPLE",
"status": "Authentication successful"
}
-
GetId()API-Anfrage mit Ihrer Identitätspool-ID und einer Logins Map, die Ihren SAML-Provider-ARN und Ihre Assertion enthält
POST GetId
{
"AccountId": "111122223333",
"IdentityPoolId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE11111",
"Logins": {
"arn:aws:iam::111122223333:saml-provider/EXAMPLE": "PD94bWwgdmVyc2lvbj0iMS4wIiBFWAMPLE..."
}
}
Antwort:
{
"IdentityId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE22222"
}
-
GetCredentialsForIdentity()mit der zurückgegebenen IdentityID und derselben Map Logins
POST GetCredentialsForIdentity
{
"IdentityId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE22222",
"Logins": {
"arn:aws:iam::111122223333:saml-provider/EXAMPLE": "PD94bWwgdmVyc2lvbj0iMS4wIiBFWAMPLE..."
}
}
Antwort:
{
"IdentityId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE22222",
"Credentials": {
"AccessKeyId": "AKIAIOSFODNN7EXAMPLE",
"SecretAccessKey": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY",
"SessionToken": "IQoJb3JpZ2luX2VjEEXAMPLE......"
}
}
Was ist passiert: Amazon Cognito validierte die SAML-Assertion anhand des konfigurierten Anbieters, entschied sich für eine IAM-Rolle auf der Grundlage von SAML-Attributen oder -Regeln und rief in Ihrem Namen an. AWS STS
Verstehen Sie den SAML-Zugriff
-
Unternehmensbenutzer erhalten temporäre AWS Anmeldeinformationen von Amazon Cognito Cognito-Identitätspools, nachdem sie sich bei ihrem SAML-Anbieter authentifiziert haben.
-
Jeder authentifizierte Benutzer erhält eine eindeutige Identitäts-ID, die für alle Sitzungen gültig ist.
-
Diese Anmeldeinformationen sind mit einer IAM-Rolle verknüpft, die speziell für den authentifizierten Zugriff entwickelt wurde und umfassendere Berechtigungen bietet als der Gastzugriff.
-
SAML-Assertionen werden gegen AWS Anmeldeinformationen ausgetauscht, wobei die Benutzeridentität und die Unternehmensattribute beibehalten werden.
In diesem Schritt wird die OIDC-Authentifizierung mit Identitätsanbietern für Unternehmen untersucht. Benutzer können sich über den Enterprise Identity Provider ihrer Organisation (wie Azure AD, Okta oder Google Workspace) anmelden, um auf Dienste zuzugreifen. AWS Lesen Sie weiter, wenn Sie nach Informationen zur Integration der standardbasierten Authentifizierung in Ihre Ressourcen suchen. AWS Nachdem Sie die OIDC-Authentifizierung implementiert haben, erfahren Sie, wie Sie OIDC-Angaben für eine differenzierte Zugriffskontrolle nutzen können.
- OIDC authentication with enhanced flow
-
In diesem Abschnitt wird gezeigt, wie Sie einen OIDC-Identitätsanbieter verwenden können, um einen Benutzer anzumelden und mithilfe des erweiterten Ablaufs das OIDC-Token in einem Amazon Cognito Cognito-Identitätspool gegen temporäre AWS Anmeldeinformationen zum Anrufen von Diensten auszutauschen. AWS
Verwenden Sie die OIDC-Anmeldung mit dem erweiterten Ablauf für den Identitätspool
-
Navigieren Sie in der Demo-Anwendung zum Bereich Interaktive Demo
-
Wählen Sie die Registerkarte Authentifizierter Zugriff.
-
Wählen Sie die Registerkarte Erweiterter Ablauf.
-
Wählen Sie Mit OIDC-Anbieter anmelden
-
Schließen Sie die Anmeldung mit Ihren Unternehmensanmeldedaten ab.
-
Der OIDC-Anbieter leitet mit einem Autorisierungscode zurück zur App
-
Die Anwendung tauscht den Autorisierungscode mit Ihrem Benutzerpool gegen JSON-Webtoken aus.
-
Die Anwendung sendet das OIDC-Token an Ihren Identitätspool und ruft temporäre Anmeldeinformationen ab. AWS
-
Die App zeigt das Ergebnisfenster in der Weboberfläche an
Nach erfolgreicher Authentifizierung wird auf der Weboberfläche das Ergebnisfenster angezeigt, und Sie haben zwei Möglichkeiten, diese zu erkunden:
-
Schaltfläche „Nur Anmeldeinformationen anzeigen“: Wählen Sie diese Schaltfläche, wenn Sie direkt temporäre AWS Anmeldeinformationen sehen möchten, die ohne die Details zum API-Flow generiert wurden.
{
"IdentityId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE22222",
"Credentials": {
"AccessKeyId": "AKIAIOSFODNN7EXAMPLE",
"SecretAccessKey": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY",
"SessionToken": "IQoJb3JpZ2luX2VjEEXAMPLE......",
"Expiration": "2025-08-12T13:36:17-07:00"
}
}
-
Schaltfläche „Detaillierten API-Flow anzeigen“: Wählen Sie diese Schaltfläche, wenn Sie die step-by-step API-Anfragen sehen möchten.
-
Die App meldet den Benutzer mit einem OIDC-IdP an und erhält das ID-Token. Identitätspools akzeptieren OIDC-Token von Unternehmensanbietern:
| Identitätsanbieter |
Cognito-Anbieterschlüssel |
Zweck |
| OIDC-Anbieter |
example-provider.com/oauth2/default |
OIDC-ID-Token von Enterprise IdPs |
Nach erfolgreicher Authentifizierung beim OIDC-Anbieter erhält Ihre App eine OAuth 2.0-Antwort mit den folgenden Tokens:
{
"token_type": "Bearer",
"expires_in": 3600,
"access_token": "eyJraWQiOiJFWAMPLE......",
"scope": "email openid profile",
"id_token": "eyJraWQiOiJFWAMPLE......"
}
-
GetId()API-Anfrage mit Ihrer Identitätspool-ID und einer Logins Map, die Ihr OIDC-Provider-Token enthält
POST GetId
{
"AccountId": "111122223333",
"IdentityPoolId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE11111",
"Logins": {
"example-provider.com/oauth2/default": "eyJraWQiOiJFWAMPLE......"
}
}
Antwort:
{
"IdentityId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE22222"
}
-
GetCredentialsForIdentity()mit der zurückgegebenen IdentityID und derselben Logins-Map
POST GetCredentialsForIdentity
{
"IdentityId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE22222",
"Logins": {
"example-provider.com/oauth2/default": "eyJraWQiOiJFWAMPLE......"
}
}
Antwort:
{
"IdentityId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE22222",
"Credentials": {
"AccessKeyId": "AKIAIOSFODNN7EXAMPLE",
"SecretAccessKey": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY",
"SessionToken": "IQoJb3JpZ2luX2VjEEXAMPLE......"
}
}
Was ist passiert: Amazon Cognito hat das OIDC-Token anhand des konfigurierten Anbieters validiert, eine IAM-Rolle (Standard, anspruchsbasiert oder regelzugeordnet) ausgewählt und in Ihrem Namen angerufen. AWS STS
- OIDC authentication with basic flow
-
In diesem Abschnitt wird gezeigt, wie Sie einen OIDC-Identitätsanbieter verwenden können, um einen Benutzer anzumelden und mithilfe des Basisablaufs das OIDC-Token in einem Amazon Cognito Cognito-Identitätspool gegen temporäre AWS Anmeldeinformationen zum Anrufen von Diensten auszutauschen. AWS
Verwenden Sie die OIDC-Anmeldung mit dem Basisablauf für den Identitätspool
-
Navigieren Sie in der Demo-Anwendung zum Bereich Interaktive Demo
-
Wählen Sie die Registerkarte Authentifizierter Zugriff.
-
Wählen Sie die Registerkarte Basic Flow.
-
Wählen Sie Mit OIDC-Anbieter anmelden
-
Schließen Sie die Anmeldung mit Ihren Unternehmensanmeldedaten ab.
-
Der OIDC-Anbieter leitet mit einem Autorisierungscode zurück zur App
-
Die Anwendung tauscht den Autorisierungscode mit Ihrem Benutzerpool gegen JSON-Webtoken aus.
-
Die Anwendung sendet das OIDC-Token an Ihren Identitätspool und ruft temporäre Anmeldeinformationen ab. AWS
-
Die App zeigt das Ergebnisfenster in der Weboberfläche an
Nach erfolgreicher Authentifizierung wird auf der Weboberfläche das Ergebnisfenster angezeigt, und Sie haben zwei Möglichkeiten, diese zu erkunden:
-
Schaltfläche „Nur Anmeldeinformationen anzeigen“: Wählen Sie diese Schaltfläche, wenn Sie direkt temporäre AWS Anmeldeinformationen sehen möchten, die ohne die Details zum API-Flow generiert wurden.
{
"IdentityId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE22222",
"Credentials": {
"AccessKeyId": "AKIAIOSFODNN7EXAMPLE",
"SecretAccessKey": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY",
"SessionToken": "IQoJb3JpZ2luX2VjEEXAMPLE......",
"Expiration": "2025-08-12T13:36:17-07:00"
}
}
-
Schaltfläche „Detaillierten API-Flow anzeigen“: Wählen Sie diese Schaltfläche, wenn Sie die step-by-step API-Anfragen sehen möchten.
-
Die App meldet den Benutzer mit einem OIDC-IdP an und erhält das ID-Token. Identitätspools akzeptieren OIDC-Token von Unternehmensanbietern:
| Identitätsanbieter |
Cognito-Anbieterschlüssel |
Zweck |
| OIDC-Anbieter |
example-provider.com/oauth2/default |
OIDC-ID-Token von Enterprise IdPs |
Nach erfolgreicher Authentifizierung beim OIDC-Anbieter erhält Ihre App eine OAuth 2.0-Antwort mit den folgenden Tokens:
{
"token_type": "Bearer",
"expires_in": 3600,
"access_token": "eyJraWQiOiJFWAMPLE......",
"scope": "openid email profile",
"id_token": "eyJraWQiOiJFWAMPLE......"
}
-
GetId()API-Anfrage mit Ihrer Identitätspool-ID und einer Logins Map, die Ihr OIDC-Provider-Token enthält
POST GetId
{
"IdentityPoolId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE11111",
"Logins": {
"example-provider.com/oauth2/default": "eyJraWQiOiJFWAMPLE......"
}
}
Antwort:
{
"IdentityId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE22222"
}
-
GetOpenIdToken()mit der zurückgegebenen IdentityID und derselben Map Logins
POST GetOpenIdToken
{
"IdentityId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE22222",
"Logins": {
"example-provider.com/oauth2/default": "eyJraWQiOiJFWAMPLE......"
}
}
Antwort:
{
"IdentityId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE22222",
"Token": "eyJraWQiOiJFWAMPLE......"
}
-
AssumeRoleWithWebIdentity()mit dem OpenID-Token
POST AssumeRoleWithWebIdentity
{
"RoleArn": "arn:aws:iam::111122223333:role/Cognito_IdentityPoolAuth_Role",
"WebIdentityToken": "eyJraWQiOiJFWAMPLE......"
}
Antwort:
{
"Credentials": {
"AccessKeyId": "AKIAIOSFODNN7EXAMPLE",
"SecretAccessKey": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY",
"SessionToken": "FwoGZXIvYXdzEEXAMPLE......",
"Expiration": "2025-08-12T14:36:17-07:00"
}
}
Was ist passiert: Amazon Cognito validierte das OIDC-Token anhand des konfigurierten Anbieters und gab ein OpenID-Token zurück. Die Anwendung rief AWS STS direkt an, um die entsprechende IAM-Rolle zu übernehmen, und erhielt kurzlebige Anmeldeinformationen.
Verstehen Sie die OIDC-Authentifizierung
-
Standardbasiert: OIDC basiert auf OAuth 2.0 und bietet standardisierte Identitätsinformationen.
-
Token-Validierung: ID-Token können auf ihre Echtheit überprüft werden.
-
Forderungsbasierter Zugriff: OIDC-Ansprüche können für die Rollenzuweisung und Zugriffskontrolle verwendet werden.
-
Unternehmensintegration: Funktioniert mit gängigen Identitätsanbietern für Unternehmen.
Nächste Schritte
Nachdem Sie die Demo-Anwendung eingerichtet und erkundet haben, können Sie:
-
Konfigurieren Sie zusätzliche Identitätsanbieter, die Sie noch nicht getestet haben
-
Experimentieren Sie mit der erweiterten und der Standardauthentifizierung, um ihre Unterschiede zu verstehen
-
Passen Sie die Demo an Ihren eigenen Anwendungsfall an
-
Integrieren Sie Amazon Cognito Identity Pools in Ihre eigenen Anwendungen.