Salta al contenuto

Come posso ottenere token di identità social o OIDC emessi da IdP per i pool di utenti di Amazon Cognito?

5 minuti di lettura
0

Voglio sapere come ottenere i token di accesso e ID emessi dal provider di identità (IdP) che ho integrato con i pool di utenti di Amazon Cognito per scopi di autorizzazione o risoluzione dei problemi.

Breve descrizione

Il flusso di autenticazione IdP OpenID Connect (OIDC) non consente all'utente o all'applicazione di vedere i token lato IdP. Per scopi di autorizzazione o risoluzione dei problemi, alcuni casi d'uso richiedono i token effettivamente emessi dall'IdP all'interno dell'applicazione.

Importante: La seguente risoluzione presuppone che tu abbia integrato l'IdP OIDC o l'IdP social con i pool di utenti di Amazon Cognito. Se non hai integrato un IdP con il tuo pool di utenti, aggiungi un accesso al pool di utenti tramite una terza parte.

Risoluzione

Crea un attributo personalizzato in un pool di utenti

Per creare un attributo personalizzato nel tuo pool di utenti, completa i seguenti passaggi:

  1. Apri la nuova console Amazon Cognito, quindi scegli la scheda Esperienza di accesso nel tuo pool di utenti.
  2. Nella sezione Attributi personalizzati, scegli Aggiungi attributi personalizzati.
  3. Per creare un attributo personalizzato per un token di accesso, inserisci i seguenti valori:
    Nome: access_token
    Tipo: Stringa
    Massimo: 2.048
    Modificabile: Seleziona questa casella di controllo
  4. Scegli Salva.
  5. Per creare un attributo personalizzato per un token ID, inserisci i seguenti valori:
    Nome: id_token
    Tipo: Stringa
    Massimo: 2.048
    Modificabile: Seleziona questa casella di controllo
  6. Scegli Salva.

Configura la mappatura degli attributi tra Amazon Cognito e il tuo IdP

Per configurare la mappatura degli attributi agli attributi IdP, completa i seguenti passaggi:

  1. Apri la nuova console Amazon Cognito, quindi scegli la scheda Esperienza di accesso nel tuo pool di utenti.
  2. Nella sezione di accesso al Federated Identity Provider, seleziona il tuo IdP dall'elenco.
  3. Nella sezione Informazioni sul provider di identità, scegli Modifica. Assicurati che i seguenti ambiti siano nella sezione Ambiti autorizzati:
    Facebook: public_profile, email
    Google: email del profilo openid
    Accedi con Amazon: profile postal_code
    Accedi con Apple: nome email
    Tutti gli altri provider OIDC: email profilo openid
  4. Nella pagina Provider d'identità, scegli Modifica nella sezione Mappatura degli attributi.
  5. Dalla colonna degli attributi del pool di utenti, seleziona il tuo attributo personalizzato.
  6. Dalla colonna degli attributi OpenID Connect, seleziona access_token o id_token.
  7. Scegli Salva.

Di seguito sono riportati i risultati della configurazione della mappatura degli attributi:

  • Attributo del pool di utenti: custom:id_token
  • Attributo OpenID Connect: id_token
  • Attributo del pool di utenti: custom:access_token
  • Attributo OpenID Connect: access_token

Attiva le autorizzazioni di lettura e scrittura degli attributi nel client dell'app Amazon Cognito

Quando un utente accede all'applicazione, Amazon Cognito aggiorna gli attributi mappati. Affinché Amazon Cognito aggiorni gli attributi del pool di utenti mappati, gli attributi mappati devono essere scrivibili nelle impostazioni del client dell'app dell'applicazione. Affinché Amazon Cognito aggiorni il token ID dell'utente, gli attributi devono essere leggibili nelle impostazioni del client dell'app dell'applicazione.

Per attivare le autorizzazioni di lettura e scrittura, completa i seguenti passaggi:

  1. Apri la nuova console Amazon Cognito, quindi scegli la scheda Integrazione app nel tuo pool di utenti.
  2. Seleziona il client dell'app.
  3. Nella sezione Autorizzazioni di lettura e scrittura degli attributi, scegli Modifica.
  4. Nella pagina Modifica le autorizzazioni di lettura e scrittura degli attributi, seleziona le caselle di controllo di lettura e scrittura per gli attributi personalizzati.
  5. Scegli Salva.

Ripeti questi passaggi per ogni client dell'app che utilizza l'attributo personalizzato.

Per ulteriori informazioni, consulta Autorizzazioni e ambiti degli attributi.

Utilizza il provider OIDC o il social IdP di terze parti per accedere

Quando esegui una nuova autenticazione IdP tramite l'interfaccia utente ospitata di Amazon Cognito, puoi vedere i token IdP negli attributi personalizzati. Scegli un utente finale per visualizzare i token IdP nei relativi attributi. Quando decodifichi il token ID, vedi anche gli attributi personalizzati che contengono i token IdP.

Esempio di sezione payload del token ID rilasciato all'utente finale:

{
   "custom:access_token": "ya29.a0AeTM1ic9iv_FqpDQeIN......w1OPKdFEbR_Tea",
   "iss": "https://cognito-idp.example_region.amazonaws.com/example_user_pool_id",
   "custom:id_token": "eyJhbGciOiJSUzI1NiIsImtpZCI6IjhjMjdkYjRkMTN............saDMuZ29vZ2xldXNlcmNv"
}

Importante:

  • La lunghezza massima per qualsiasi attributo personalizzato è di 2.048 caratteri. Quando un token IdP supera i 2.048 caratteri, viene visualizzato il seguente errore: "String attributes cannot have a length of more than 2048".
  • Non puoi rimuovere o modificare un attributo personalizzato dopo averlo creato.
  • Se l'attributo personalizzato non viene aggiornato negli accessi successivi, verifica la mutabilità dell'attributo personalizzato. Questo problema è previsto dopo aver deselezionato la casella di controllo Modificabile durante la creazione dell'attributo. Per saperne di più, consulta Attributi personalizzati.

Nota: Se ancora non riesci a ottenere un token IdP, contatta il tuo IdP. Verifica se l'IdP supporta il passaggio di token con attributi ad Amazon Cognito. Quindi, contatta Supporto AWS per ulteriori risoluzioni dei problemi.

Informazioni correlate

Come faccio a configurare Auth0 come fornitore OIDC in un bacino d'utenza Amazon Cognito?

How do I set up LinkedIn as a social identity provider in an Amazon Cognito user pool?

Come faccio a configurare Okta come gestore dell’identità digitale OpenID Connect in un pool di utenti Amazon Cognito?

Come faccio a configurare Google come provider dell'identità digitale federato in un pool di utenti Amazon Cognito?

How to view a SAML response in your browser for troubleshooting

AWS UFFICIALEAggiornata 2 anni fa