Como faço para obter tokens de identidade social ou OIDC emitidos por IdPs para grupos de usuários do Amazon Cognito?
Quero saber como obter os tokens de acesso e ID emitidos pelo provedor de identidades (IdP) que integrei aos grupos de usuários do Amazon Cognito para fins de autorização ou solução de problemas.
Breve descrição
O fluxo de autenticação de IdP OpenID Connect (OIDC) não permite que o usuário ou aplicativo veja os tokens do lado do IdP. Para fins de autorização ou solução de problemas, alguns casos de uso exigem os tokens reais emitidos pelo IdP dentro da aplicação.
**Importante:**a resolução a seguir pressupõe que você tenha integrado o IdP OIDC ou o IdP social a grupos de usuários do Amazon Cognito. Se você não integrou um IdP ao seu grupo de usuários, adicione um login de grupo de usuários por meio de terceiros.
Resolução
Criar um atributo personalizado em um grupo de usuários
Para criar um atributo personalizado em seu grupo de usuários, conclua as seguintes etapas:
- Abra o novo console do Amazon Cognito e escolha a guia Experiência de cadastro no seu grupo de usuários.
- Na seção Atributos personalizados, escolha Adicionar atributos personalizados.
- Para criar um atributo personalizado para um token de acesso, insira os seguintes valores:
Nome: access_token
Tipo: String
Máximo: 2.048
Mutável: Marque essa caixa de seleção - Escolha Salvar.
- Para criar um atributo personalizado para um token de ID, insira os seguintes valores:
Nome: id_token
Tipo: String
Máximo: 2.048
Mutável: Marque essa caixa de seleção - Escolha Salvar.
Configure o mapeamento de atributos entre o Amazon Cognito e seu IdP
Para configurar o mapeamento de atributos para atributos do IdP, conclua as seguintes etapas:
- Abra o novo console do Amazon Cognito e escolha a guia Experiência de login no seu grupo de usuários.
- Na seção Login do provedor de identidade federado, selecione seu IdP na lista.
- Na seção Informações do provedor de identidade, escolha Editar. Certifique-se de que os escopos a seguir estejam na seção Escopos autorizados:
Facebook: public_profile, email
Google: profile email openid
Login with Amazon: profile postal_code
Sign in with Apple: nome do e-mail
Todos os outros provedores de OIDC: openid do e-mail do perfil - Na página Provedor de identidades, escolha Editar na seção Mapeamento de atributos.
- Na coluna Atributo do grupo de usuários, selecione seu atributo personalizado.
- Na coluna Atributo OpenID Connect, selecione access_token ou id_token.
- Escolha Salvar.
A seguir estão os resultados da configuração do mapeamento de atributos:
- Atributo do grupo de usuários: custom:id_token
- Atributo OpenID Connect: id_token
- Atributo do grupo de usuários: custom:access_token
- Atributo OpenID Connect: access_token
Ative as permissões de leitura e gravação de atributos no seu cliente de aplicação do Amazon Cognito
Quando um usuário faz login na aplicação, o Amazon Cognito atualiza os atributos mapeados. Para que o Amazon Cognito atualize os atributos do grupo de usuários mapeados, os atributos mapeados devem ser graváveis nas configurações do cliente da aplicação. Para que o Amazon Cognito atualize o token de ID do usuário, os atributos devem ser legíveis nas configurações do cliente da aplicação.
Para ativar permissões de leitura e gravação, conclua as seguintes etapas:
- Abra o novo console do Amazon Cognito e escolha a guia Integração de aplicações no seu grupo de usuários.
- Selecione seu cliente de aplicação.
- Na seção Permissões de leitura e gravação do atributo, escolha Editar.
- Na página Editar permissões de leitura e gravação de atributos, marque as caixas de seleção de leitura e gravação para seus atributos personalizados.
- Escolha Salvar.
Repita essas etapas para cada cliente de aplicação que usa o atributo personalizado.
Para obter mais informações, consulte de Permissões e escopos do atributo.
Usar o provedor OIDC terceirizado ou o IdP social para fazer login
Ao realizar uma nova autenticação de IdP por meio da interface de usuário hospedada do Amazon Cognito, você pode ver os tokens de IdP nos atributos personalizados. Escolha um usuário final para ver os tokens de IdP em seus atributos. Ao decodificar o token de ID, você também vê os atributos personalizados que contêm tokens de IdP.
Exemplo de seção de carga útil do token de ID emitido para o usuário final:
{ "custom:access_token": "ya29.a0AeTM1ic9iv_FqpDQeIN......w1OPKdFEbR_Tea", "iss": "https://cognito-idp.example_region.amazonaws.com/example_user_pool_id", "custom:id_token": "eyJhbGciOiJSUzI1NiIsImtpZCI6IjhjMjdkYjRkMTN............saDMuZ29vZ2xldXNlcmNv" }
Importante:
- O tamanho máximo de qualquer atributo personalizado é 2.048 caracteres. Quando um token de IdP excede 2.048 caracteres, você recebe o seguinte erro: “Os atributos da string não podem ter um comprimento superior a 2.048".
- Você não pode remover ou modificar um atributo personalizado depois de criá-lo.
- Se o atributo personalizado não for atualizado nos logins subsequentes, verifique a mutabilidade do atributo personalizado. Esse problema é esperado após você desmarcar a caixa de seleção Mutável ao criar o atributo. Para saber mais, consulte Atributos personalizados.
Observação: se você ainda não conseguir obter um token de IdP, entre em contato com seu IdP. Verifique se o IdP oferece suporte à passagem de tokens que têm atributos para o Amazon Cognito. Em seguida, entre em contato com o AWS Support para obter mais soluções de problemas.
Informações relacionadas
Como configurar o Auth0 como um provedor OIDC em um grupo de usuários do Amazon Cognito?
How do I set up LinkedIn as a social identity provider in an Amazon Cognito user pool?
How do I set up Okta as an OpenID Connect identity provider in an Amazon Cognito user pool?
Como visualizar uma resposta SAML em seu navegador para solução de problemas
Conteúdo relevante
- AWS OFICIALAtualizada há 7 meses
- AWS OFICIALAtualizada há 2 meses