Specificazione di mappature degli attributi del provider di identità per il bacino d'utenza - 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à.

Specificazione di mappature degli attributi del provider di identità per il bacino d'utenza

Puoi utilizzare l'API AWS Management Console, or the AWS CLI o, per specificare le mappature degli attributi per il provider di identità (IdP) del tuo pool di utenti.

Cose da sapere sulle mappature

Prima di iniziare a configurare la mappatura degli attributi utente, esamina i seguenti dettagli importanti.

  • Quando un utente federato effettua l'accesso all'applicazione, per ogni attributo del pool di utenti richiesto deve essere presente una mappatura. Ad esempio, se il pool di utenti richiede un attributo email per l'accesso, mappa questo attributo al suo equivalente del gestore dell'identità digitale (IdP).

  • Di default, gli indirizzi di posta elettronica mappati non sono verificati. Non è possibile verificare un indirizzo e-mail mappato utilizzando un codice una tantum. Tuttavia, puoi mappare un attributo del provider di identità per ottenere lo stato di verifica. Ad esempio, Google e la maggior parte dei provider OIDC includono l'attributo email_verified.

  • Puoi mappare i token del gestore dell'identità digitale agli attributi personalizzati nel pool di utenti. I provider social visualizzano un token di accesso, mentre i provider OIDC visualizzano un token di accesso e ID. Per mappare un token, aggiungi un attributo personalizzato con una lunghezza massima di 2.048 caratteri, concedi al client dell'app l'accesso in scrittura all'attributo e mappa access_token o id_token dal gestore dell'identità digitale all'attributo personalizzato.

  • Per ogni attributo del pool di utenti mappato, la lunghezza massima del valore (2.048 caratteri) deve essere sufficiente per il valore recuperato da Amazon Cognito dal gestore dell'identità digitale. In caso contrario, Amazon Cognito genera un errore quando gli utenti accedono alla tua applicazione. Amazon Cognito non supporta la mappatura tra token del gestore dell'identità digitale e attributi personalizzati quando i token hanno una lunghezza superiore a 2.048 caratteri.

  • Amazon Cognito ricava l'usernameattributo nel profilo di un utente federato da affermazioni specifiche approvate dal tuo IdP federato, come illustrato nella tabella seguente. Amazon Cognito, ad esempio, aggiunge questo valore di attributo al nome del tuo IdP. MyOIDCIdP_[sub] Se desideri che i tuoi utenti federati abbiano un attributo che corrisponda esattamente a un attributo nella tua directory utente esterna, mappalo a un attributo di accesso di Amazon Cognito come. preferred_username

    Provider di identità Attributo di origine username
    Facebook id
    Google sub
    Login with Amazon user_id
    Accedi con Apple sub
    Provider SAML NameID
    Provider OpenID Connect (OIDC) sub
  • Amazon Cognito deve essere in grado di aggiornare gli attributi mappati del bacino d'utenza quando gli utenti accedono alla tua applicazione. Quando un utente accede tramite un provider di identità, Amazon Cognito aggiorna gli attributi mappati con le informazioni più recenti del provider di identità. Amazon Cognito aggiorna ciascun attributo mappato, anche se il valore corrente già soddisfa le informazioni più recenti. Per garantire che Amazon Cognito possa aggiornare gli attributi, controlla i seguenti requisiti:

    • Tutti gli attributi personalizzati del pool di utenti mappati dal gestore dell'identità digitale (IdP) devono essere mutabili. Puoi aggiornare gli attributi personalizzati modificabili in qualsiasi momento. Al contrario, puoi impostare un valore per un attributo personalizzato immutabile di un utente solo quando il profilo utente viene creato. Per creare un attributo personalizzato mutabile nella console Amazon Cognito, seleziona la casella di controllo Mutabile per l'attributo che aggiungi quando selezioni Aggiungi attributi personalizzati nella scheda Esperienza di registrazione. Oppure, se crei il tuo pool di utenti utilizzando l'operazione CreateUserPoolAPI, puoi impostare il Mutable parametro per ciascuno di questi attributi su. true Se il tuo IdP invia un valore per un attributo immutabile mappato, Amazon Cognito restituisce un errore e l'accesso non riesce.

    • Nelle impostazioni del client di applicazioni, gli attributi mappati devono essere scrivibili. Puoi impostare gli attributi scrivibili nella pagina Client di applicazioni nella console Amazon Cognito. In alternativa, se crei il client dell'app utilizzando l'operazione API CreateUserPoolClient, puoi aggiungere questi attributi alla matrice WriteAttributes. Se il tuo IdP invia un valore per un attributo non scrivibile mappato, Amazon Cognito non imposta il valore dell'attributo e procede con l'autenticazione.

  • Quando gli attributi IdP contengono più valori, Amazon Cognito appiattisce tutti i valori in una singola stringa delimitata da spazi e codifica in formato URL i valori contenenti caratteri non alfanumerici (esclusi i caratteri ".", "-", "*" e "_"). È necessario decodificare e analizzare i singoli valori prima di utilizzarli nell'app.

Specificazione di mappature degli attributi di provider di identità per il bacino d'utenza (AWS Management Console)

È possibile utilizzare AWS Management Console per specificare le mappature degli attributi per l'IdP del pool di utenti.

Nota

Amazon Cognito eseguirà la mappatura delle registrazioni in ingresso agli attributi del bacino d'utenza solo se le registrazioni esistono nel token in ingresso. Se una registrazione mappata in precedenza non esiste più nel token in ingresso, non verrà eliminata o modificata. Se l'applicazione richiede la mappatura delle attestazioni eliminate, è possibile utilizzare il trigger Lambda di preautenticazione per eliminare l'attributo personalizzato durante l'autenticazione e consentire a questi attributi di ripopolarsi dal token in ingresso.

Specificazione della mappatura degli attributi di provider di identità social
  1. Accedi alla console Amazon Cognito. Se richiesto, inserisci le tue credenziali. AWS

  2. Nel pannello di navigazione, scegli User Pools (Bacini d'utenza) e seleziona i bacini d'utenza che intendi modificare.

  3. Scegli la scheda Sign-in experience (Esperienza di accesso) e individua Federated sign-in (Accesso federato).

  4. Scegli l'opzione Add an identity provider (Aggiungi un provider di identità) oppure scegli il provider di identità Facebook, Google, Amazon o Apple che hai configurato. Individua Attribute mapping (Mappatura degli attributi) e scegli Edit (Modifica).

    Per ulteriori informazioni su come aggiungere un provider di identità social, consulta Aggiunta di provider di identità social a un bacino d'utenza.

  5. Esegui i seguenti passaggi per ciascun attributo per cui intendi eseguire la mappatura:

    1. Seleziona un attributo dalla colonna User pool attribute (Attributo bacino d'utenza). Questo è l'attributo assegnato al profilo utente nel bacino d'utenza. Gli attributi personalizzati vengono elencati dopo gli attributi standard.

    2. Seleziona un attributo dalla colonna <provider> attribute (attributo del <provider>). Questo sarà l'attributo passato dalla directory del provider. Gli attributi noti del provider dei social sono forniti in un elenco a discesa.

    3. Per mappare attributi aggiuntivi tra il tuo IdP e Amazon Cognito, scegli Add another attribute (Aggiungi un altro attributo).

  6. Scegli Save changes (Salva modifiche).

Specificazione di mappatura di attributo del provider SAML
  1. Accedi alla console Amazon Cognito. Se richiesto, inserisci le tue credenziali. AWS

  2. Nel pannello di navigazione, scegli User Pools (Bacini d'utenza) e seleziona i bacini d'utenza che intendi modificare.

  3. Scegli la scheda Sign-in experience (Esperienza di accesso) e individua Federated sign-in (Accesso federato).

  4. Scegli l'opzione Add an identity provider (Aggiungi un provider di identità) oppure seleziona il provider di identità SAML configurato. Individua Attribute mapping (Mappatura degli attributi) e scegli Edit (Modifica). Per ulteriori informazioni su come aggiungere un provider di identità SAML, consulta Aggiunta di provider di identità SAML a un bacino d'utenza.

  5. Esegui i seguenti passaggi per ciascun attributo per cui intendi eseguire la mappatura:

    1. Seleziona un attributo dalla colonna User pool attribute (Attributo bacino d'utenza). Questo è l'attributo assegnato al profilo utente nel bacino d'utenza. Gli attributi personalizzati vengono elencati dopo gli attributi standard.

    2. Seleziona un attributo dalla colonna SAML attribute (attributo SAML). Questo sarà l'attributo passato dalla directory del provider.

      Il provider di identità potrebbe offrire esempi di asserzioni SAML come riferimento. Alcuni IdPs utilizzano nomi semplici, ad esempioemail, mentre altri utilizzano nomi di attributi in formato URL simili a:

      http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress
    3. Per mappare attributi aggiuntivi tra il tuo IdP e Amazon Cognito, scegli Add another attribute (Aggiungi un altro attributo).

  6. Scegli Save changes (Salva modifiche).

Specificare le mappature degli attributi del provider di identità per il pool di utenti (e l'API)AWS CLIAWS

Utilizza i seguenti comandi per specificare le mappature degli attributi del provider di identità per il bacino d'utenza.

Specificazione di mappature degli attributi al momento della creazione del provider
  • AWS CLI: aws cognito-idp create-identity-provider

    Esempio con file di metadati: aws cognito-idp create-identity-provider --user-pool-id <user_pool_id> --provider-name=SAML_provider_1 --provider-type SAML --provider-details file:///details.json --attribute-mapping email=http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress

    Dove details.json contiene:

    { "MetadataFile": "<SAML metadata XML>" }
    Nota

    Se <SAML metadata XML> contiene virgolette ("), è necessario inserire il carattere di escape (\").

    Esempio con URL di metadati:

    aws cognito-idp create-identity-provider \ --user-pool-id us-east-1_EXAMPLE \ --provider-name=SAML_provider_1 \ --provider-type SAML \ --provider-details MetadataURL=https://myidp.example.com/saml/metadata \ --attribute-mapping email=http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress
  • AWS API: CreateIdentityProvider

Specificazione delle mappature degli attributi per un provider di identità esistente
  • AWS CLI: aws cognito-idp update-identity-provider

    Esempio: aws cognito-idp update-identity-provider --user-pool-id <user_pool_id> --provider-name <provider_name> --attribute-mapping email=http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress

  • AWS API: UpdateIdentityProvider

Acquisizione di informazioni sulla mappatura degli attributi per un provider di identità specifico
  • AWS CLI: aws cognito-idp describe-identity-provider

    Esempio: aws cognito-idp describe-identity-provider --user-pool-id <user_pool_id> --provider-name <provider_name>

  • AWS API: DescribeIdentityProvider