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

Gli utenti possono accedere alla tua applicazione utilizzando i loro account esistenti dai provider di identità OpenID Connect (OIDC) (IdPs). Con OIDC i provider, gli utenti di sistemi Single Sign-On indipendenti possono fornire le credenziali esistenti mentre l'applicazione riceve i OIDC token nel formato condiviso di pool di utenti. Un pool di utenti è un OIDC IdP che può anche fungere da relying party intermedio tra più utenti esterni OIDC IdPs e l'applicazione.

Gli utenti che accedono con un OIDC IdP non sono tenuti a fornire nuove credenziali o informazioni per accedere all'applicazione del pool di utenti. La tua applicazione può reindirizzarli silenziosamente al loro IdP per l'accesso, con un pool di utenti come strumento in background che standardizza il formato del token per la tua applicazione. Per ulteriori informazioni sul reindirizzamento IdP, consulta. Endpoint Authorize

Come con altri provider di identità di terze parti, devi registrare la tua applicazione presso il OIDC provider e ottenere informazioni sull'applicazione IdP che desideri connettere al tuo pool di utenti. Un OIDC IdP di un pool di utenti richiede un ID client, un segreto client, gli ambiti da richiedere e informazioni sugli endpoint del servizio del provider. Il tuo pool di utenti può scoprire gli endpoint del provider da un OIDC 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 del pool di utenti.

Panoramica dell'autenticazione con un OIDC IdP
Nota

L'accesso tramite terze parti (federazione) è disponibile per i bacini d'utenza Amazon Cognito. Questa funzionalità è indipendente dalla OIDC federazione con i pool di identità di Amazon Cognito.

Puoi aggiungere un OIDC IdP al tuo pool di utenti con AWS Management Console, tramite o con il AWS CLI metodo del pool API 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 OIDC IdP con la seguente configurazione:

    • Supporta l'autenticazione client client_secret_post. Amazon Cognito non verifica il token_endpoint_auth_methods_supported claim nell'endpoint di OIDC rilevamento del 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.

    • Viene utilizzato solo HTTPS per OIDC endpoint come, eopenid_configuration. userInfo jwks_uri

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

    • Firma i token ID solo con HMAC - SHAECDSA, o algoritmi. 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.

Fase 1: Registrazione con un OIDC IdP

Prima di creare un OIDC IdP con Amazon Cognito, devi registrare la tua applicazione con l'OIDCIdP per ricevere un ID cliente e un segreto cliente.

Per registrarsi con un OIDC IdP
  1. Crea un account sviluppatore con l'OIDCIdP.

    Collegamenti a OIDC IdPs
    OIDCIdP Installazione OIDCScoperta URL
    Salesforce

    Installa un provider di identità Salesforce

    https://login.salesforce.com

    Identità Ping

    Installa un provider di identità Ping Identity

    https://Your Ping domain address:9031/idp/userinfo.openid

    Ad esempio: https://pf.company.com:9031/idp/userinfo.openid

    Okta

    Installa un provider di identità Okta

    https://Your Okta subdomain.oktapreview.com

    oppure https://Your Okta subdomain.okta.com

    Microsoft Azure Active Directory (AD)

    Installa un provider di identità Microsoft Azure AD

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

    Google

    Installa un provider di identità Google

    https://accounts.google.com

    Nota

    Amazon Cognito offre Google come IdP di accesso social integrato. È consigliabile utilizzare l'IdP integrato. Per informazioni, consulta Utilizzo di provider di identità social con un pool di utenti.

  2. Registra il dominio URL del tuo pool di utenti presso l'/oauth2/idpresponseendpoint con il tuo OIDC IdP. Ciò garantisce che l'OIDCIdP lo accetti successivamente da Amazon Cognito quando autentica gli utenti.

    https://mydomain.us-east-1.amazoncognito.com/oauth2/idpresponse
  3. Registra la tua callback URL con il tuo pool di utenti Amazon Cognito. Questa è la URL pagina in cui Amazon Cognito reindirizza l'utente dopo un'autenticazione riuscita.

    https://www.example.com
  4. Seleziona i tuoi scopes (ambiti). L'ambito openid (OpenID) è obbligatorio. L'ambito email (E-mail) è necessario per ottenere l'accesso alle richieste email ed email_verifiedhttps://openid.net/specs/openid-connect-basic-1_0.html#StandardClaims.

  5. L'OIDCIdP ti fornisce un ID cliente e un segreto client. Li utilizzerai quando configurerai un OIDC IdP nel tuo pool di utenti.

Esempio: usa Salesforce come IdP con il tuo OIDC pool di utenti

Utilizzi un OIDC IdP quando desideri stabilire un rapporto di fiducia tra un IdP OIDC compatibile come Salesforce e il tuo 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, inserisci un URL nell'/authorizeendpoint per il dominio del pool di utenti che accede con il tuo Salesforce IdP. Quando gli utenti accedono all'app connessa, Salesforce li indirizza a tale accesso per completare l'accesso. URL Quindi Salesforce reindirizza gli utenti al callback che hai associato al client dell'appURL.

      https://mydomain.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 OAuthle impostazioni e inserisci l'/oauth2/idpresponseendpoint per il URL dominio del pool di utenti in Callback. URL È URL qui che Salesforce emette il codice di autorizzazione che Amazon Cognito scambia con un token. OAuth

      https://mydomain.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.

Passaggio 2: aggiungi un OIDC IdP al tuo pool di utenti

In questa sezione, configuri il tuo pool di utenti per elaborare le richieste di autenticazione OIDC basate su un OIDC IdP.

Per aggiungere un OIDC IdP (console Amazon Cognito)

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

  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 la scheda Sign-in experience (Esperienza di accesso). Individua l'opzione Federated sign-in (Accesso federato) e seleziona Add an identity provider (Aggiungi un provider di identità).

  5. Scegli un provider di identità OpenID Connect.

  6. Inserisci un nome univoco nel campo Provider name (Nome provider).

  7. Inserisci l'ID client che hai ricevuto dal tuo provider nel campo ID client (Client ID).

  8. Inserisci il segreto client che hai ricevuto dal tuo provider nel campo Client secret (Segreto client).

  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 OAuth specifica 2.0.

    All'utente viene richiesto il consenso a fornire questi attributi all'app.

  10. Scegli un metodo di richiesta degli attributi per fornire ad Amazon Cognito il HTTP metodo (uno GET oPOST) che deve utilizzare per recuperare i dettagli dell'utente dall'userInfoendpoint gestito dal tuo provider.

  11. Scegli un metodo di configurazione per recuperare gli endpoint OpenID Connect URL tramite Compilazione automatica tramite emittente o immissione manuale. Utilizza la funzione di riempimento automatico tramite emittente URL quando il tuo provider dispone di un .well-known/openid-configuration endpoint pubblico in cui Amazon Cognito può recuperare URLs gli endpointtoken,, userInfo e. authorization jwks_uri

  12. Inserisci l'emittente URL oauthorization, tokenuserInfo, e l'jwks_uriendpoint del tuo URLs IdP.

    Nota

    URLDovrebbe iniziare con https:// e non terminare con una barra. / Con questo è possibile utilizzare solo i numeri di porta 443 e 80. URL Ad esempio, Salesforce utilizza questo: URL

    https://login.salesforce.com

    Se si sceglie il riempimento automatico, il documento HTTPS di scoperta deve utilizzare i seguenti valori: authorization_endpointtoken_endpoint,userinfo_endpoint, ejwks_uri. In caso contrario, l'accesso avrà esito negativo.

  13. Per impostazione predefinita, il OIDC claim sub è mappato all'attributo Username del pool di utenti. È possibile mappare altre OIDC rivendicazioni agli attributi del pool di utenti. Inserisci l'OIDCattestazione e scegli l'attributo del pool di utenti corrispondente dall'elenco a discesa. Ad esempio, l'indirizzo e-mail della richiesta viene spesso mappato all'attributo del bacino d'utenza Email (E-mail).

  14. Mappa gli attributi dal provider di identità al bacino d'utenza. Per ulteriori informazioni, vedi Specificazione di mappature degli attributi del provider di identità per il pool di utenti.

  15. Scegli Create (Crea).

  16. Dalla scheda App client integration (integrazione client dell'app), scegli uno dei client dell'app nella lista e modifica le impostazioni dell'interfaccia utente ospitata. Aggiungi il nuovo OIDC IdP al client dell'app in Provider di identità.

  17. Scegli Save changes (Salva modifiche).

Per aggiungere un OIDC IdP ()AWS CLI

  • Vedi le descrizioni dei parametri per il CreateIdentityProviderAPImetodo.

    aws cognito-idp create-identity-provider --user-pool-id string --provider-name string --provider-type OIDC --provider-details map --attribute-mapping string --idp-identifiers (list) --cli-input-json string --generate-cli-skeleton string

    Utilizza questa mappa di dettagli dei provider:

    { "client_id": "string", "client_secret": "string", "authorize_scopes": "string", "attributes_request_method": "string", "oidc_issuer": "string", "authorize_url": "string", "token_url": "string", "attributes_url": "string", "jwks_uri": "string" }

Passaggio 3: verifica la configurazione del tuo OIDC IdP

Puoi creare l'autorizzazione URL utilizzando gli elementi delle due sezioni precedenti e utilizzandoli per testare la configurazione del tuo OIDC IdP.

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

Per individuare il dominio, vai alla pagina della console Domain name (Nome dominio) del bacino d'utenza. Il client_id si trova nella pagina General settings (Impostazioni generali). Usa il callback URL per il parametro redirect_uri. Questa è la URL pagina in cui l'utente verrà reindirizzato dopo un'autenticazione riuscita.