Trigger Lambda di pre-generazione del token - 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à.

Trigger Lambda di pre-generazione del token

Poiché Amazon Cognito richiama questo trigger prima della generazione di token, puoi personalizzare le richieste di token dei pool di utenti. Con le funzionalità di base dell'evento di attivazione della versione 1 o V1_0 precedente alla generazione del token, puoi personalizzare il token di identità (ID). Nei pool di utenti con funzionalità di sicurezza avanzate attive, puoi generare la versione 2 o V2_0 dell'evento di attivazione con la personalizzazione del token di accesso.

Amazon Cognito invia un evento V1_0 come richiesta alla funzione con dati che scriverebbe sul token ID. Un evento V2_0 è una singola richiesta con i dati che Amazon Cognito scriverebbe sia nel token di identità che nel token di accesso. Per personalizzare entrambi i token, devi aggiornare la funzione in modo da utilizzare la versione trigger più recente e inviare i dati per entrambi i token nella stessa risposta.

Questo trigger Lambda può aggiungere, rimuovere e modificare alcune richieste nei token di identità e accesso prima che Amazon Cognito le invii all'app. Per usare questa funzionalità, puoi associare una funzione Lambda dalla console del pool di utenti di Amazon Cognito o aggiornare il pool di utenti LambdaConfig tramite la AWS Command Line Interface (AWS CLI).

Versioni degli eventi

Il tuo pool di utenti può fornire diverse versioni di un evento di attivazione precedente alla generazione di token alla tua funzione Lambda. Un V1_0 trigger fornisce i parametri per la modifica dei token ID. Un V2_0 trigger fornisce i parametri per quanto segue.

  1. Le funzioni di un V1_0 trigger.

  2. La possibilità di personalizzare i token di accesso.

  3. La possibilità di passare tipi di dati complessi a ID e accedere ai valori delle richieste di token:

    • Stringa

    • Numero

    • Booleano

    • Matrice di stringhe, numeri, valori booleani o una combinazione di questi

    • JSON

Nota

Nel token ID, è possibile compilare oggetti complessi in base ai valori delle attestazioni ad eccezione diphone_number_verified,, email_verified e. updated_at address

I pool di utenti forniscono V1_0 eventi per impostazione predefinita. Per configurare il tuo pool di utenti per l'invio di un V2_0 evento, scegli una versione Trigger event delle funzionalità di Basic + personalizzazione del token di accesso quando configuri il trigger nella console Amazon Cognito. Puoi anche impostare il valore di LambdaVersion nei LambdaConfigparametri in una richiesta UpdateUserPool o CreateUserPool API. Si applicano costi aggiuntivi per la personalizzazione dei token di accesso con V2_0 eventi. Per ulteriori informazioni, consultare Prezzi di Amazon Cognito.

Attestazioni e ambiti esclusi

Amazon Cognito limita le attestazioni e gli ambiti che puoi aggiungere, modificare o sopprimere nei token di accesso e identità. Se la funzione Lambda tenta di impostare un valore per una di queste attestazioni, Amazon Cognito emette un token con il valore dell'attestazione originale, se presente nella richiesta.

Attestazioni condivise
  • acr

  • amr

  • at_hash

  • auth_time

  • azp

  • exp

  • iat

  • iss

  • jti

  • nbf

  • nonce

  • origin_jti

  • sub

  • token_use

Attestazioni relative ai token ID
  • identities

  • aud

  • cognito:username

Attestazioni relative ai token di accesso
  • username

  • client_id

  • scope

    Nota

    Puoi modificare gli ambiti in un token di accesso con valori di risposta scopesToAdd e scopesToSuppress, ma non puoi modificare direttamente l'attestazione scope. Non è possibile aggiungere ambiti che iniziano con aws.cognito, incluso l'ambito riservato dei pool di utenti aws.cognito.signin.user.admin.

  • device_key

  • event_id

  • version

Non è possibile aggiungere o sostituire le attestazioni con i seguenti prefissi, ma è possibile sopprimerle o impedire che vengano visualizzate nel token.

  • dev:

  • cognito:

Puoi aggiungere un'attestazione aud ai token di accesso, ma il relativo valore deve corrispondere all'ID client dell'app della sessione corrente. Puoi derivare l'ID del client nell'evento di richiesta da event.callerContext.clientId.

Personalizzazione del token di identità

Con il trigger Lambda di pre-generazione di token, puoi personalizzare il contenuto di un token ID dal pool di utenti. Il token ID fornisce gli attributi utente da un'origine di identità affidabile per l'accesso a un'app web o per dispositivi mobili. Per ulteriori informazioni sui token ID, consulta Utilizzo di token ID.

Gli usi del trigger Lambda di pre-generazione di token con un token ID includono quanto segue.

  • Apportare una modifica in fase di runtime al ruolo IAM richiesto dall'utente da un pool di identità.

  • Aggiungere gli attributi utente da un'origine esterna.

  • Aggiungere o sostituire i valori degli attributi utente esistenti.

  • Sopprimere la divulgazione degli attributi utente che, a causa degli ambiti autorizzati dell'utente e dell'accesso in lettura agli attributi concesso al client dell'app, verrebbero altrimenti trasferiti all'app.

Personalizzazione del token di accesso

Con il trigger Lambda di pre-generazione di token, puoi personalizzare il contenuto di un token di accesso dal pool di utenti. Il token di accesso autorizza gli utenti a recuperare informazioni da risorse ad accesso protetto come operazioni API autorizzate da token Amazon Cognito e API di terze parti. Sebbene sia possibile generare token di accesso per l'autorizzazione machine-to-machine (M2M) con Amazon Cognito con una concessione di credenziali client, le richieste M2M non richiamano la funzione di attivazione precedente alla generazione di token e non possono emettere token di accesso personalizzati. Per ulteriori informazioni sui token di accesso, consulta Utilizzo del token di accesso.

Gli usi del trigger Lambda di pre-generazione di token con un token di accesso includono i seguenti.

  • Aggiungere o sopprimere gli ambiti OAuth 2.0 nell'attestazione scope. Ad esempio, puoi aggiungere ambiti a un token di accesso ottenuto dall'autenticazione API dei pool di utenti di Amazon Cognito, che assegna solo l'ambito aws.cognito.signin.user.admin.

  • Modificare l'appartenenza di un utente ai gruppi di pool di utenti.

  • Aggiunta di richieste non ancora presenti in un token di accesso Amazon Cognito.

  • Bloccare la divulgazione di attestazioni che altrimenti verrebbero trasmesse all'app.

Per supportare la personalizzazione dell'accesso nel pool di utenti, è necessario configurare il pool di utenti per generare una versione aggiornata della richiesta di trigger. Aggiornare il pool di utenti come illustrato nella procedura seguente.

AWS Management Console
Per supportare la personalizzazione del token di accesso in un trigger Lambda di pre-generazione di token
  1. Passa alla console Amazon Cognito e scegli User Pools (Bacini d'utenza).

  2. Scegli un bacino d'utenza esistente dall'elenco o creane uno nuovo.

  3. Se non l'hai già fatto, attiva le funzionalità di sicurezza avanzate dalla scheda Integrazione app.

  4. Scegli la scheda Proprietà del bacino d'utenza e individua Lambda triggers (Trigger Lambda).

  5. Aggiungi o modifica un Trigger di pre-generazione di token.

  6. Scegli una funzione Lambda in Assegna la funzione Lambda.

  7. Scegli una Versione dell'evento trigger delle funzionalità di base + personalizzazione del token di accesso. Questa impostazione aggiorna i parametri di richiesta inviati da Amazon Cognito alla funzione per includere campi per la personalizzazione del token di accesso.

User pools API

Per supportare la personalizzazione del token di accesso in un trigger Lambda di pre-generazione di token

UpdateUserPoolGenera una richiesta o API. CreateUserPool È necessario specificare un valore per tutti i parametri che non si desidera impostare su un valore predefinito. Per ulteriori informazioni, consulta Aggiornamento della configurazione del pool di utenti.

Includi il seguente contenuto nel parametro LambdaVersion della richiesta. Un valore LambdaVersion di V2_0 fa sì che il pool di utenti aggiunga parametri per la personalizzazione del token di accesso. Per richiamare una versione di funzione specifica, usa un ARN della funzione Lambda on una versione della funzione come valore di LambdaArn.

"PreTokenGenerationConfig": { "LambdaArn": "arn:aws:lambda:us-west-2:123456789012:function:MyFunction", "LambdaVersion": "V2_0" },

Origini del trigger Lambda di pre-generazione del token

Valore triggerSource Evento
TokenGeneration_HostedAuth Richiamato durante l'autenticazione dalla pagina di accesso dell'interfaccia utente ospitata di Amazon Cognito.
TokenGeneration_Authentication Chiamato dopo che i flussi di autenticazione degli utenti sono terminati.
TokenGeneration_NewPasswordChallenge Chiamato dopo che l'utente viene creato da un amministratore. Questo flusso viene chiamato quando l'utente deve cambiare una password temporanea.
TokenGeneration_AuthenticateDevice Chiamato alla fine dell'autenticazione di un dispositivo dell'utente.
TokenGeneration_RefreshTokens Chiamato quando un utente cerca di aggiornare l'identità e i token di accesso.

Parametri del trigger Lambda di pre-generazione del token

La richiesta passata da Amazon Cognito a questa funzione Lambda è una combinazione dei parametri seguenti e dei parametri comuni aggiunti da Amazon Cognito a tutte le richieste. Quando aggiungi un trigger Lambda di pre-generazione di token al pool di utenti, puoi scegliere una versione del trigger. Questa versione determina se Amazon Cognito passa una richiesta alla funzione Lambda con parametri aggiuntivi per la personalizzazione del token di accesso.

Version 1

Il token della versione 1 può impostare l'appartenenza al gruppo, i ruoli IAM e nuove attestazioni nei token ID.

{ "request": { "userAttributes": {"string": "string"}, "groupConfiguration": { "groupsToOverride": [ "string", "string" ], "iamRolesToOverride": [ "string", "string" ], "preferredRole": "string" }, "clientMetadata": {"string": "string"} }, "response": { "claimsOverrideDetails": { "claimsToAddOrOverride": {"string": "string"}, "claimsToSuppress": [ "string", "string" ], "groupOverrideDetails": { "groupsToOverride": [ "string", "string" ], "iamRolesToOverride": [ "string", "string" ], "preferredRole": "string" } } } }
Version 2

L'evento di richiesta della versione 2 aggiunge campi che personalizzano il token di accesso. Aggiunge inoltre il supporto per tipi di claimsToOverride dati complessi nell'oggetto di risposta. La tua funzione Lambda può restituire i seguenti tipi di dati nel valore di: claimsToOverride

  • Stringa

  • Numero

  • Booleano

  • Matrice di stringhe, numeri, valori booleani o una combinazione di questi

  • JSON

{ "request": { "userAttributes": { "string": "string" }, "scopes": ["string", "string"], "groupConfiguration": { "groupsToOverride": ["string", "string"], "iamRolesToOverride": ["string", "string"], "preferredRole": "string" }, "clientMetadata": { "string": "string" } }, "response": { "claimsAndScopeOverrideDetails": { "idTokenGeneration": { "claimsToAddOrOverride": { "string": [accepted datatype] }, "claimsToSuppress": ["string", "string"] }, "accessTokenGeneration": { "claimsToAddOrOverride": { "string": [accepted datatype] }, "claimsToSuppress": ["string", "string"], "scopesToAdd": ["string", "string"], "scopesToSuppress": ["string", "string"] }, "groupOverrideDetails": { "groupsToOverride": ["string", "string"], "iamRolesToOverride": ["string", "string"], "preferredRole": "string" } } } }

Parametri di richiesta di pre-generazione del token

Nome Descrizione Versione minima dell'evento di trigger
userAttributes

Attributi del profilo utente nel pool di utenti.

1
groupConfiguration

L'oggetto di input contenente l'attuale configurazione del gruppo. L'oggetto include groupsToOverride, iamRolesToOverride epreferredRole.

1
groupsToOverride

I gruppi di pool di utenti di cui l'utente fa parte.

1
iamRolesToSostituisci

È possibile associare un gruppo di pool di utenti a un ruolo AWS Identity and Access Management (IAM). Questo elemento è un elenco di tutti i ruoli IAM dei gruppi di cui l'utente è membro.

1
preferredRole

Puoi impostare una precedenza per i gruppi di pool di utenti. Questo elemento contiene il nome del ruolo IAM del gruppo con la precedenza più alta nell'elemento groupsToOverride.

1
clientMetadata

Una o più coppie chiave-valore che è possibile specificare e fornire come input personalizzato alla funzione Lambda per il trigger di pre-generazione del token.

Per passare questi dati alla funzione Lambda, usa il ClientMetadata parametro nelle operazioni AdminRespondToAuthChallengee RespondToAuthChallengeAPI. Amazon Cognito non include i dati del ClientMetadata parametro AdminInitiateAuthe le operazioni InitiateAuthAPI nella richiesta che passa alla funzione di generazione precedente al token.

1
ambiti

Ambiti OAuth 2.0 dell'utente. Gli ambiti presenti in un token di accesso sono gli ambiti standard e personalizzati del pool di utenti richiesti dall'utente e che il client dell'app è autorizzato a emettere.

2

Parametri di risposta di pre-generazione del token

Nome Descrizione Versione minima dell'evento di trigger
claimsOverrideDetails Un container per tutti gli elementi di un evento trigger V1_0. 1
claimsAndScopeOverrideDetails

Un container per tutti gli elementi di un evento trigger V2_0.

2
idTokenGeneration

Le attestazioni che desideri sostituire, aggiungere o sopprimere nel token di identità dell'utente. Questo elemento padre ai valori di personalizzazione del token ID viene visualizzato solo negli eventi della versione 2, ma gli elementi secondari vengono visualizzati negli eventi della versione 1.

2
accessTokenGeneration

Le attestazioni e gli ambiti che desideri sostituire, aggiungere o sopprimere nel token di accesso dell'utente. Questo elemento padre per accedere ai valori di personalizzazione del token viene visualizzato solo negli eventi della versione 2.

2
claimsToAddOrOverride

Una mappa di una o più attestazioni e dei relativi valori che desideri aggiungere o modificare. Per attestazioni relative ai gruppi, utilizza invece groupOverrideDetails.

Negli eventi della versione 2, questo elemento viene visualizzato sotto accessTokenGeneration e idTokenGeneration.

1 *
claimsToSuppress

Un elenco delle attestazioni che desideri vengano soppresse da Amazon Cognito. Se la tua funzione sopprime e sostituisce un valore di attestazione, Amazon Cognito sopprime l'attestazione.

Negli eventi della versione 2, questo elemento viene visualizzato sotto accessTokenGeneration e idTokenGeneration.

1
groupOverrideDetails

L'oggetto di output contenente l'attuale configurazione di gruppo. L'oggetto include groupsToOverride, iamRolesToOverride e preferredRole.

La funzione sostituisce l'oggetto groupOverrideDetails con l'oggetto fornito. Se fornisci un oggetto vuoto o nullo nella risposta, Amazon Cognito sopprime i gruppi. Per mantenere la configurazione di un gruppo esistente così com'è, copia il valore dell'oggetto groupConfiguration della richiesta nell'oggetto groupOverrideDetails della risposta. Quindi ritrasmettilo al servizio.

Amazon Cognito ID e i token di accesso contengono entrambi i token reclamo cognito:groups. L'oggetto groupOverrideDetails sostituirà l'attestazione cognito:groups nei token di accesso e nei token ID.

1
scopesToAdd

Un elenco di ambiti OAuth 2.0 che desideri aggiungere all'attestazione scope nel token di accesso dell'utente. Non puoi aggiungere valori di ambito che contengono uno o più caratteri con spazi vuoti.

2
scopesToSuppress

Un elenco di ambiti OAuth 2.0 che desideri rimuovere dall'attestazione scope nel token di accesso dell'utente.

2

* Gli oggetti di risposta agli eventi della versione 1 possono restituire stringhe. Gli oggetti di risposta agli eventi della versione 2 possono restituire oggetti complessi.

Esempio della versione due dell'evento trigger pre-token: aggiunta ed eliminazione di richieste, ambiti e gruppi

Questo esempio apporta le seguenti modifiche ai token di un utente.

  1. Imposta i family_name valori come Doe nel token ID.

  2. Impedisce la visualizzazione delle richieste email e phone_number nel token ID.

  3. Imposta la richiesta cognito:roles del token ID su "arn:aws:iam::123456789012:role\/sns_callerA","arn:aws:iam::123456789012:role\/sns_callerC","arn:aws:iam::123456789012:role\/sns_callerB".

  4. Imposta la richiesta cognito:preferred_role del token ID su arn:aws:iam::123456789012:role/sns_caller.

  5. Aggiunge gli ambiti openid, email e solar-system-data/asteroids.add al token di accesso.

  6. Elimina l'ambito phone_number e aws.cognito.signin.user.admin dal token di accesso. La rimozione di phone_number impedisce il recupero del numero di telefono dell'utente da userInfo. La rimozione di aws.cognito.signin.user.admin impedisce alle richieste API da parte dell'utente di leggere e modificare il proprio profilo con l'API dei pool di utenti di Amazon Cognito.

    Nota

    La rimozione di phone_number dagli ambiti impedisce solo il recupero del numero di telefono di un utente se gli ambiti rimanenti nel token di accesso includono openid e almeno un altro ambito standard. Per ulteriori informazioni, consulta Informazioni sugli ambiti.

  7. Imposta la richiesta cognito:groups del token ID e di accesso su "new-group-A","new-group-B","new-group-C".

JavaScript
export const handler = function(event, context) { event.response = { "claimsAndScopeOverrideDetails": { "idTokenGeneration": { "claimsToAddOrOverride": { "family_name": "Doe" }, "claimsToSuppress": [ "email", "phone_number" ] }, "accessTokenGeneration": { "scopesToAdd": [ "openid", "email", "solar-system-data/asteroids.add" ], "scopesToSuppress": [ "phone_number", "aws.cognito.signin.user.admin" ] }, "groupOverrideDetails": { "groupsToOverride": [ "new-group-A", "new-group-B", "new-group-C" ], "iamRolesToOverride": [ "arn:aws:iam::123456789012:role/new_roleA", "arn:aws:iam::123456789012:role/new_roleB", "arn:aws:iam::123456789012:role/new_roleC" ], "preferredRole": "arn:aws:iam::123456789012:role/new_role", } } }; // Return to Amazon Cognito context.done(null, event); };

Amazon Cognito trasferisce informazioni sugli eventi alla funzione Lambda. La funzione quindi restituisce a Amazon Cognito lo stesso oggetto evento con eventuali modifiche nella risposta. Nella console Lambda puoi configurare un evento di test con i dati pertinenti al trigger Lambda. Di seguito è riportato un evento di test per questo esempio di codice:

JSON
{ "version": "2", "triggerSource": "TokenGeneration_Authentication", "region": "us-east-1", "userPoolId": "us-east-1_EXAMPLE", "userName": "JaneDoe", "callerContext": { "awsSdkVersion": "aws-sdk-unknown-unknown", "clientId": "1example23456789" }, "request": { "userAttributes": { "sub": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "cognito:user_status": "CONFIRMED", "email_verified": "true", "phone_number_verified": "true", "phone_number": "+12065551212", "family_name": "Zoe", "email": "Jane.Doe@example.com" }, "groupConfiguration": { "groupsToOverride": ["group-1", "group-2", "group-3"], "iamRolesToOverride": ["arn:aws:iam::123456789012:role/sns_caller1", "arn:aws:iam::123456789012:role/sns_caller2", "arn:aws:iam::123456789012:role/sns_caller3"], "preferredRole": ["arn:aws:iam::123456789012:role/sns_caller"] }, "scopes": [ "aws.cognito.signin.user.admin", "openid", "email", "phone" ] }, "response": { "claimsAndScopeOverrideDetails": [] } }

Evento precedente alla generazione di token (versione due): aggiungere attestazioni con oggetti complessi

Questo esempio apporta le seguenti modifiche ai token di un utente.

  1. Aggiunge rivendicazioni di tipo number, string, booleano e JSON al token ID. Questa è l'unica modifica che gli eventi di attivazione della versione due rendono disponibile al token ID.

  2. Aggiunge rivendicazioni di tipo number, string, boolean e JSON al token di accesso.

  3. Aggiunge tre ambiti al token di accesso.

  4. Elimina le sub affermazioni email e nell'ID e nei token di accesso.

  5. Sopprime l'aws.cognito.signin.user.adminambito nel token di accesso.

JavaScript
export const handler = function(event, context) { var scopes = ["MyAPI.read", "MyAPI.write", "MyAPI.admin"] var claims = {} claims["aud"]= event.callerContext.clientId; claims["booleanTest"] = false; claims["longTest"] = 9223372036854775807; claims["exponentTest"] = 1.7976931348623157E308; claims["ArrayTest"] = ["test", 9223372036854775807, 1.7976931348623157E308, true]; claims["longStringTest"] = "\{\ \"first_json_block\": \{\ \"key_A\": \"value_A\",\ \"key_B\": \"value_B\"\ \},\ \"second_json_block\": \{\ \"key_C\": \{\ \"subkey_D\": [\ \"value_D\",\ \"value_E\"\ ],\ \"subkey_F\": \"value_F\"\ \},\ \"key_G\": \"value_G\"\ \}\ \}"; claims["jsonTest"] = { "first_json_block": { "key_A": "value_A", "key_B": "value_B" }, "second_json_block": { "key_C": { "subkey_D": [ "value_D", "value_E" ], "subkey_F": "value_F" }, "key_G": "value_G" } }; event.response = { "claimsAndScopeOverrideDetails": { "idTokenGeneration": { "claimsToAddOrOverride": claims, "claimsToSuppress": ["email","sub"] }, "accessTokenGeneration": { "claimsToAddOrOverride": claims, "claimsToSuppress": ["email","sub"], "scopesToAdd": scopes, "scopesToSuppress": ["aws.cognito.signin.user.admin"] } } }; console.info("EVENT response\n" + JSON.stringify(event, (_, v) => typeof v === 'bigint' ? v.toString() : v, 2)) console.info("EVENT response size\n" + JSON.stringify(event, (_, v) => typeof v === 'bigint' ? v.toString() : v).length) // Return to Amazon Cognito context.done(null, event); };

Amazon Cognito trasferisce informazioni sugli eventi alla funzione Lambda. La funzione quindi restituisce a Amazon Cognito lo stesso oggetto evento con eventuali modifiche nella risposta. Nella console Lambda puoi configurare un evento di test con i dati pertinenti al trigger Lambda. Di seguito è riportato un evento di test per questo esempio di codice:

JSON
{ "version": "2", "triggerSource": "TokenGeneration_HostedAuth", "region": "us-west-2", "userPoolId": "us-west-2_EXAMPLE", "userName": "JaneDoe", "callerContext": { "awsSdkVersion": "aws-sdk-unknown-unknown", "clientId": "1example23456789" }, "request": { "userAttributes": { "sub": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "cognito:user_status": "CONFIRMED" "email_verified": "true", "phone_number_verified": "true", "phone_number": "+12065551212", "email": "Jane.Doe@example.com" }, "groupConfiguration": { "groupsToOverride": ["group-1", "group-2", "group-3"], "iamRolesToOverride": ["arn:aws:iam::123456789012:role/sns_caller1"], "preferredRole": ["arn:aws:iam::123456789012:role/sns_caller1"] }, "scopes": [ "aws.cognito.signin.user.admin", "phone", "openid", "profile", "email" ] }, "response": { "claimsAndScopeOverrideDetails": [] } }

Esempio di evento versione 1 di generazione del pre-token: aggiunta di una nuova richiesta ed eliminazione di una richiesta esistente

Questo esempio usa un evento trigger versione 1 con una funzione Lambda di pre-generazione di token per aggiungere una nuova attestazione ed eliminarne una esistente.

Node.js
const handler = async (event) => { event.response = { claimsOverrideDetails: { claimsToAddOrOverride: { my_first_attribute: "first_value", my_second_attribute: "second_value", }, claimsToSuppress: ["email"], }, }; return event; }; export { handler };

Amazon Cognito trasferisce informazioni sugli eventi alla funzione Lambda. La funzione quindi restituisce a Amazon Cognito lo stesso oggetto evento con eventuali modifiche nella risposta. Nella console Lambda puoi configurare un evento di test con i dati pertinenti al trigger Lambda. Di seguito è riportato un evento di test per il codice di esempio. Dal momento che il codice di esempio non elabora i parametri di richiesta, puoi utilizzare un evento di test con una richiesta vuota. Per ulteriori informazioni sui parametri di richiesta comuni, consulta Evento trigger Lambda per il bacino d'utenza.

JSON
{ "request": {}, "response": {} }

Esempio di evento versione 1 di generazione del pre-token: modifica dell'appartenenza al gruppo dell'utente

Questo esempio usa un evento trigger versione 1 con una funzione Lambda di pre-generazione di token per modificare l'appartenenza ai gruppi dell'utente.

Node.js
const handler = async (event) => { event.response = { claimsOverrideDetails: { groupOverrideDetails: { groupsToOverride: ["group-A", "group-B", "group-C"], iamRolesToOverride: [ "arn:aws:iam::XXXXXXXXXXXX:role/sns_callerA", "arn:aws:iam::XXXXXXXXX:role/sns_callerB", "arn:aws:iam::XXXXXXXXXX:role/sns_callerC", ], preferredRole: "arn:aws:iam::XXXXXXXXXXX:role/sns_caller", }, }, }; return event; }; export { handler };

Amazon Cognito trasferisce informazioni sugli eventi alla funzione Lambda. La funzione quindi restituisce a Amazon Cognito lo stesso oggetto evento con eventuali modifiche nella risposta. Nella console Lambda puoi configurare un evento di test con i dati pertinenti al trigger Lambda. Di seguito è riportato un evento di test per questo esempio di codice:

JSON
{ "request": {}, "response": {} }