As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Acionador Lambda de federação de entrada
O gatilho de federação de entrada transforma os atributos do usuário federado durante o processo de autenticação com provedores de identidade externos. Quando os usuários se autenticam por meio de provedores de identidade configurados, esse gatilho permite que você modifique as respostas de provedores externos de SAML e OIDC interceptando e transformando dados no processo de autenticação, fornecendo controle programático sobre como os grupos de usuários do Amazon Cognito lidam com usuários federados e seus atributos.
Use esse gatilho para adicionar, substituir ou suprimir atributos antes de criar novos usuários ou atualizar perfis de usuários federados existentes. Esse gatilho recebe atributos brutos do provedor de identidade como entrada e retorna atributos modificados que o Amazon Cognito aplica ao perfil do usuário.
Tópicos
Visão geral do fluxo
Quando um usuário se autentica com um provedor de identidade externo, o Amazon Cognito invoca o gatilho de federação de entrada antes de criar ou atualizar o perfil do usuário. O gatilho recebe os atributos brutos do provedor de identidade e pode transformá-los antes que o Amazon Cognito os armazene. Esse fluxo ocorre tanto para novos usuários federados quanto para usuários existentes que se conectam novamente por meio da federação.
Parâmetros de gatilho do Lambda de federação de entrada
A solicitação que o Amazon Cognito transmite para essa função do Lambda é uma combinação dos parâmetros abaixo e dos parâmetros comuns que o Amazon Cognito adiciona a todas as solicitações.
Parâmetros de solicitação de federação de entrada
- Nome do provedor
-
O nome do provedor de identidade externo.
- Tipo de provedor
-
O tipo do provedor de identidade externo. Valores válidos:
OIDC,SAML,Facebook,Google,SignInWithApple,LoginWithAmazon. - attributes
-
Os atributos brutos recebidos do provedor de identidade antes do processamento. A estrutura varia de acordo com o tipo de provedor.
- Atributos. TokenResponse
-
OAuth dados de resposta do token do
/tokenendpoint. Disponível somente para OIDC e provedores sociais. Contémaccess_tokenid_token,refresh_tokentoken_type,expires_in,,scopee. - Attributes.idToken
-
O token de ID decodificado e validado que a JWT reivindica. Disponível somente para OIDC e provedores sociais. Contém informações verificadas de identidade do usuário, incluindo
sub(identificador de usuário exclusivo)emailname,,,iss(emissor),aud(público),exp(expiração) eiat(horário de emissão). - Atributos. Informações do usuário
-
Informações estendidas do perfil do usuário a partir do UserInfo endpoint. Disponível somente para OIDC e provedores sociais. Contém atributos de perfil detalhados
given_name, comofamily_name,picture,address, e outros campos específicos do provedor. Pode estar vazio se o IdP não suportar o UserInfo endpoint ou se a chamada do endpoint falhar. - Atributos. Resposta SAML
-
Atributos de asserção SAML. Disponível somente para provedores de SAML. Contém atributos da resposta SAML.
Parâmetros de resposta da federação de entrada
- userAttributesToMapa
-
Os atributos do usuário a serem aplicados ao perfil do usuário.
Importante
Você deve incluir TODOS os atributos do usuário que deseja reter na resposta, incluindo os atributos que você não está modificando. Todos os atributos não incluídos na userAttributesToMap resposta serão descartados e não serão armazenados no perfil do usuário. Isso se aplica tanto aos atributos modificados quanto aos não modificados.
Comportamento de resposta vazia
Se você retornar um objeto vazio {} parauserAttributesToMap, todos os atributos originais do provedor de identidade serão mantidos inalterados. Isso funciona como um sistema autônomo, como se a função Lambda nunca tivesse sido executada. Isso é diferente de omitir atributos, o que os elimina.
Atributos específicos do provedor
A estrutura do request.attributes varia com base noproviderType. O OIDC e os provedores sociais incluem tokenResponseidToken, e userInfo objetos. Os provedores de SAML incluem somente o samlResponse objeto.
Exemplo de federação de entrada: gerenciamento de membros de grupos
Este exemplo mostra como mapear grupos de provedores de identidade federados para grupos de grupos de usuários do Amazon Cognito. Essa função extrai a associação ao grupo da resposta federada e adiciona automaticamente usuários aos grupos correspondentes do Amazon Cognito, eliminando a necessidade de acionadores de pós-autenticação.
O Amazon Cognito transmite informações de evento para a função do Lambda. A função retorna o mesmo objeto de evento para o Amazon Cognito, com as alterações na resposta. No console do Lambda, você pode configurar um evento de teste com dados relevantes para o acionador do Lambda. A seguir, é mostrado um evento de teste para esse exemplo de código:
Exemplo de federação de entrada: truncar atributos grandes
Este exemplo mostra como truncar valores de atributos que excedem os limites de armazenamento do Amazon Cognito. Essa função verifica cada atributo do provedor de identidade. Se um valor de atributo exceder 2048 caracteres, ele trunca o valor e adiciona reticências para indicar truncamento. Todos os outros atributos passam inalterados.
O Amazon Cognito transmite informações de evento para a função do Lambda. A função retorna o mesmo objeto de evento para o Amazon Cognito, com as alterações na resposta. No console do Lambda, você pode configurar um evento de teste com dados relevantes para o acionador do Lambda. A seguir, é mostrado um evento de teste para esse exemplo de código:
Exemplo de federação de entrada: registro de eventos de federação
Este exemplo mostra como registrar eventos de autenticação federada para monitoramento e depuração. Esse exemplo de função captura informações detalhadas sobre usuários federados e seus atributos, fornecendo visibilidade do processo de autenticação.
O Amazon Cognito transmite informações de evento para a função do Lambda. A função retorna o mesmo objeto de evento para o Amazon Cognito, com as alterações na resposta. No console do Lambda, você pode configurar um evento de teste com dados relevantes para o acionador do Lambda. A seguir, é mostrado um evento de teste para esse exemplo de código:
Saída CloudWatch de registros esperada: