Esempio di applicazione per pool di identità - Amazon Cognito

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Esempio di applicazione per pool di identità

Il caso d'uso più comune dei pool di identità di Amazon Cognito consiste nel federare gli utenti di più sistemi di accesso e fornire credenziali temporanee ad accesso limitato direttamente AWS al client. Ciò elimina la necessità di creare un broker di credenziali per le autorizzazioni di accesso alle risorse. AWS Ad esempio, potresti dover consentire agli utenti di accedere con i propri account di social media e accedere alle risorse dell'app da Amazon S3 per la tua applicazione mobile. I pool di identità forniscono inoltre le credenziali agli utenti che accedono con i pool di utenti.

In questo tutorial, creerai un'applicazione web in cui potrai ottenere credenziali temporanee autenticate e guest nei flussi di autenticazione avanzati e di base con provider di identità supportati (IdPs) nei pool di identità. Se hai già esperienza nello sviluppo web, scarica l'app di esempio da. GitHub

Scarica l'applicazione di esempio da GitHub

Questa applicazione di esempio dimostra le seguenti funzionalità dei pool di identità di Amazon Cognito:

Flussi di autenticazione nei pool di identità
  • Flusso di autenticazione migliorato con suddivisioni dettagliate delle richieste API

  • Flusso di autenticazione di base con suddivisioni dettagliate delle richieste API

Implementazione dell'accesso guest (non autenticato)
  • Fornisci un Servizio AWS accesso limitato senza richiedere l'accesso

Integrazione con i provider di identità supportati
  • Social IdPs (Facebook, Amazon, Twitter, Apple e Google) per l'accesso dei consumatori

  • Enterprise IdPs (tramite OpenID Connect o SAML) per utenti aziendali

  • Pool di utenti di Amazon Cognito

AWS gestione delle credenziali
  • Scambio di token di provider di identità con credenziali temporanee AWS

  • Utilizzo di credenziali temporanee per accedere ai servizi in modo sicuro AWS

Dopo aver configurato l'applicazione sul server web di sviluppo e avervi effettuato l'accesso in un browser, vengono visualizzate le seguenti opzioni.

Schermata dell'interfaccia web dimostrativa dell'applicazione dimostrativa del pool di identità Amazon Cognito che mostra la pagina principale con le opzioni del metodo di autenticazione e le sezioni demo interattive.

Prerequisiti

Prima di iniziare, è necessario configurare le seguenti risorse.

Per ulteriori informazioni sull'implementazione delle AWS credenziali e sulla federazione dei pool di identità nel tuo SDK specifico, consulta. Ottenere le credenziali

Configurazione del provider di autenticazione

Per ottenere i migliori risultati con questa applicazione, configura e integra uno o più provider di identità di terze parti (IdPs) o pool di utenti Amazon Cognito con il tuo pool di identità Amazon Cognito. Dopo aver completato i prerequisiti e prima di eseguire questa applicazione demo, scegli quali provider di identità configurare. La console Amazon Cognito ti guida attraverso il processo di configurazione dei pool di identità e dei provider.

Nota

Per questa applicazione demo, non è necessario configurare tutti i provider di identità supportati. Puoi iniziare con uno che corrisponda al tuo caso d'uso. Ogni collegamento fornisce istruzioni di configurazione dettagliate.

Implementa l'applicazione demo

Clona il repository

  1. Apri una finestra del terminale.

  2. Clona il aws-doc-sdk-examples repository o recupera in altro modo questa cartella nel repository.

    git clone https://github.com/awsdocs/aws-doc-sdk-examples.git
  3. Passa alla directory del progetto .

    cd python/example_code/cognito/scenarios/identity_pools_example_demo/web

Crea un pool di identità di

Per creare un pool di identità Amazon Cognito per la tua applicazione, segui le istruzioni riportate in. Panoramica della console Identity Pools

Per configurare un pool di identità per l'applicazione demo
  1. Apri la console Amazon Cognito.

  2. Dal menu di navigazione a sinistra, scegli Identity pool. Scegli un pool di identità esistente o creane uno nuovo.

  3. In Accesso utente, abilita l'accesso autenticato e l'accesso come ospite. Configura un ruolo IAM nuovo o esistente e assegnagli le autorizzazioni che desideri concedere a ciascun tipo di utente.

  4. In Accesso utente, configura tutti i provider di identità che desideri configurare.

  5. In Proprietà del pool di identità, abilita l'autenticazione di base (classica).

  6. Tieni il browser aperto alla console del tuo pool di identità. Utilizzerai l'ID del pool di identità e altre informazioni di configurazione nella configurazione dell'applicazione.

Configura ed esegui l'applicazione

I seguenti passaggi guidano l'utente nella configurazione iniziale dell'applicazione demo.

Per configurare l'applicazione demo
  1. Apri una riga di comando python/example_code/cognito/scenarios/identity_pools_example_demo/web nel tuo aws-doc-sdk-examples clone.

  2. Crea un .env file copiando il file di ambiente di esempio.

    cp .env.example .env
  3. Apri il file .env in un editor di testo. Sostituite i valori di esempio nel file con i vostri valori di configurazione.

  4. Installa le dipendenze del backend.

    pip install -r requirements.txt
  5. Avvia il server di backend:

    cd backend python oauth_server.py
  6. Apri una nuova finestra di terminale, vai alla directory del progetto e avvia il server frontend:

    cd frontend python -m http.server 8001
  7. Apri il browser all'applicazione all'indirizzo http://localhost:8001. Il browser mostrerà l'interfaccia dimostrativa dell'applicazione, pronta per testare l'autenticazione dei pool di identità.

Esplora i metodi di autenticazione nel tuo pool di identità

Questa sezione ti guida attraverso i flussi di autenticazione di base e avanzati utilizzando l'applicazione demo dei pool di identità Amazon Cognito. Con questa demo, scoprirai come funzionano i pool di identità con vari provider di identità per fornire AWS credenziali temporanee agli utenti delle tue applicazioni.

Nella sezione demo interattiva dell'applicazione di esempio, sceglierai innanzitutto tra due tipi di accesso supportati dai pool di identità.

Accesso non autenticato (ospite)

Fornisci AWS le credenziali agli utenti che non si sono ancora autenticati.

Accesso autenticato

Scambia i token del provider di identità in cambio di AWS credenziali con una gamma completa di autorizzazioni disponibili. Scegli un provider di identità tra quelli configurati nel tuo file. .env

Questo passaggio dimostra come ottenere AWS credenziali temporanee per gli utenti non autenticati (ospiti) tramite la funzionalità di accesso ospite del pool di identità. Nell'applicazione demo, testerai sia i flussi avanzati che quelli di base per vedere come i pool di identità emettono le credenziali senza richiedere l'accesso dell'utente. L'accesso ospite utilizza la stessa sequenza API dell'accesso autenticato, ma senza fornire token di provider di identità (come OAuth i token di Google, Facebook o le asserzioni SAML dei provider aziendali).

Continua a leggere se stai cercando informazioni su come fornire un AWS accesso limitato agli utenti senza richiedere l'autenticazione. Dopo aver implementato l'accesso come ospite, imparerai come fornire in modo sicuro AWS le credenziali agli utenti anonimi e a comprendere le differenze tra i due flussi di autenticazione.

Importante

L'accesso non autenticato può rilasciare credenziali a chiunque abbia accesso a Internet, quindi è meglio utilizzarlo per AWS risorse che richiedono una sicurezza minima, come risorse pubbliche e grafiche. APIs Prima di procedere con questo passaggio, controlla se hai configurato il tuo pool di identità con l'accesso degli ospiti abilitato e assicurati che siano in atto politiche IAM appropriate per limitare le autorizzazioni.

Guest access with enhanced flow

Il flusso avanzato è un approccio semplificato all'ottenimento di AWS credenziali per utenti non autenticati con due richieste API.

Per testare l'accesso degli ospiti con il flusso avanzato
  1. Nell'applicazione demo, vai alla sezione Demo interattiva

  2. Scegli la scheda Accesso ospite.

  3. Scegli la scheda Flusso avanzato.

  4. Scegli Test guest access.

  5. L'app ottiene AWS credenziali temporanee dai tuoi pool di identità senza ulteriori richieste di autenticazione.

  6. Una volta completata l'autenticazione, vedrai l'interfaccia web che mostra il pannello Risultati e avrai due opzioni per esplorarli:

    1. Pulsante Visualizza solo le credenziali: scegliete questo pulsante se desiderate visualizzare direttamente AWS le credenziali temporanee generate senza i dettagli del flusso API.

      { "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" } }
    2. Pulsante Visualizza il flusso API dettagliato: scegli questo pulsante se desideri visualizzare le richieste step-by-step API.

      • GetId()Richiesta API con il tuoidentityPoolId. Non sono richiesti token di autenticazione per l'accesso degli ospiti

        { "IdentityPoolId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE11111" }

        Se valido, trova o crea e restituisce quello dell'IdentityIDutente. Un esempio di risposta è simile al seguente:

        { "IdentityId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE11111" }
      • GetCredentialsForIdentity()con il restituitoidentityPoolId.

        POST GetCredentialsForIdentity { "IdentityId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE11111" }

        Cognito convalida l'accesso degli ospiti, assume internamente il ruolo non autenticato e restituisce credenziali AWS temporanee AWS STS. (Nessuna autenticazione IAM su questa chiamata; la fiducia nei ruoli deve consentirla). 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

Il flusso di base fornisce un controllo granulare sul processo di autenticazione con richieste API separate per il recupero dell'identità e la generazione di credenziali.

Per testare l'accesso degli ospiti con il flusso di base
  1. Nell'applicazione demo, vai alla sezione Demo interattiva

  2. Scegli la scheda Accesso ospite.

  3. Scegli la scheda Basic flow.

  4. Scegli Test guest access.

  5. L'app ottiene AWS credenziali temporanee dai tuoi pool di identità senza ulteriori richieste di autenticazione.

  6. Una volta completata l'autenticazione, vedrai l'interfaccia web che mostra il pannello Risultati e avrai due opzioni per esplorarli.

    1. Pulsante Visualizza solo le credenziali: scegli questo pulsante se desideri visualizzare direttamente AWS le credenziali temporanee generate senza i dettagli del flusso API.

      { "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" } }
    2. Pulsante Visualizza il flusso API dettagliato: scegli questo pulsante se desideri visualizzare le richieste step-by-step API.

      • GetId()Richiesta API con il tuo ID del pool di identità. Non sono richiesti token di autenticazione per l'accesso degli ospiti.

        POST GetId { "IdentityPoolId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE11111" }

        Se valido, trova o crea e restituisce quello dell'IdentityIDutente. Un esempio di risposta è simile al seguente:

        { "IdentityId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE22222" }
      • GetOpenIdToken()con la stessa Logins mappa restituita IdentityID

        POST GetOpenIdToken { "IdentityId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE22222" }

        Risposta:

        { "IdentityId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE22222", "Token": "eyJraWQiOiJFWAMPLE......" }

        Cosa succede in questa fase: Amazon Cognito emette un token di identità web OpenID Connect di breve durata da cognito-identity.amazonaws.com che lo rappresenta. IdentityId Il token include attestazioni OIDC che AWS STS effettuano valutazioni, tra cui aud (ID del pool di identità) e amr (autenticato o non autenticato). La policy di fiducia del tuo ruolo IAM deve richiedere tali attestazioni.

      • AssumeRoleWithWebIdentity()- La tua app chiama AWS STS direttamente per scambiare il token OpenID di Amazon Cognito con credenziali temporanee AWS

        POST sts:AssumeRoleWithWebIdentity { "RoleArn": "arn:aws:iam::111122223333:role/Cognito_IdentityPoolUnauth_Role", "WebIdentityToken": "eyJraWQiOiJFWAMPLE......" }

        Risposta:

        { "Credentials": { "AccessKeyId": "AKIAIOSFODNN7EXAMPLE", "SecretAccessKey": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY", "SessionToken": "FwoGZXIvYXdzEEXAMPLE......" } }

        Cosa succede in questa fase: Una volta convalidata: restituisce le credenziali temporanee AWS

Usa le credenziali temporanee

Queste credenziali temporanee funzionano come AWS credenziali standard ma con autorizzazioni limitate definite dal ruolo IAM non autenticato del pool di identità. Puoi usarle con qualsiasi SDK o. AWS AWS CLI Per ulteriori informazioni sulla configurazione AWS SDKs con le credenziali, consulta Fornitori di credenziali standardizzati nella and Tools Reference Guide. AWS SDKs

Gli esempi riportati di seguito non sono un elenco completo, ma mostrano alcuni modi comuni in cui la funzionalità guest di un pool di identità può migliorare l'esperienza utente.

I seguenti esempi configurano i provider di credenziali per l'accesso limitato ad Amazon S3 come utente ospite.

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' }));

Gli esempi seguenti utilizzano l'accesso in sola lettura ad Amazon DynamoDB come utente guest.

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 }));

Questo passaggio esplora il flusso generale per l'utilizzo dei provider di identità social con i pool di identità di Amazon Cognito. L'autenticazione social offre un'esperienza di accesso familiare pur mantenendo la sicurezza attraverso la gestione delle identità federate. Puoi accedere da un provider di identità social (IdP) come Google, Facebook e Amazon, quindi scambiare il token IdP con credenziali temporanee. AWS L'integrazione tra Twitter e Apple è supportata anche dai pool di identità, ma non è supportata nell'applicazione di esempio.

Il pool di identità in sé non è una directory utente. Non memorizza password o campi del profilo. Si affida invece IdPs all'esterno per l'autenticazione dell'utente e si concentra sull'autorizzazione dell'utente già autenticato a chiamare direttamente i AWS servizi, vendendo credenziali per i ruoli IAM.

Social identity provider with enhanced flow

Questa sezione mostra come utilizzare un provider di identità social per accedere a un utente e, utilizzando il flusso avanzato, scambiare il token del provider in un pool di identità di Amazon Cognito con credenziali temporanee per richiedere risorse. AWS

Usa l'accesso tramite social con il flusso migliorato dell'applicazione di esempio
  1. Nell'applicazione demo, vai alla sezione Demo interattiva

  2. Scegli la scheda Accesso autenticato.

  3. Scegli la scheda Flusso avanzato.

  4. Scegli un social provider supportato che hai configurato, ad esempio Accedi con Google, Accedi con Facebook o Login with Amazon.

  5. Accedi e acconsenti a condividere i dati dell'utente con l'applicazione.

  6. Il provider reindirizza nuovamente all'URI di reindirizzamento dell'app

  7. L'app invia il token del provider al tuo pool di identità e recupera le credenziali temporanee AWS

  8. L'app visualizza il pannello Risultati nell'interfaccia web.

    Una volta completata l'autenticazione, vedrai l'interfaccia web che mostra il pannello Risultati e avrai due opzioni per esplorarli:

    1. Pulsante Visualizza solo le credenziali: scegliete questo pulsante se desiderate visualizzare direttamente AWS le credenziali temporanee generate senza i dettagli del flusso API.

      { "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" } }
    2. Pulsante Visualizza il flusso API dettagliato: scegli questo pulsante se desideri visualizzare le richieste step-by-step API.

      • L'app accede all'utente con un IdP social e ottiene il token del provider. I pool di identità accettano questi artefatti dei provider di social network:

        Provider di identità Chiave del provider Cognito Scopo
        Google accounts.google.com OAuth Token 2.0 di Google Sign-In
        Facebook graph.facebook.com Accedi ai token da Facebook Login
        Amazon www.amazon.com OAuth token da Login with Amazon

        Dopo aver effettuato con successo l'autenticazione con il social provider, l'app riceve una OAuth risposta contenente il token di accesso e altri dettagli di autenticazione:

        { "access_token": "ya29.A0AS3H6NEXAMPLE......", "expires_in": 3599, "scope": "openid https://www.examplesocial....", "token_type": "Bearer", "id_token": "eyJhbGciOiJSUzI1NiIsEXAMPLE......" }
      • GetId()Richiesta API con il tuo ID del pool di identità e una Logins mappa contenente il token del tuo social provider

        POST GetId { "IdentityPoolId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "Logins": { "accounts.google.com": "eyJhbGciOiJSUzI1NiIsEXAMPLE......" } }

        Risposta:

        { "IdentityId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE22222" }
      • GetCredentialsForIdentity()con la Logins mappa restituita IdentityID e la stessa

        POST GetCredentialsForIdentity { "IdentityId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE22222", "Logins": { "accounts.google.com": "eyJhbGciOiJSUzI1NiIsEXAMPLE......" } }

        Risposta:

        { "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" }

Cos'è successo: Amazon Cognito ha convalidato il token rispetto al provider configurato, ha scelto un ruolo IAM in base alla configurazione del provider e ha chiamato per AWS STS conto tuo. Il tuo pool di identità ha quindi restituito credenziali temporanee.

Social identity provider with basic flow

Questa sezione mostra come utilizzare un provider di identità social per accedere a un utente e, utilizzando il flusso di base, scambiare il token del provider in un pool di identità di Amazon Cognito con credenziali temporanee per chiamare i servizi. AWS

Usa l'accesso tramite social con il flusso di base dell'applicazione di esempio
  1. Nell'applicazione demo, vai alla sezione Demo interattiva

  2. Scegli la scheda Accesso autenticato.

  3. Scegli la scheda Basic flow.

  4. Scegli un social provider supportato che hai configurato, ad esempio Accedi con Google, Accedi con Facebook o Login with Amazon.

  5. Accedi e acconsenti a condividere i dati dell'utente con l'applicazione.

  6. Il provider reindirizza nuovamente all'URI di reindirizzamento dell'app

  7. L'app invia il token del provider al tuo pool di identità e recupera le credenziali temporanee AWS

  8. L'app visualizza il pannello Risultati nell'interfaccia web.

    Una volta completata l'autenticazione, vedrai l'interfaccia web che mostra il pannello Risultati e avrai due opzioni per esplorarli:

    1. Pulsante Visualizza solo le credenziali: scegliete questo pulsante se desiderate visualizzare direttamente AWS le credenziali temporanee generate senza i dettagli del flusso API.

      { "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" } }
    2. Pulsante Visualizza il flusso API dettagliato: scegli questo pulsante se desideri visualizzare le richieste step-by-step API.

      • L'app accede all'utente con un IdP social e ottiene il token del provider. I pool di identità accettano questi artefatti dei provider di social network:

        Provider di identità Chiave del provider Cognito Scopo
        Google accounts.google.com OAuth Token 2.0 di Google Sign-In
        Facebook graph.facebook.com Accedi ai token da Facebook Login
        Amazon www.amazon.com OAuth token da Login with Amazon

        Dopo aver effettuato con successo l'autenticazione con il social provider, l'app riceve una OAuth risposta contenente il token di accesso e altri dettagli di autenticazione:

        { "access_token": "ya29.A0AS3H6NEXAMPLE......", "expires_in": 3599, "scope": "openid https://www.examplesocial....", "token_type": "Bearer", "id_token": "eyJhbGciOiJSUzI1NiIsEXAMPLE......" }
      • GetId()Richiesta API con il tuo ID del pool di identità e una Logins mappa contenente il token del tuo social provider

        POST GetId { "IdentityPoolId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "Logins": { "accounts.google.com": "token..." } }

        Risposta:

        { "IdentityId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE22222" }
      • GetOpenIdToken()con la mappa di accesso restituita IdentityID e la stessa

        POST GetOpenIdToken { "IdentityId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE22222", "Logins": { "accounts.google.com": "token..." } }

        Risposta:

        { "IdentityId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE22222", "Token": "eyJraWQiOiJFWAMPLE......" }
      • AssumeRoleWithWebIdentity()con il token OpenID

        POST AssumeRoleWithWebIdentity { "RoleArn": "arn:aws:iam::111122223333:role/Cognito_IdentityPoolAuth_Role", "WebIdentityToken": "eyJraWQiOiJFWAMPLE......" }

        Risposta:

        { "Credentials": { "AccessKeyId": "AKIAIOSFODNN7EXAMPLE", "SecretAccessKey": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY", "SessionToken": "IQoJb3JpZ2luX2VjEEXAMPLE......", "Expiration": "2025-08-12T14:36:17-07:00" } }

Cos'è successo: Amazon Cognito ha convalidato il token rispetto al provider configurato e ha emesso un token OpenID. L'applicazione è stata chiamata AWS STS direttamente per assumere un ruolo IAM e ricevere credenziali temporanee.

Comprendi l'accesso ai social

  • Gli utenti social ricevono AWS credenziali temporanee tramite i pool di identità di Amazon Cognito dopo l'autenticazione con il loro provider di social network.

  • Ogni utente autenticato riceve un ID di identità univoco che persiste tra le sessioni.

  • Queste credenziali sono collegate a un ruolo IAM progettato specificamente per l'accesso autenticato, che fornisce autorizzazioni più ampie rispetto all'accesso come ospite.

  • I token dei social provider vengono scambiati con AWS credenziali, mantenendo l'identità e le autorizzazioni degli utenti.

Questo passaggio esplora l'autenticazione di Amazon Cognito con l'integrazione dell'accesso gestito da pool di utenti. Quando colleghi un pool di utenti come IdP a un pool di identità, i token del pool di utenti autorizzano il pool di identità a emettere credenziali temporanee.

User pool authentication with enhanced flow

Il flusso avanzato offre un approccio semplificato all'ottenimento di AWS credenziali tramite i pool di identità di Amazon Cognito con una singola richiesta API.

Usa l'autenticazione del pool di utenti di Amazon Cognito con il flusso avanzato del pool di identità
  1. Nell'applicazione demo, vai alla sezione Demo interattiva

  2. Scegli la scheda Accesso autenticato.

  3. Scegli la scheda Flusso avanzato.

  4. Scegli Accedi con i pool di utenti di Amazon Cognito

  5. Completa l'accesso con nome utente e password nell'accesso gestito.

  6. Il pool di utenti reindirizza nuovamente all'URI di reindirizzamento dell'applicazione con un codice di autorizzazione.

  7. L'applicazione scambia il codice di autorizzazione con il pool di utenti per i token web JSON.

  8. L'applicazione scambia il token ID con il pool di identità dell'utente in cambio di credenziali temporanee AWS

  9. L'app visualizza il pannello Risultati nell'interfaccia web

    Una volta completata l'autenticazione, vedrai l'interfaccia web che mostra il pannello Risultati e avrai due opzioni per esplorarli:

    1. Pulsante Visualizza solo le credenziali: scegliete questo pulsante se desiderate visualizzare direttamente AWS le credenziali temporanee generate senza i dettagli del flusso API.

      { "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" } }
    2. Pulsante Visualizza il flusso API dettagliato: scegli questo pulsante se desideri visualizzare le richieste step-by-step API.

      • L'app accede all'utente con Amazon Cognito. Dopo l'autenticazione con il pool di utenti, l'app riceve una risposta OAuth 2.0 contenente il token ID (JWT). I pool di identità accettano i token ID JWT dai pool di utenti utilizzando questo formato di chiave del provider:

        Provider di identità Chiave del provider Cognito Scopo
        Pool di utenti di Amazon Cognito cognito-idp.{region}.amazonaws.com/{user-pool-id} Token ID JWT dai pool di utenti di Amazon Cognito

        Dopo aver eseguito correttamente l'autenticazione con il pool di utenti, l'app riceve una risposta OAuth 2.0 contenente il token ID (JWT):

        { "id_token": "eyJraWQiOiJFWAMPLE......", "token_type": "Bearer", "expires_in": 3600 }
      • GetId()Richiesta API con la tua identityPoolId e una Logins mappa che include la chiave del provider del pool di utenti mappata su. id_token Amazon Cognito ha verificato che la firma, l'emittente, la scadenza e il pubblico (aud) del token ID del pool di utenti corrispondano a uno dei client dell'app IDs che hai registrato per questo pool di utenti IdP nel pool di identità.

        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......" } }

        Se valido, trova o crea e restituisce quello dell'utente. IdentityID Un esempio di risposta è simile al seguente:

        { "IdentityId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE22222" }
      • GetCredentialsForIdentity()con la Logins mappa restituita identityPoolId e a=la stessa con. id_token Amazon Cognito riconvalida la firma, l'emittente, la scadenza e il pubblico (aud) del token ID del pool di utenti corrispondenti a uno dei client dell'app che IDs hai registrato per questo pool di utenti IdP nel pool di identità.

        POST GetCredentialsForIdentity { "IdentityId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE22222", "Logins": { "cognito-idp.us-east-1.amazonaws.com/us-east-1_EXAMPLE123": "eyJraWQiOiJFWAMPLE......" } }

        Se valido, sceglie un ruolo IAM (regole o default)roles-in-token, chiama per tuo conto e restituisce credenziali AWS STS temporanee. AWS Un esempio di risposta è simile al seguente:

        { "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

Il flusso di base fornisce un controllo granulare sul processo di autenticazione con richieste API separate per il recupero dell'identità e la generazione di credenziali.

Usa l'autenticazione del pool di utenti di Amazon Cognito con il flusso di base del pool di identità
  1. Nell'applicazione demo, vai alla sezione Demo interattiva

  2. Scegli la scheda Accesso autenticato.

  3. Scegli la scheda Basic flow.

  4. Scegli Accedi con i pool di utenti di Amazon Cognito

  5. Completa l'accesso con nome utente e password nell'accesso gestito.

  6. Il pool di utenti reindirizza nuovamente all'URI di reindirizzamento dell'applicazione con un codice di autorizzazione.

  7. L'applicazione scambia il codice di autorizzazione con il pool di utenti per i token web JSON.

  8. L'applicazione scambia il token ID con il pool di identità dell'utente in cambio di credenziali temporanee AWS

  9. L'app visualizza il pannello Risultati nell'interfaccia web

    Una volta completata l'autenticazione, vedrai l'interfaccia web che mostra il pannello Risultati e avrai due opzioni per esplorarli:

    1. Pulsante Visualizza solo le credenziali: scegliete questo pulsante se desiderate visualizzare direttamente AWS le credenziali temporanee generate senza i dettagli del flusso API.

      { "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" } }
    2. Pulsante Visualizza il flusso API dettagliato: scegli questo pulsante se desideri visualizzare le richieste step-by-step API.

      • L'app accede all'utente con un pool di utenti Amazon Cognito e ottiene il token ID (JWT) come artefatto. Dopo l'autenticazione con il pool di utenti, l'app riceve una OAuth risposta contenente il token ID (JWT). I pool di identità utilizzano questo token per l'autenticazione:

        { "id_token": "eyJraWQiOiJFWAMPLE......", "token_type": "Bearer", "expires_in": 3600 }
      • GetId()Richiesta API con l'ID del pool di identità e una Logins mappa che include la chiave del provider del pool di utenti e il token ID come valore. Amazon Cognito ha verificato che la firma, la scadenza e il pubblico (aud) del token ID del pool di utenti corrispondano a uno dei client dell'app IDs che hai registrato per questo pool di utenti IdP nel pool di identità.

        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......" } }

        Se valido, trova o crea e restituisce quello dell'utente. IdentityID Un esempio di risposta è simile al seguente:

        { "IdentityId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE22222" }
      • GetOpenIdToken()con la stessa Logins mappa restituita IdentityID

        POST GetOpenIdToken { "IdentityId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE22222", "Logins": { "cognito-idp.us-east-1.amazonaws.com/us-east-1_EXAMPLE123": "eyJraWQiOiJFWAMPLE......" } }

        Risposta:

        { "IdentityId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE22222", "Token": "eyJraWQiOiJFWAMPLE......" }

        Cosa succede in questa fase: Amazon Cognito emette un token di identità web OpenID Connect di breve durata da cognito-identity.amazonaws.com che lo rappresenta. IdentityId Il token include attestazioni OIDC che AWS STS effettuano valutazioni, tra cui aud (ID del pool di identità) e amr (autenticato o non autenticato). La policy di fiducia del tuo ruolo IAM deve richiedere tali attestazioni.

      • AssumeRoleWithWebIdentity()- La tua app chiama AWS STS direttamente per scambiare il token OpenID di Amazon Cognito con credenziali temporanee AWS

        POST sts:AssumeRoleWithWebIdentity { "RoleArn": "arn:aws:iam::111122223333:role/Cognito_IdentityPoolAuth_Role", "WebIdentityToken": "eyJraWQiOiJFWAMPLE......", "RoleSessionName": "CognitoIdentityCredentials" }

        Risposta:

        { "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" } }

        Cosa ha fatto la tua applicazione demo: la tua app ha inviato il token OpenID da GetOpenIdToken() a AWS STS, richiedendo credenziali temporanee. AWS STS ha eseguito controlli di convalida e ha rilasciato le credenziali:

  • Gli utenti del pool di utenti ricevono AWS credenziali temporanee tramite i pool di identità di Amazon Cognito.

  • Queste credenziali sono collegate a un ruolo IAM specificato nella configurazione del pool di identità.

  • I token ID del pool di utenti vengono scambiati con AWS credenziali tramite il pool di identità.

Questo passaggio esplora l'autenticazione SAML. Gli utenti possono accedere ai servizi con provider di identità aziendali che supportano SAML. AWS Il flusso di base con SAML non è supportato nell'applicazione di esempio.

SAML authentication with enhanced flow

Questa sezione mostra come utilizzare un provider di identità SAML per accedere a un utente e, utilizzando il flusso avanzato, scambiare l'asserzione SAML in un pool di identità Amazon Cognito con credenziali temporanee AWS per chiamare i servizi. AWS

Usa l'autenticazione SAML con il flusso avanzato del pool di identità
  1. Nell'applicazione demo, vai alla sezione Demo interattiva

  2. Scegli la scheda Accesso autenticato.

  3. Scegli la scheda Flusso avanzato.

  4. Scegli Accedi con il provider SAML

  5. Completa l'accesso con le tue credenziali aziendali.

  6. Il pool di utenti reindirizza nuovamente all'URI di reindirizzamento dell'applicazione con un'asserzione SAML.

  7. L'applicazione scambia il codice di autorizzazione con il pool di utenti per i token web JSON.

  8. L'applicazione scambia la risposta SAML con il pool di identità dell'utente in cambio di credenziali temporanee AWS

  9. L'app visualizza il pannello Risultati nell'interfaccia web

    Una volta completata l'autenticazione, vedrai l'interfaccia web che mostra il pannello Risultati e avrai due opzioni per esplorarli:

    1. Pulsante Visualizza solo le credenziali: scegliete questo pulsante se desiderate visualizzare direttamente AWS le credenziali temporanee generate senza i dettagli del flusso API.

      { "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" } }
    2. Pulsante Visualizza il flusso API dettagliato: scegli questo pulsante se desideri visualizzare le richieste step-by-step API.

      • L'app accede all'utente con un IdP SAML e ottiene la risposta SAML. I pool di identità accettano le asserzioni SAML dei provider aziendali che utilizzano l'ARN del provider SAML come chiave:

        Provider di identità Chiave del provider Cognito Scopo
        Provider SAML arn:aws:iam::111122223333:saml-provider/EXAMPLE Asserzioni SAML dell'azienda IdPs

        Dopo aver eseguito correttamente l'autenticazione con il provider SAML, l'app riceve una risposta SAML tramite HTTP POST all'URL di callback:

        { "saml_response": "PD94bWwgdmVyc2lvbj0iMS4wIiBFWAMPLE...", "provider_arn": "arn:aws:iam::111122223333:saml-provider/EXAMPLE", "status": "Authentication successful" }
      • GetId()Richiesta API con l'ID del pool di identità e una Logins mappa contenente l'ARN e l'asserzione del provider SAML

        POST GetId { "AccountId": "111122223333", "IdentityPoolId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "Logins": { "arn:aws:iam::111122223333:saml-provider/EXAMPLE": "PD94bWwgdmVyc2lvbj0iMS4wIiBFWAMPLE..." } }

        Risposta:

        { "IdentityId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE22222" }
      • GetCredentialsForIdentity()con la mappa restituita IdentityID e la stessa Logins

        POST GetCredentialsForIdentity { "IdentityId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE22222", "Logins": { "arn:aws:iam::111122223333:saml-provider/EXAMPLE": "PD94bWwgdmVyc2lvbj0iMS4wIiBFWAMPLE..." } }

        Risposta:

        { "IdentityId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE22222", "Credentials": { "AccessKeyId": "AKIAIOSFODNN7EXAMPLE", "SecretAccessKey": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY", "SessionToken": "IQoJb3JpZ2luX2VjEEXAMPLE......" } }

Cos'è successo: Amazon Cognito ha convalidato l'asserzione SAML rispetto al provider configurato, ha scelto un ruolo IAM basato su attributi o regole SAML e ha chiamato per tuo conto. AWS STS

Comprendi l'accesso SAML

  • Gli utenti aziendali ricevono AWS credenziali temporanee dai pool di identità di Amazon Cognito dopo l'autenticazione con il proprio provider SAML.

  • Ogni utente autenticato riceve un ID di identità univoco che persiste tra le sessioni.

  • Queste credenziali sono collegate a un ruolo IAM progettato specificamente per l'accesso autenticato, che fornisce autorizzazioni più ampie rispetto all'accesso come ospite.

  • Le asserzioni SAML vengono scambiate con AWS credenziali, mantenendo l'identità dell'utente e gli attributi aziendali.

Questo passaggio esplora l'autenticazione OIDC con provider di identità aziendali. Gli utenti possono accedere ai servizi tramite il provider di identità aziendale della propria organizzazione (come Azure AD, Okta o Google Workspace). AWS Continua a leggere se stai cercando informazioni sull'integrazione dell'autenticazione basata su standard con le tue risorse. AWS Dopo aver implementato l'autenticazione OIDC, imparerai come sfruttare le attestazioni OIDC per un controllo granulare degli accessi.

OIDC authentication with enhanced flow

Questa sezione mostra come utilizzare un provider di identità OIDC per accedere a un utente e, utilizzando il flusso avanzato, scambiare il token OIDC in un pool di identità Amazon Cognito con credenziali temporanee per chiamare i servizi. AWS AWS

Usa l'accesso OIDC con il flusso avanzato del pool di identità
  1. Nell'applicazione demo, vai alla sezione Demo interattiva

  2. Scegli la scheda Accesso autenticato.

  3. Scegli la scheda Flusso avanzato.

  4. Scegli Accedi con il provider OIDC

  5. Completa l'accesso con le tue credenziali aziendali.

  6. Il provider OIDC reindirizza nuovamente all'app con un codice di autorizzazione

  7. L'applicazione scambia il codice di autorizzazione con il pool di utenti per i token web JSON.

  8. L'applicazione invia il token OIDC al pool di identità e recupera le credenziali temporanee. AWS

  9. L'app visualizza il pannello Risultati nell'interfaccia web

    Una volta completata l'autenticazione, vedrai l'interfaccia web che mostra il pannello Risultati e avrai due opzioni per esplorarli:

    1. Pulsante Visualizza solo le credenziali: scegliete questo pulsante se desiderate visualizzare direttamente AWS le credenziali temporanee generate senza i dettagli del flusso API.

      { "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" } }
    2. Pulsante Visualizza il flusso API dettagliato: scegli questo pulsante se desideri visualizzare le richieste step-by-step API.

      • L'app accede all'utente con un IdP OIDC e ottiene il token ID. I pool di identità accettano token OIDC di provider aziendali:

        Provider di identità Chiave del provider Cognito Scopo
        Provider OIDC example-provider.com/oauth2/default Token ID OIDC dell'azienda IdPs

        Dopo una corretta autenticazione con il provider OIDC, l'app riceve una risposta OAuth 2.0 contenente i token:

        { "token_type": "Bearer", "expires_in": 3600, "access_token": "eyJraWQiOiJFWAMPLE......", "scope": "email openid profile", "id_token": "eyJraWQiOiJFWAMPLE......" }
      • GetId()Richiesta API con l'ID del pool di identità e una Logins mappa contenente il token del provider OIDC

        POST GetId { "AccountId": "111122223333", "IdentityPoolId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "Logins": { "example-provider.com/oauth2/default": "eyJraWQiOiJFWAMPLE......" } }

        Risposta:

        { "IdentityId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE22222" }
      • GetCredentialsForIdentity()con la mappa di accesso restituita IdentityID e la stessa

        POST GetCredentialsForIdentity { "IdentityId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE22222", "Logins": { "example-provider.com/oauth2/default": "eyJraWQiOiJFWAMPLE......" } }

        Risposta:

        { "IdentityId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE22222", "Credentials": { "AccessKeyId": "AKIAIOSFODNN7EXAMPLE", "SecretAccessKey": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY", "SessionToken": "IQoJb3JpZ2luX2VjEEXAMPLE......" } }

Cos'è successo: Amazon Cognito ha convalidato il token OIDC rispetto al provider configurato, ha scelto un ruolo IAM (predefinito, basato sulle affermazioni o mappato su regole) e ha chiamato per tuo conto. AWS STS

OIDC authentication with basic flow

Questa sezione mostra come utilizzare un provider di identità OIDC per accedere a un utente e, utilizzando il flusso di base, scambiare il token OIDC in un pool di identità Amazon Cognito con credenziali temporanee per chiamare i servizi. AWS AWS

Usa l'accesso OIDC con il flusso di base del pool di identità
  1. Nell'applicazione demo, vai alla sezione Demo interattiva

  2. Scegli la scheda Accesso autenticato.

  3. Scegli la scheda Basic flow.

  4. Scegli Accedi con il provider OIDC

  5. Completa l'accesso con le tue credenziali aziendali.

  6. Il provider OIDC reindirizza nuovamente all'app con un codice di autorizzazione

  7. L'applicazione scambia il codice di autorizzazione con il pool di utenti per i token web JSON.

  8. L'applicazione invia il token OIDC al pool di identità e recupera le credenziali temporanee. AWS

  9. L'app visualizza il pannello Risultati nell'interfaccia web

    Una volta completata l'autenticazione, vedrai l'interfaccia web che mostra il pannello Risultati e avrai due opzioni per esplorarli:

    1. Pulsante Visualizza solo le credenziali: scegliete questo pulsante se desiderate visualizzare direttamente AWS le credenziali temporanee generate senza i dettagli del flusso API.

      { "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" } }
    2. Pulsante Visualizza il flusso API dettagliato: scegli questo pulsante se desideri visualizzare le richieste step-by-step API.

      • L'app accede all'utente con un IdP OIDC e ottiene il token ID. I pool di identità accettano token OIDC di provider aziendali:

        Provider di identità Chiave del provider Cognito Scopo
        Provider OIDC example-provider.com/oauth2/default Token ID OIDC dell'azienda IdPs

        Dopo una corretta autenticazione con il provider OIDC, l'app riceve una risposta OAuth 2.0 contenente i token:

        { "token_type": "Bearer", "expires_in": 3600, "access_token": "eyJraWQiOiJFWAMPLE......", "scope": "openid email profile", "id_token": "eyJraWQiOiJFWAMPLE......" }
      • GetId()Richiesta API con l'ID del pool di identità e una Logins mappa contenente il token del provider OIDC

        POST GetId { "IdentityPoolId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "Logins": { "example-provider.com/oauth2/default": "eyJraWQiOiJFWAMPLE......" } }

        Risposta:

        { "IdentityId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE22222" }
      • GetOpenIdToken()con l'identityID restituito e la stessa mappa Logins

        POST GetOpenIdToken { "IdentityId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE22222", "Logins": { "example-provider.com/oauth2/default": "eyJraWQiOiJFWAMPLE......" } }

        Risposta:

        { "IdentityId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE22222", "Token": "eyJraWQiOiJFWAMPLE......" }
      • AssumeRoleWithWebIdentity()con il token OpenID

        POST AssumeRoleWithWebIdentity { "RoleArn": "arn:aws:iam::111122223333:role/Cognito_IdentityPoolAuth_Role", "WebIdentityToken": "eyJraWQiOiJFWAMPLE......" }

        Risposta:

        { "Credentials": { "AccessKeyId": "AKIAIOSFODNN7EXAMPLE", "SecretAccessKey": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY", "SessionToken": "FwoGZXIvYXdzEEXAMPLE......", "Expiration": "2025-08-12T14:36:17-07:00" } }

Cos'è successo: Amazon Cognito ha convalidato il token OIDC rispetto al provider configurato e ha restituito un token OpenID. L'applicazione è stata chiamata AWS STS direttamente per assumere il ruolo IAM appropriato e ha ricevuto credenziali di breve durata.

Comprendi l'autenticazione OIDC

  • Basato su standard: OIDC è basato sulla versione 2.0 e fornisce informazioni di identità standardizzate OAuth .

  • Convalida dei token: i token ID possono essere convalidati per verificarne l'autenticità.

  • Accesso basato sulle attestazioni: le attestazioni OIDC possono essere utilizzate per la mappatura dei ruoli e il controllo degli accessi.

  • Integrazione aziendale: funziona con i più diffusi provider di identità aziendali.

Passaggi successivi

Ora che hai configurato ed esplorato l'applicazione demo, puoi:

  • Configura provider di identità aggiuntivi che non hai ancora testato

  • Sperimenta l'autenticazione avanzata e quella di base per comprenderne le differenze

  • Personalizza la demo per il tuo caso d'uso

  • Integra Amazon Cognito Identity Pools nelle tue applicazioni.