Collegamento di utenti federati a un profilo utente esistente - 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à.

Collegamento di utenti federati a un profilo utente esistente

Spesso, lo stesso utente ha un profilo con più provider di identità (IdPs) che hai collegato al tuo pool di utenti. Amazon Cognito può collegare ogni occorrenza di un utente allo stesso profilo utente nella directory. In questo modo, una persona che ha più utenti IdP può avere un'esperienza coerente nell'app. AdminLinkProviderForUserindica ad Amazon Cognito di riconoscere l'ID univoco di un utente nella tua directory federata come utente del pool di utenti. Un utente del tuo pool di utenti conta come un utente attivo mensile (MAU) ai fini della fatturazione quando al profilo utente sono associate zero o più identità federate.

Quando un utente federato accede al tuo pool di utenti per la prima volta, Amazon Cognito cerca un profilo locale che hai collegato alla sua identità. Se non esiste alcun profilo collegato, il tuo pool di utenti crea un nuovo profilo. Puoi creare un profilo locale e collegarlo al tuo utente federato in qualsiasi momento prima del primo accesso, in una AdminLinkProviderForUser API richiesta, in un'attività di prearchiviazione pianificata o in un. Trigger Lambda di pre-registrazione Dopo che l'utente ha effettuato l'accesso e Amazon Cognito ha rilevato un profilo locale collegato, il pool di utenti legge le dichiarazioni dell'utente e le confronta con le regole di mappatura per l'IdP. Il tuo pool di utenti aggiorna quindi il profilo locale collegato con le attestazioni mappate in base al loro accesso. In questo modo, puoi configurare il profilo locale con le attestazioni di accesso e conservare le relative dichiarazioni di identità up-to-date presso il tuo provider. Dopo che Amazon Cognito ha associato il tuo utente federato a un profilo collegato, quest'ultimo accede sempre a quel profilo. Puoi quindi collegare più identità di provider del tuo utente allo stesso profilo, offrendo a un cliente un'esperienza coerente con la tua app. Per collegare un utente federato che ha precedentemente effettuato l'accesso, devi prima eliminare il suo profilo esistente. Puoi identificare i profili esistenti in base al loro formato: [Provider name]_identifier. Ad esempio, LoginWithAmazon_amzn1.account.AFAEXAMPLE. Un utente che hai creato e poi collegato a un'identità utente di terze parti ha lo stesso nome utente con cui è stato creato e un identities attributo che contiene i dettagli delle identità collegate.

Importante

Poiché AdminLinkProviderForUser consente a un utente con un'identità federata esterna di accedere come utente esistente nel pool di utenti, è fondamentale che venga utilizzato solo con attributi esterni IdPs e del provider considerati attendibili dal proprietario dell'applicazione.

Ad esempio, se sei un fornitore di servizi gestiti (MSP) con un'app che condividi con più clienti. Ciascun cliente accede alla tua app tramite Active Directory Federation Services (ADFS). L'amministratore IT, Carlos, ha un account in ciascuno dei domini dei clienti. Vuoi che Carlos venga riconosciuto come amministratore dell'app ogni volta che accede, indipendentemente dal gestore dell'identità digitale (IdP).

Il tuo ADFS IdPs attuale indirizzo e-mail di Carlos msp_carlos@example.com nella email rivendicazione delle affermazioni di Carlos SAML ad Amazon Cognito. Crei quindi un utente nel pool di utenti con il nome utente.Carlos. I seguenti comandi AWS Command Line Interface (AWS CLI) collegano le identità di Carlos da, e. IdPs ADFS1 ADFS2 ADFS3

Nota

È possibile collegare un utente in base alle asserzioni di attributi specifici. Questa capacità è esclusiva di e. OIDC SAML IdPs Per altri tipi di gestori, è necessario collegarsi in base a un attributo di origine fisso. Per ulteriori informazioni, vedere AdminLinkProviderForUser. È necessario impostare ProviderAttributeName su Cognito_Subject quando colleghi un IdP social a un profilo utente. ProviderAttributeValue deve essere l'identificatore univoco dell'utente con l'IdP.

aws cognito-idp admin-link-provider-for-user \ --user-pool-id us-east-1_EXAMPLE \ --destination-user ProviderAttributeValue=Carlos,ProviderName=Cognito \ --source-user ProviderName=ADFS1,ProviderAttributeName=email,ProviderAttributeValue=msp_carlos@example.com aws cognito-idp admin-link-provider-for-user \ --user-pool-id us-east-1_EXAMPLE \ --destination-user ProviderAttributeValue=Carlos,ProviderName=Cognito \ --source-user ProviderName=ADFS2,ProviderAttributeName=email,ProviderAttributeValue=msp_carlos@example.com aws cognito-idp admin-link-provider-for-user \ --user-pool-id us-east-1_EXAMPLE \ --destination-user ProviderAttributeValue=Carlos,ProviderName=Cognito \ --source-user ProviderName=ADFS3,ProviderAttributeName=email,ProviderAttributeValue=msp_carlos@example.com

Il profilo utente Carlos nel pool di utenti ora dispone del seguente attributo identities.

[{ "userId": "msp_carlos@example.com", "providerName": "ADFS1", "providerType": "SAML", "issuer": "http://auth.example.com", "primary": false, "dateCreated": 111111111111111 }, { "userId": "msp_carlos@example.com", "providerName": "ADFS2", "providerType": "SAML", "issuer": "http://auth2.example.com", "primary": false, "dateCreated": 111111111111111 }, { "userId": "msp_carlos@example.com", "providerName": "ADFS3", "providerType": "SAML", "issuer": "http://auth3.example.com", "primary": false, "dateCreated": 111111111111111 }]
Informazioni importanti sul collegamento di utenti federati
  • È possibile collegare fino a cinque utenti federati a ciascun profilo utente.

  • Puoi collegare gli utenti a ciascun IdP da un massimo di cinque attestati di attributo IdP, come definito dal ProviderAttributeName parametro di SourceUser in una richiesta. AdminLinkProviderForUser API Ad esempio, se hai collegato almeno un utente agli attributi di origineemail,phone, department given_namelocation, e puoi collegare solo altri utenti su uno di questi cinque attributi.

  • È possibile collegare utenti federati a un profilo utente federato esistente o a un utente locale.

  • Non è possibile collegare i provider ai profili utente in AWS Management Console.

  • Il token ID dell'utente contiene tutti i gestori associati nell'asserzione identities.

  • È possibile impostare una password per il profilo utente federato creato automaticamente in una richiesta. AdminSetUserPasswordAPI Lo stato dell'utente cambia quindi da EXTERNAL_PROVIDER a CONFIRMED. Un utente in questo stato può accedere come utente federato e avviare flussi di autenticazione come un utente locale collegato. API Possono anche modificare la password e gli attributi in richieste autenticate da token API come e. ChangePasswordUpdateUserAttributes Come best practice di sicurezza e per mantenere gli utenti sincronizzati con il tuo IdP esterno, non impostare la password per i profili di utenti federati. Collega invece gli utenti ai profili locali con AdminLinkProviderForUser.

  • Amazon Cognito compila gli attributi utente in un profilo utente locale collegato quando l'utente accede tramite il proprio gestore dell'identità digitale. Amazon Cognito elabora le dichiarazioni di identità nel token ID di un IdP OIDC e controlla anche l'userInfoendpoint sia della versione 2.0 che dei provider. OAuth OIDC Amazon Cognito assegna la priorità alle informazioni in un token ID rispetto alle informazioni di userInfo.

Quando scopri che il tuo utente non utilizza più un account utente esterno che hai collegato al suo profilo, puoi dissociare quell'account utente dal tuo utente del pool di utenti. Quando hai collegato il tuo utente, hai fornito il nome dell'attributo utente, il valore dell'attributo e il nome del provider nella richiesta. Per rimuovere un profilo di cui l'utente non ha più bisogno, effettua una AdminDisableProviderForUserAPIrichiesta con parametri equivalenti.

AdminLinkProviderForUserPer ulteriori esempi e sintassi dei comandi, vedere. AWS SDKs