Utilizzo dei pool di utenti API e del server di autorizzazione - 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 dei pool di utenti API e del server di autorizzazione

Quando desideri eseguire la registrazione, l'accesso e la gestione di utenti nel pool di utenti, puoi utilizzare due opzioni.

  1. Gli endpoint del pool di utenti includono l'interfaccia utente ospitata e gli endpoint di federazione. Costituiscono un pacchetto di pagine web pubbliche che vengono attivate da Amazon Cognito quando scegli un dominio per il pool di utenti. Per iniziare rapidamente con le funzionalità di autenticazione e autorizzazione dei pool di utenti di Amazon Cognito, comprese le pagine per la registrazione, l'accesso, la gestione delle password e l'autenticazione a più fattori (MFA), utilizza l'interfaccia utente integrata dell'interfaccia utente ospitata. Gli altri endpoint del pool di utenti facilitano l'autenticazione con provider di identità di terze parti (). IdPs I servizi che vengono eseguiti includono quanto segue.

    1. Endpoint di callback del fornitore di servizi per reclami autenticati provenienti da te, come e. IdPs saml2/idpresponse oauth2/idpresponse Quando Amazon Cognito è un provider di servizi (SP) intermedio tra l'app e l'IdP, gli endpoint di callback rappresentano il servizio.

    2. Endpoint che forniscono informazioni sull'ambiente, ad esempio oauth2/userInfojwks.json. La tua app utilizza questi endpoint quando verifica i token o recupera i dati del profilo utente con le librerie e 2.0. AWS SDKs OAuth

  2. I pool di utenti di Amazon Cognito API sono un set di strumenti per la tua app web o mobile, dopo aver raccolto le informazioni di accesso nel tuo front-end personalizzato, per autenticare gli utenti. L'APIautenticazione dei pool di utenti produce i seguenti token web. JSON

    1. Un token di identità con richieste di attributi verificabili da parte dell'utente.

    2. Un token di accesso che autorizza l'utente a creare API richieste autorizzate da token a un endpoint di servizio.AWS

      Nota

      Per impostazione predefinita, i token di accesso provenienti dall'APIautenticazione dei pool di utenti contengono solo l'ambito. aws.cognito.signin.user.admin Per generare un token di accesso con ambiti aggiuntivi, ad esempio per autorizzare una richiesta a una terza parteAPI, richiedere gli ambiti durante l'autenticazione tramite gli endpoint del pool di utenti o aggiungere ambiti personalizzati in un. Trigger Lambda di pre-generazione del token La personalizzazione dei token di accesso aggiunge costi alla bolletta. AWS

Puoi collegare un utente federato, che normalmente accede tramite gli endpoint dei pool di utenti, con un utente il cui profilo è locale al pool di utenti. Un utente locale esiste esclusivamente nella directory del pool di utenti senza federazione tramite un IdP esterno. Se colleghi la loro identità federata a un utente locale in una AdminLinkProviderForUserAPIrichiesta, possono accedere con i pool di utenti. API Per ulteriori informazioni, consulta Collegamento di utenti federati a un profilo utente esistente.

I pool di utenti di Amazon Cognito hanno un duplice API scopo. Consente di creare e configurare le risorse dei pool di utenti di Amazon Cognito. Ad esempio, puoi creare pool di utenti, aggiungere AWS Lambda trigger e configurare il dominio dell'interfaccia utente ospitato. I pool di utenti eseguono API anche la registrazione, l'accesso e altre operazioni utente per utenti locali e collegati.

Scenario di esempio con i pool di utenti di Amazon Cognito API

  1. L'utente seleziona il pulsante "Crea un account" creato nell'app. Inserisce un indirizzo e-mail e una password.

  2. La tua app invia una SignUpAPIrichiesta e crea un nuovo utente nel tuo pool di utenti.

  3. L'app richiede all'utente un codice di conferma e-mail. Gli utenti inseriscono il codice ricevuto in un messaggio di posta elettronica.

  4. L'app invia una ConfirmSignUpAPIrichiesta con il codice di conferma dell'utente.

  5. L'app richiede all'utente il nome utente e password. Le relative informazioni vengono inserite.

  6. L'app invia una InitiateAuthAPIrichiesta e memorizza un token ID, un token di accesso e un token di aggiornamento. L'app chiama le OIDC librerie per gestire i token dell'utente e mantenere una sessione persistente per quell'utente.

Nei pool di utenti di Amazon CognitoAPI, non puoi accedere agli utenti che si federano tramite un IdP. Questi utenti devono essere autenticati tramite gli endpoint del pool di utenti. Per ulteriori informazioni sugli endpoint del pool di utenti che includono l'interfaccia utente ospitata, consultare Endpoint del pool di utenti e riferimento all'interfaccia utente ospitata. Gli utenti federati possono accedere all'interfaccia utente ospitata e selezionare il provider di identità oppure puoi inviare gli utenti direttamente al provider di identità per l'accesso, ignorando l'interfaccia utente ospitata. Quando la tua API richiesta Endpoint Authorize include un parametro IdP, Amazon Cognito reindirizza silenziosamente l'utente alla pagina di accesso IdP.

Scenario di esempio con endpoint del pool di utenti

  1. L'utente seleziona il pulsante "Crea un account" creato nell'app.

  2. L'utente riceve un elenco di provider di identità social in cui sono state registrate le credenziali sviluppatore. L'utente sceglie Apple.

  3. L'app avvia una richiesta a Endpoint Authorize con il nome di provider SignInWithApple.

  4. Il browser dell'utente apre la pagina di autorizzazione Apple. OAuth L'utente sceglie di consentire ad Amazon Cognito di leggere le informazioni sul profilo.

  5. Amazon Cognito conferma il token di accesso Apple ed esegue una query sul profilo Apple dell'utente.

  6. L'utente presenta un codice di autorizzazione Amazon Cognito all'app.

  7. L'app scambia il codice di autorizzazione con Endpoint Token e memorizza un token ID, un token di accesso e un token di aggiornamento. L'app richiama le OIDC librerie per gestire i token dell'utente e mantenere una sessione persistente per quell'utente.

I pool di utenti API e gli endpoint del pool di utenti supportano una varietà di scenari, descritti in questa guida. Le sezioni seguenti esaminano in che modo i pool di utenti si dividono API ulteriormente in classi che supportano i requisiti di registrazione, accesso e gestione delle risorse.

Pool di utenti di Amazon Cognito, operazioni autenticate e non autenticate API

I pool di utenti di Amazon CognitoAPI, sia un'interfaccia di gestione delle risorse che un'interfaccia di autenticazione e autorizzazione rivolta all'utente, combinano i modelli di autorizzazione che seguono le sue operazioni. A seconda dell'APIoperazione, potrebbe essere necessario fornire l'autorizzazione con IAM credenziali, un token di accesso, un token di sessione, un client secret o una combinazione di questi. Per molte operazioni di autenticazione e autorizzazione utente, è possibile scegliere tra versioni autenticate e non autenticate della richiesta. Le operazioni non autenticate sono best practice di sicurezza per le app distribuite agli utenti, come app per dispositivi mobili; non è necessario includere alcun segreto nel codice.

È possibile assegnare le autorizzazioni solo nelle IAM politiche per e. IAM-operazioni di gestione autenticate IAM-operazioni utente autenticate

IAM-le operazioni di gestione autenticate modificano e visualizzano la configurazione del pool di utenti e del client dell'app, come faresti in. AWS Management Console

Ad esempio, per modificare il pool di utenti in una UpdateUserPoolAPIrichiesta, è necessario presentare AWS le credenziali e le IAM autorizzazioni per aggiornare la risorsa.

Per autorizzare queste richieste in AWS Command Line Interface (AWS CLI) o in un AWS SDK, configurate l'ambiente con variabili di ambiente o una configurazione del client che aggiunga IAM credenziali alla richiesta. Per ulteriori informazioni, consulta Accesso AWS tramite AWS credenziali in. Riferimenti generali di AWS Puoi anche inviare richieste direttamente agli endpoint del servizio per i pool di utenti di Amazon Cognito. API È necessario autorizzare o firmare queste richieste con le credenziali AWS integrate nell'intestazione della richiesta. Per ulteriori informazioni, consulta Firmare AWS API le richieste.

IAM-operazioni di gestione autenticate
AddCustomAttributes
CreateGroup
CreateIdentityProvider
CreateResourceServer
CreateUserImportJob
CreateUserPool
CreateUserPoolClient
CreateUserPoolDomain
DeleteGroup
DeleteIdentityProvider
DeleteResourceServer
DeleteUserPool
DeleteUserPoolClient
DeleteUserPoolDomain
DescribeIdentityProvider
DescribeResourceServer
DescribeRiskConfiguration
DescribeUserImportJob
DescribeUserPool
DescribeUserPoolClient
DescribeUserPoolDomain
GetCSVHeader
GetGroup
GetIdentityProviderByIdentifier
GetSigningCertificate
GetUICustomization
GetUserPoolMfaConfig
ListGroups
ListIdentityProviders
ListResourceServers
ListTagsForResource
ListUserImportJobs
ListUserPoolClients
ListUserPools
ListUsers
ListUsersInGroup
SetRiskConfiguration
SetUICustomization
SetUserPoolMfaConfig
StartUserImportJob
StopUserImportJob
TagResource
UntagResource
UpdateGroup
UpdateIdentityProvider
UpdateResourceServer
UpdateUserPool
UpdateUserPoolClient
UpdateUserPoolDomain

IAM-operazioni utente autenticate: registrazione, accesso, gestione delle credenziali, modifica e visualizzazione degli utenti.

Ad esempio, un livello applicazione lato server potrebbe eseguire il backup di un front-end Web. La tua app lato server è un client OAuth riservato di cui ti fidi con accesso privilegiato alle tue risorse Amazon Cognito. Per registrare un utente nell'app, il tuo server può includere AWS credenziali in una richiesta. AdminCreateUserAPI Per ulteriori informazioni sui tipi di OAuth client, vedere Tipi di client in The OAuth 2.0 Authorization Framework.

Per autorizzare queste richieste in alternativa AWS SDK, configura l' AWS CLI ambiente dell'app lato server con variabili di ambiente o una configurazione client che aggiunga IAM credenziali alla richiesta. Per ulteriori informazioni, consulta Accesso AWS tramite credenziali AWS in. Riferimenti generali di AWS Puoi anche inviare richieste direttamente agli endpoint del servizio per i pool di utenti di Amazon Cognito. API È necessario autorizzare o firmare queste richieste con le credenziali AWS integrate nell'intestazione della richiesta. Per ulteriori informazioni, consulta Firmare AWS API le richieste.

Se il client dell'app dispone di un client secret, è necessario fornire sia IAM le credenziali che, a seconda dell'operazione, il SecretHash parametro o il SECRET_HASH valore inAuthParameters. Per ulteriori informazioni, consulta Calcolo dei valori SecretHash.

IAM-operazioni utente autenticate
AdminAddUserToGroup
AdminConfirmSignUp
AdminCreateUser
AdminDeleteUser
AdminDeleteUserAttributes
AdminDisableProviderForUser
AdminDisableUser
AdminEnableUser
AdminForgetDevice
AdminGetDevice
AdminGetUser
AdminInitiateAuth
AdminLinkProviderForUser
AdminListDevices
AdminListGroupsForUser
AdminListUserAuthEvents
AdminRemoveUserFromGroup
AdminResetUserPassword
AdminRespondToAuthChallenge
AdminSetUserMFAPreference
AdminSetUserPassword
AdminSetUserSettings
AdminUpdateAuthEventFeedback
AdminUpdateDeviceStatus
AdminUpdateUserAttributes
AdminUserGlobalSignOut

Operazioni utente non autenticate: registrazione, accesso e avvio del ripristino delle password per gli utenti. Utilizza API operazioni non autenticate o pubbliche quando desideri che chiunque su Internet si registri e acceda alla tua app.

Ad esempio, per registrare un utente nella tua app, puoi distribuire un client OAuth pubblico che non fornisce alcun accesso privilegiato ai segreti. Puoi registrare questo utente con l'operazione non autenticataAPI. SignUp

Per inviare queste richieste in un client pubblico sviluppato con un AWS SDK, non è necessario configurare alcuna credenziale. Puoi anche inviare richieste direttamente agli endpoint del servizio per i API pool di utenti di Amazon Cognito senza autorizzazioni aggiuntive.

Se il client dell'app dispone di un segreto del client, devi fornire, a seconda dell'operazione, il parametro SecretHash o il valore SECRET_HASH in AuthParameters. Per ulteriori informazioni, consulta Calcolo dei valori SecretHash.

Operazioni utente non autenticate
SignUp
ConfirmSignUp
ResendConfirmationCode
ForgotPassword
ConfirmForgotPassword
InitiateAuth

Le operazioni utente autorizzate tramite token consentono di disconnettersi, gestire le credenziali, modificare e visualizzare gli utenti dopo che hanno effettuato l'accesso o iniziato il processo di accesso. Utilizza API operazioni autorizzate da token quando non desideri distribuire segreti nella tua app e desideri autorizzare le richieste con le credenziali dell'utente. Se l'utente ha completato l'accesso, è necessario autorizzare la richiesta autorizzata dal token con un token API di accesso. Se il tuo utente è nel bel mezzo di una procedura di accesso, devi autorizzare la sua API richiesta autorizzata dal token con un token di sessione che Amazon Cognito ha restituito in risposta alla richiesta precedente.

Ad esempio, in un client pubblico, potrebbe essere necessario aggiornare il profilo di un utente in modo da limitare l'accesso in scrittura solo al profilo dell'utente. Per effettuare questo aggiornamento, il client può includere il token di accesso dell'utente in una richiesta. UpdateUserAttributesAPI

Per inviare queste richieste a un client pubblico sviluppato con un AWS SDK, non è necessario configurare alcuna credenziale. Includi un parametro AccessToken o Session nella richiesta. Puoi anche inviare richieste direttamente agli endpoint del servizio per i pool di utenti di Amazon Cognito. API Per autorizzare una richiesta a un endpoint di servizio, includi il token di accesso o di sessione nel POST corpo della richiesta.

Per firmare una API richiesta per un'operazione autorizzata da token, includi il token di accesso come Authorization intestazione nella richiesta, nel formato. Bearer <Base64-encoded access token>

Operazioni utente autorizzate tramite token AccessToken Sessione
RespondToAuthChallenge
ChangePassword
GetUser
UpdateUserAttributes
DeleteUserAttributes
DeleteUser
ConfirmDevice
ForgetDevice
GetDevice
ListDevices
UpdateDeviceStatus
GetUserAttributeVerificationCode
VerifyUserAttribute
SetUserSettings
SetUserMFAPreference
GlobalSignOut
AssociateSoftwareToken
UpdateAuthEventFeedback
VerifySoftwareToken
RevokeToken¹

¹ RevokeToken accetta un token di aggiornamento come parametro. Il token di aggiornamento funge da token di autorizzazione e come risorsa di destinazione.