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à.
Come funziona l'autenticazione con Amazon Cognito
Quando il cliente accede a un pool di utenti Amazon Cognito, l'applicazione riceve token JSON web (). JWTs
Quando il cliente accede a un pool di identità, con un token del pool di utenti o con un altro provider, l'applicazione riceve credenziali temporanee AWS .
Con l'accesso al pool di utenti, puoi implementare l'autenticazione e l'autorizzazione interamente con un. AWS SDK Se non desideri creare componenti di interfaccia utente (UI) personalizzati, puoi richiamare un'interfaccia utente Web predefinita (l'interfaccia utente ospitata) o la pagina di accesso per il tuo provider di identità (IdP) di terze parti.
Questo argomento offre una panoramica di alcuni modi in cui l'applicazione può interagire con Amazon Cognito per autenticarsi con token ID, autorizzare con token di accesso e accedere con credenziali di pool di identità. Servizi AWS
Argomenti
Autenticazione e autorizzazione del pool di utenti con un API AWS SDK
AWS ha sviluppato componenti per i pool di utenti di Amazon Cognito, o provider di identità Amazon Cognito, in una varietà di framework di sviluppo. I metodi incorporati in questi metodi SDKs chiamano i pool di utenti di Amazon Cognito. API Lo stesso spazio dei API nomi dei pool di utenti include operazioni per la configurazione dei pool di utenti e per l'autenticazione degli utenti. Per una panoramica più completa, vedere. Utilizzo dei pool di utenti API e del server di autorizzazione
APIl'autenticazione si adatta al modello in cui le applicazioni dispongono di componenti dell'interfaccia utente esistenti e si basano principalmente sul pool di utenti come directory utente. Questo design aggiunge Amazon Cognito come componente all'interno di un'applicazione più grande. Richiede una logica programmatica per gestire catene complesse di sfide e risposte.
Questa applicazione non ha bisogno di implementare un'implementazione completa del relying party OpenID Connect (OIDC). Invece, ha la capacità di decodificare e utilizzare. JWTs Se desideri accedere al set completo di funzionalità del pool di utenti per gli utenti locali, crea la tua autenticazione con Amazon Cognito SDK nel tuo ambiente di sviluppo.
APIl'autenticazione con OAuth ambiti personalizzati è meno orientata all'autorizzazione esternaAPI. Per aggiungere ambiti personalizzati a un token di accesso dall'APIautenticazione, modifica il token in fase di esecuzione con un. Trigger Lambda di pre-generazione del token
Il diagramma seguente illustra una tipica sessione di accesso per l'autenticazione. API
APIflusso di autenticazione
-
Un utente accede all'applicazione.
-
Selezionano un link «Accedi».
-
Inseriscono nome utente e password.
-
L'applicazione richiama il metodo che effettua una InitiateAuthAPIrichiesta. La richiesta passa le credenziali dell'utente a un pool di utenti.
-
Il pool di utenti convalida le credenziali dell'utente e determina che l'utente ha attivato l'autenticazione a più fattori (). MFA
-
Il pool di utenti risponde con una sfida che richiede un codice. MFA
-
L'applicazione genera un prompt che raccoglie il MFA codice dall'utente.
-
L'applicazione richiama il metodo che effettua una richiesta. RespondToAuthChallengeAPI La richiesta passa il codice dell'utente. MFA
-
Il pool di utenti convalida il MFA codice dell'utente.
-
Il pool di utenti risponde con quello dell'utente. JWTs
-
L'applicazione decodifica, convalida e archivia o memorizza nella cache i dati dell'utente. JWTs
-
L'applicazione visualizza il componente con accesso controllato richiesto.
-
L'utente ne visualizza il contenuto.
-
Successivamente, il token di accesso dell'utente è scaduto e richiede di visualizzare un componente con accesso controllato.
-
L'applicazione determina che la sessione dell'utente debba persistere. Richiama nuovamente il InitiateAuthmetodo con il token di aggiornamento e recupera nuovi token.
Varianti e personalizzazioni
Puoi ampliare questo flusso con sfide aggiuntive, ad esempio sfide di autenticazione personalizzate. Puoi limitare automaticamente l'accesso agli utenti le cui password sono state compromesse o le cui caratteristiche di accesso impreviste potrebbero indicare un tentativo di accesso malevolo. Questo flusso ha lo stesso aspetto per le operazioni di registrazione, aggiornamento degli attributi utente e reimpostazione delle password. La maggior parte di questi flussi prevede operazioni pubbliche (lato client) e riservate (lato server) duplicate. API
Risorse correlate
Autenticazione del pool di utenti con l'interfaccia utente ospitata
L'interfaccia utente ospitata è un sito Web collegato al pool di utenti e al client dell'app. Può eseguire operazioni di accesso, registrazione e reimpostazione della password per i tuoi utenti. Un'applicazione con un componente dell'interfaccia utente ospitato per l'autenticazione può richiedere meno sforzi da parte degli sviluppatori per l'implementazione. Un'applicazione può ignorare i componenti dell'interfaccia utente per l'autenticazione e richiamare l'interfaccia utente ospitata nel browser dell'utente.
Le applicazioni raccolgono gli utenti JWTs con una posizione di reindirizzamento sul Web o sull'app. Le applicazioni che implementano l'interfaccia utente ospitata possono connettersi ai pool di utenti per l'autenticazione come se fossero un IdP OIDC OpenID Connect ().
L'autenticazione dell'interfaccia utente ospitata si adatta al modello in cui le applicazioni necessitano di un server di autorizzazione, ma non necessitano di funzionalità come l'autenticazione personalizzata, l'integrazione di pool di identità o il self-service per gli attributi utente. Se desideri utilizzare alcune di queste opzioni avanzate, puoi implementarle con un componente di pool di utenti per unSDK.
L'interfaccia utente ospitata e i modelli di autenticazione IdP di terze parti, che si basano principalmente sull'OIDCimplementazione, sono i migliori per i modelli di autorizzazione avanzati con OAuth ambiti 2.0.
Il diagramma seguente illustra una tipica sessione di accesso per l'autenticazione dell'interfaccia utente ospitata.
Flusso di autenticazione dell'interfaccia utente ospitata
-
Un utente accede alla tua applicazione.
-
Selezionano un link «Accedi».
-
L'applicazione indirizza l'utente a una richiesta di accesso all'interfaccia utente ospitata.
-
Inseriscono nome utente e password.
-
Il pool di utenti convalida le credenziali dell'utente e determina che l'utente ha attivato l'autenticazione a più fattori (). MFA
-
L'interfaccia utente ospitata richiede all'utente di inserire un codice. MFA
-
L'utente inserisce il proprio codice. MFA
-
L'interfaccia utente ospitata reindirizza l'utente all'applicazione.
-
L'applicazione richiede token con il codice di autorizzazione.
-
L'endpoint del token ritorna JWTs all'applicazione.
-
L'applicazione decodifica, convalida e archivia o memorizza nella cache i dati dell'utente. JWTs
-
L'applicazione visualizza il componente con accesso controllato richiesto.
-
L'utente ne visualizza il contenuto.
-
Successivamente, il token di accesso dell'utente è scaduto e richiede di visualizzare un componente con accesso controllato.
-
L'applicazione determina che la sessione dell'utente debba persistere. Richiede nuovi token dall'endpoint del token con il token di aggiornamento.
Varianti e personalizzazioni
Puoi personalizzare l'aspetto dell'interfaccia utente ospitata con CSS qualsiasi client dell'app. Puoi anche configurare i client delle app con i propri provider di identità, ambiti, accesso agli attributi utente e configurazione di sicurezza avanzata.
Risorse correlate
Autenticazione del pool di utenti con un provider di identità di terze parti
L'accesso con un provider di identità esterno (IdP), o autenticazione federata, è un modello simile all'interfaccia utente ospitata. La tua applicazione funge da OIDC relying party per il tuo pool di utenti, mentre il pool di utenti funge da passthrough per un IdP. L'IdP può essere una directory di utenti consumer come Facebook o Google, oppure una directory SAML 2.0 o OIDC aziendale come Azure.
Invece dell'interfaccia utente ospitata nel browser dell'utente, l'applicazione richiama un endpoint di reindirizzamento sul server di autorizzazione del pool di utenti. Dal punto di vista dell'utente, sceglie il pulsante di accesso nell'applicazione. Quindi il loro IdP li richiede di accedere. Come con l'autenticazione dell'interfaccia utente ospitata, un'applicazione raccoglie i dati in una posizione di reindirizzamento JWTs all'interno dell'app.
L'autenticazione con un IdP di terze parti si adatta a un modello in cui gli utenti potrebbero non voler inserire una nuova password quando si iscrivono alla tua applicazione. L'autenticazione di terze parti può essere aggiunta con il minimo sforzo a un'applicazione che implementa l'autenticazione dell'interfaccia utente ospitata. In effetti, l'interfaccia utente ospitata e quella di terze parti IdPs producono un risultato di autenticazione coerente a partire da piccole variazioni di ciò che viene richiamato nei browser degli utenti.
Come l'autenticazione dell'interfaccia utente ospitata, l'autenticazione federata è ideale per i modelli di autorizzazione avanzati con OAuth ambiti 2.0.
Il diagramma seguente illustra una tipica sessione di accesso per l'autenticazione federata.
Flusso di autenticazione federato
-
Un utente accede alla tua applicazione.
-
Selezionano un link «Accedi».
-
L'applicazione indirizza l'utente a una richiesta di accesso con il proprio IdP.
-
Inseriscono nome utente e password.
-
L'IdP convalida le credenziali dell'utente e determina che l'utente ha attivato l'autenticazione a più fattori (). MFA
-
L'IdP richiede all'utente di inserire un codice. MFA
-
L'utente inserisce il proprio codice. MFA
-
L'IdP reindirizza l'utente al pool di utenti con una SAML risposta o un codice di autorizzazione.
-
Se l'utente ha passato un codice di autorizzazione, il pool di utenti scambia silenziosamente il codice con token IdP. Il pool di utenti convalida i token IdP e reindirizza l'utente all'applicazione con un nuovo codice di autorizzazione.
-
L'applicazione richiede token con il codice di autorizzazione.
-
L'endpoint del token ritorna JWTs all'applicazione.
-
L'applicazione decodifica, convalida e archivia o memorizza nella cache i dati dell'utente. JWTs
-
L'applicazione visualizza il componente con accesso controllato richiesto.
-
L'utente ne visualizza il contenuto.
-
Successivamente, il token di accesso dell'utente è scaduto e richiede di visualizzare un componente con accesso controllato.
-
L'applicazione determina che la sessione dell'utente debba persistere. Richiede nuovi token dall'endpoint del token con il token di aggiornamento.
Varianti e personalizzazioni
Puoi avviare l'autenticazione federata nell'interfaccia utente ospitata, dove gli utenti possono scegliere da un elenco di quelle IdPs che hai assegnato al client dell'app. L'interfaccia utente ospitata può anche richiedere un indirizzo e-mail e indirizzare automaticamente la richiesta di un utente all'SAMLIdP corrispondente. L'autenticazione con un provider di identità di terze parti non richiede l'interazione dell'utente con l'interfaccia utente ospitata. L'applicazione può aggiungere un parametro di richiesta alla richiesta del server di autorizzazione dell'utente e fare in modo che l'utente reindirizzi silenziosamente alla pagina di accesso dell'IdP.
Risorse correlate
Autenticazione del pool di identità
Un pool di identità è un componente dell'applicazione distinto da un pool di utenti per funzione, spazio API dei nomi e SDK modello. Laddove i pool di utenti offrono l'autenticazione e l'autorizzazione basate su token, i pool di identità offrono l'autorizzazione per (). AWS Identity and Access Management IAM
Puoi assegnarne un set IdPs ai pool di identità e accedere agli utenti con essi. I pool di utenti sono strettamente integrati come pool di identità IdPs e offrono ai pool di identità la maggior parte delle opzioni per il controllo degli accessi. Allo stesso tempo, esiste un'ampia selezione di opzioni di autenticazione per i pool di identità. I pool di utenti si uniscono alle fonti di identità social SAMLOIDC, per sviluppatori e ospiti come percorsi verso AWS credenziali temporanee dai pool di identità.
L'autenticazione con un pool di identità è esterna: segue uno dei flussi del pool di utenti illustrati in precedenza o un flusso sviluppato indipendentemente con un altro IdP. Dopo aver eseguito l'autenticazione iniziale, l'applicazione passa la prova a un pool di identità e riceve in cambio una sessione temporanea.
L'autenticazione con un pool di identità si adatta a un modello in cui si impone il controllo degli accessi per gli asset e i dati delle applicazioni Servizi AWS con IAM autorizzazione. Analogamente all'APIautenticazione nei pool di utenti, un'applicazione efficace include AWS SDKs tutti i servizi a cui si desidera accedere a vantaggio degli utenti. AWS SDKsapplica le credenziali dell'autenticazione del pool di identità come firme alle richieste. API
Il diagramma seguente illustra una tipica sessione di accesso per l'autenticazione del pool di identità con un IdP.
Flusso di autenticazione federato
-
Un utente accede alla tua applicazione.
-
Selezionano un link «Accedi».
-
L'applicazione indirizza l'utente a una richiesta di accesso con il proprio IdP.
-
Inseriscono nome utente e password.
-
L'IdP convalida le credenziali dell'utente.
-
L'IdP reindirizza l'utente all'applicazione con una SAML risposta o un codice di autorizzazione.
-
Se l'utente ha passato un codice di autorizzazione, l'applicazione scambia il codice con token IdP.
-
L'applicazione decodifica, convalida e archivia o memorizza nella cache l'asserzione o l'asserzione dell'utente. JWTs
-
L'applicazione richiama il metodo che effettua una richiesta. GetIdAPI Passa il token o l'asserzione dell'utente e richiede un ID di identità.
-
Il pool di identità convalida il token o l'asserzione rispetto ai provider di identità configurati.
-
Il pool di identità restituisce un ID di identità.
-
L'applicazione richiama il metodo che effettua una GetCredentialsForIdentityAPIrichiesta. Passa il token o le asserzioni dell'utente e richiede un ruolo. IAM
-
Il pool di identità ne genera uno nuovoJWT. Il nuovo JWT contiene affermazioni che richiedono un IAM ruolo. Il pool di identità determina il ruolo in base alla richiesta dell'utente e ai criteri di selezione del ruolo nella configurazione del pool di identità per l'IdP.
-
AWS Security Token Service (AWS STS) risponde alla AssumeRoleWithWebIdentityrichiesta del pool di identità. La risposta contiene API le credenziali per una sessione temporanea con un IAM ruolo.
-
L'applicazione memorizza le credenziali della sessione.
-
L'utente esegue un'azione nell'app che richiede risorse con accesso protetto in. AWS
-
L'applicazione applica le credenziali temporanee come firme API alle richieste per il necessario. Servizi AWS
-
IAMvaluta le politiche associate al ruolo nelle credenziali. Le confronta con la richiesta.
-
Servizio AWS Restituisce i dati richiesti.
-
L'applicazione esegue il rendering dei dati nell'interfaccia utente.
-
L'utente visualizza i dati.
Varianti e personalizzazioni
Per visualizzare l'autenticazione con un pool di utenti, inserisci una delle precedenti panoramiche del pool di utenti dopo la fase Issue token/assertion. L'autenticazione dello sviluppatore sostituisce tutti i passaggi precedenti a Request identity con una richiesta firmata dalle credenziali dello sviluppatore. L'autenticazione guest passa inoltre direttamente a Request identity, non convalida l'autenticazione e restituisce le credenziali per un ruolo ad accesso limitato. IAM