View a markdown version of this page

Utilizzo di provider di identità OIDC con un pool di utenti - 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à.

Utilizzo di provider di identità OIDC con un pool di utenti

Gli utenti possono accedere alla tua applicazione utilizzando i loro account esistenti dei provider di identità OpenID Connect (OIDC) (). IdPs Con i provider OIDC, gli utenti di sistemi single sign-on indipendenti possono fornire le credenziali esistenti mentre l'applicazione riceve i token OIDC nel formato condiviso dei pool di utenti. Per configurare un IdP OIDC, configura il tuo IdP in modo che gestisca il tuo pool di utenti come RP e configura l'applicazione per gestire il tuo pool di utenti come IdP. Amazon Cognito funge da passaggio intermedio tra più OIDC e le tue applicazioni. IdPs Il tuo pool di utenti applica regole di mappatura degli attributi alle affermazioni contenute nell'ID e nei token di accesso che il tuo provider trasmette direttamente al tuo pool di utenti. Amazon Cognito emette quindi nuovi token in base agli attributi utente mappati e a qualsiasi modifica aggiuntiva apportata al flusso di autenticazione con i trigger Lambda. Trigger Lambda per utenti federati

Agli utenti che accedono con un IdP OIDC non è richiesto di fornire nuove credenziali o informazioni per accedere all'applicazione del pool di utenti. L'applicazione può reindirizzarli silenziosamente al proprio IdP per l'accesso, con un pool di utenti come strumento in background che standardizza il formato del token per l'applicazione. Per saperne di più sul reindirizzamento dell'IdP, consulta. Endpoint Authorize

Come con altri provider di identità di terze parti, devi registrare la tua applicazione presso il provider OIDC e ottenere informazioni sull'applicazione IdP che desideri connettere al tuo pool di utenti. Un pool di utenti OIDC IdP richiede un ID client, un segreto client, gli ambiti che si desidera richiedere e informazioni sugli endpoint del servizio del provider. Il tuo pool di utenti può scoprire gli endpoint OIDC del provider da un endpoint di rilevamento oppure puoi inserirli manualmente. È inoltre necessario esaminare i token ID del provider e creare mappature degli attributi tra l'IdP e gli attributi nel pool di utenti.

Flusso di autenticazione IdP del bacino d'utenza OIDC

Flusso di autenticazione IdP del bacino d'utenza OIDCPer ulteriori dettagli su questo flusso di autenticazione, consulta.

Nota

Sign-in tramite una terza parte (federazione) è disponibile nei pool di utenti di Amazon Cognito. Questa funzionalità è indipendente dalla federazione OIDC con i pool di identità di Amazon Cognito.

Puoi aggiungere un IdP OIDC al tuo pool di utenti nel Console di gestione AWS, tramite o con il AWS CLI metodo API del pool di utenti. CreateIdentityProvider

Prerequisiti

Prima di iniziare, è necessario:

  • Un bacino d'utenza con un client di applicazioni e dominio per il bacino d'utenza. Per ulteriori informazioni, consulta Creazione di un bacino d'utenza.

  • Un IdP OIDC con la seguente configurazione:

    • Supporta l'autenticazione client client_secret_post. Amazon Cognito non controlla l'attestazione token_endpoint_auth_methods_supported nell'endpoint di rilevamento OIDC per il tuo IdP. Amazon Cognito non supporta l'autenticazione client client_secret_basic. Per ulteriori informazioni sull'autenticazione client, consulta Autenticazione client nella documentazione di OpenID Connect.

    • Utilizza HTTPS solo per endpoint OIDC come openid_configuration, userInfo e jwks_uri.

    • Utilizza solo le porte TCP 80 e 443 per gli endpoint OIDC.

    • Firma i token ID solo con algoritmi HMAC-SHA ECDSA o RSA.

    • Pubblica un'attestazione kid dell'ID chiave presso il relativo jwks_uri e include un'attestazione kid nei rispettivi token.

    • Presenta una chiave pubblica non scaduta con una catena di fiducia CA root valida.

Registra un'applicazione con un IdP OIDC

Prima di aggiungere un IdP OIDC alla configurazione del pool di utenti e assegnarlo ai client dell'app, è necessario configurare un'applicazione client OIDC nel proprio IdP. Il tuo pool di utenti è l'applicazione relying-party che gestirà l'autenticazione con il tuo IdP.

Registrazione con un IdP OIDC
  1. Crea un account sviluppatore con l'IdP OIDC.

    Collegamenti a OIDC IdPs
    IdP OIDC Installazione URL di individuazione OIDC
    Salesforce

    Salesforce come fornitore di identità OpenID Connect

    https://MyDomainName.my.salesforce.com/.well-known/openid-configuration

    OneLogin Connetti un'app abilitata per OIDC

    https://your-domain.onelogin.com/oidc/2/.well-known/openid-configuration

    JumpCloud SSO con OIDC

    https://oauth.id.jumpcloud.com/.well-known/openid-configuration

    Okta

    Installa un provider di identità Okta

    https://Your Okta subdomain.okta.com/.well-known/openid-configuration

    ID Microsoft Entra

    OpenID Connect sulla piattaforma di identità Microsoft

    https://login.microsoftonline.com/{tenant}/v2.0

    I valori di tenant possono includere un ID tenant,, commonorganizations, o. consumers

  2. Registra l'URL del dominio del bacino d'utenza con l'/oauth2/idpresponseendpoint presso l'IdP OIDC. In questo modo verrà accettato dall'IdP OIDC durante l'autenticazione degli utenti da parte di Amazon Cognito.

    https://mydomain.auth.us-east-1.amazoncognito.com/oauth2/idpresponse
  3. Seleziona gli ambiti che desideri che la tua directory utenti condivida con il tuo pool di utenti. L'ambito openid è necessario affinché OIDC offra qualsiasi informazione IdPs utente. L'emailambito è necessario per consentire l'accesso ai reclami e. email email_verified https://openid.net/specs/openid-connect-basic-1_0.html#StandardClaims Gli ambiti aggiuntivi nelle specifiche OIDC riguardano tutti profile gli attributi utente e ephone. phone_number phone_number_verified

  4. L'IdP OIDC fornisce un ID client e un segreto client. Annota questi valori e aggiungili alla configurazione dell'IdP OIDC che aggiungerai successivamente al tuo pool di utenti.

Esempio: utilizza Salesforce come IdP OIDC con il tuo bacino d'utenza

Si utilizza un IdP OIDC quando si desidera stabilire un rapporto di fiducia tra un OIDC-compatible IdP come Salesforce e il pool di utenti.

  1. Creazione di un account sul sito Web di Salesforce Developers.

  2. Accedi tramite il tuo account sviluppatore impostato nella fase precedente.

  3. Dalla pagina di Salesforce, procedi in una delle modalità seguenti:

    • Se utilizzi Lightning Experience, scegli l'icona a forma di ingranaggio delle impostazioni, quindi scegli Setup Home (Imposta home).

    • Se utilizzi Salesforce Classic e vedi la voce Setup (Impostazioni) nell'intestazione dell'interfaccia utente, sceglila.

    • Se utilizzi Salesforce Classic e non vedi la voce Setup (Impostazioni) nell'intestazione, scegli il tuo nome nella barra di navigazione in alto e scegli Setup (Impostazioni) dall'elenco a discesa.

  4. Nella barra di navigazione a sinistra, scegli Company Settings (Impostazioni azienda).

  5. Nella barra di navigazione, scegli Domain (Dominio), inserisci un dominio e seleziona Create (Crea).

  6. Nella barra di navigazione a sinistra, vai a Platform Tools Strumenti piattaforma e scegli App.

  7. Scegli App Manager Gestore app.

    1. Scegli New connected app (Nuova app connessa).

    2. Completa i campi obbligatori.

      In Start URL (URL di avvio), inserisci un URL all'endpoint /authorize per il dominio del bacino d'utenza che accede con il provider di identità Salesforce. Quando gli utenti accedono all'app connessa, Salesforce li indirizza a questo URL per completare l'accesso. Quindi Salesforce reindirizza gli utenti all'URL di callback associato al client di app.

      https://mydomain.auth.us-east-1.amazoncognito.com/authorize?response_type=code&client_id=<your_client_id>&redirect_uri=https://www.example.com&identity_provider=CorpSalesforce
    3. Abilita OAuth settings (Impostazioni OAuth) e inserisci l'URL dell'endpoint /oauth2/idpresponse per il dominio del bacino d'utenza in Callback URL (URL di callback). Questo è l'URL da cui Salesforce emette il codice di autorizzazione che Amazon Cognito scambia con un token OAuth.

      https://mydomain.auth.us-east-1.amazoncognito.com/oauth2/idpresponse
  8. Seleziona i tuoi scopes (ambiti). È necessario includere openid per l'ambito. Per concedere l'accesso alle attestazioni email e email_verified aggiungi l'ambito email. Separa gli ambiti con gli spazi.

  9. Scegli Create (Crea).

    In Salesforce, l'ID client viene chiamato Consumer Key (Chiave consumatore), mentre il segreto client è un Consumer Secret (Segreto consumatore). Prendi nota dell'ID client e del segreto client. Li utilizzerai nella sezione successiva.

Aggiunta di un IdP OIDC al bacino d'utenza

Dopo aver impostato il tuo IdP, puoi configurare il tuo pool di utenti per gestire le richieste di autenticazione con un IdP OIDC.

Amazon Cognito console
Aggiungi un IdP OIDC nella console
  1. Passa alla console Amazon Cognito. Se richiesto, inserisci le tue credenziali AWS .

  2. Scegli User Pools (Bacini d'utenza) dal menu di navigazione.

  3. Scegli un bacino d'utenza esistente dall'elenco o creane uno nuovo.

  4. Scegli il menu Provider social ed esterni, quindi seleziona Aggiungi un provider di identità.

  5. Scegli un provider di identità OpenID Connect.

  6. Inserisci un nome univoco per il provider.

  7. Inserisci l'ID client IdP. Questo è l'ID del client applicativo che crei nel tuo IdP OIDC. L'ID client fornito deve essere un provider OIDC configurato con un URL di callback di. https://[your user pool domain]/oauth2/idpresponse

  8. Inserisci il segreto del client IdP. Questo deve essere il segreto del client per lo stesso client applicativo del passaggio precedente.

  9. Inserisci gli Authorized scopes (Ambiti autorizzati) per questo provider. Gli ambiti definiscono quali gruppi di attributi utente (ad esempio name e email) verranno richiesti dalla tua applicazione al tuo provider. Gli ambiti devono essere separati da spazi, secondo la specifica OAuth 2.0.

    Il tuo IdP potrebbe richiedere agli utenti di acconsentire a fornire questi attributi alla tua applicazione al momento dell'accesso.

  10. Scegli un metodo di richiesta degli attributi. IdPspotrebbe richiedere che le richieste ai rispettivi userInfo endpoint siano formattate come oGET. POST L'userInfoendpoint Amazon Cognito richiede HTTP GET richieste, ad esempio.

  11. Scegli un metodo di configurazione in base al modo in cui desideri che il tuo pool di utenti determini il percorso verso gli OIDC-federation endpoint chiave del tuo IdP. In genere, IdPs ospita un /well-known/openid-configuration endpoint presso l'URL di base dell'emittente. Se questo è il caso del tuo provider, l'opzione Compilazione automatica tramite l'URL dell'emittente richiede l'URL di base, tenta di accedere al /well-known/openid-configuration percorso da lì e legge gli endpoint elencati. Potresti avere percorsi di endpoint non tipici o voler passare le richieste a uno o più endpoint tramite un proxy alternativo. In questo caso, seleziona Input manuale e specifica i percorsi per gli endpointauthorization,token, userInfo e. jwks_uri

    Nota

    L'URL deve iniziare con https:// e non deve finire con una barra /. Solo i numeri di porta 443 e 80 possono essere utilizzati con questo URL. Ad esempio, Salesforce usa questo URL:

    https://login.salesforce.com

    Scegliendo il riempimento automatico, il documento di individuazione deve utilizzare HTTPS per i seguenti valori: authorization_endpoint, token_endpoint, userinfo_endpoint, e jwks_uri. In caso contrario, l'accesso avrà esito negativo.

  12. Configura le regole di mappatura degli attributi in Map attributes tra il tuo provider OpenID Connect e il tuo pool di utenti. L'attributo del pool di utenti è l'attributo di destinazione nel profilo utente di Amazon Cognito e l'attributo OpenID Connect è l'attributo di origine che desideri che Amazon Cognito trovi in un reclamo o in una risposta. ID-token userInfo Amazon Cognito mappa automaticamente il claim OIDC sub a nel profilo utente di destinazione. username

    Per ulteriori informazioni, consulta Mappatura degli attributi IdP a profili e token.

  13. Scegli Aggiungi provider di identità.

  14. Dal menu App client, seleziona un app client dall'elenco. Vai alla scheda Pagine di accesso e in Configurazione delle pagine di accesso gestite, seleziona Modifica. Individua i provider di identità e aggiungi il tuo nuovo IdP OIDC.

  15. Scegli Save changes (Salva modifiche).

API/CLI

Vedi la configurazione OIDC nell'esempio due all'indirizzo. CreateIdentityProvider È possibile modificare questa sintassi e utilizzarla come corpo della richiesta o come file di --cli-input-json input per CreateIdentityProvider UpdateIdentityProvider create-identity-provider. https://docs.aws.amazon.com/cli/latest/reference/cognito-idp/create-identity-provider.html

Test della configurazione dell'IdP OIDC

Nella tua applicazione, devi richiamare un browser nel client dell'utente in modo che possa accedere con il proprio provider OIDC. Verifica l'accesso con il tuo provider dopo aver completato le procedure di configurazione nelle sezioni precedenti. L'URL di esempio seguente carica la pagina di accesso per il pool di utenti con un dominio di prefisso.

https://mydomain.auth.us-east-1.amazoncognito.com/oauth2/authorize?response_type=code&client_id=1example23456789&redirect_uri=https://www.example.com

Questo link è la pagina a cui Amazon Cognito ti indirizza quando accedi al menu App client, selezioni un app client, vai alla scheda Pagine di accesso e seleziona Visualizza pagina di accesso. Per ulteriori informazioni sui domini del pool di utenti, consulta. Configurazione di un dominio di bacino d'utenza Per ulteriori informazioni sui client delle app, inclusi gli ID client e gli URL di callback, consulta. Impostazioni specifiche dell'applicazione con client di app

Il seguente link di esempio imposta il reindirizzamento silenzioso al MyOIDCIdP provider dal parametro Endpoint Authorize with an identity_provider query. Questo URL ignora l'accesso interattivo al pool di utenti con accesso gestito e va direttamente alla pagina di accesso IdP.

https://mydomain.auth.us-east-1.amazoncognito.com/oauth2/authorize?identity_provider=MyOIDCIdP&response_type=code&client_id=1example23456789&redirect_uri=https://www.example.com