Como obtenho tokens emitidos por um provedor OIDC ou um provedor social de identidades após a integração do provedor de identidades com o Amazon Cognito?

6 minuto de leitura
0

Quero obter tokens de acesso e identificação emitidos pelo provedor de identidades (IdP) integrado aos grupos de usuários do Amazon Cognito.

Breve descrição

No fluxo de autenticação de IdP OpenID Connect (OIDC), o Amazon Cognito troca o código de autorização emitido pelo IdP com os tokens do IdP. Em seguida, o Amazon Cognito prepara seu próprio conjunto de tokens e os devolve ao usuário final após a federação bem-sucedida. Porém, esse processo não permite que o usuário ou a aplicação vejam os tokens reais no lado do IdP. Alguns casos de uso podem exigir os tokens reais emitidos pelo IDP dentro da aplicação para fins de autorização ou solução de problemas. Para capturar e armazenar os tokens de acesso e identificação emitidos pelo IdP quando você federa em grupos de usuários do Amazon Cognito, siga as etapas na seção Resolução.

Importante: as etapas deste artigo pressupõem que você já tenha integrado o IdP OIDC ou o IdP social aos grupos de usuários do Amazon Cognito. Se você não integrou um IdP ao grupo de usuários, siga as etapas para adicionar um login de grupo de usuários por meio de terceiros.

Resolução

Criar um atributo personalizado em um grupo de usuários

Siga estas etapas para criar um atributo personalizado no seu grupo de usuários:

1.    Abra o novo console do Amazon Cognito e escolha a guia Sign-up Experience (Experiência de cadastramento) no grupo de usuários.

2.    Na seção Custom Attributes (Atributos personalizados), selecione o botão Add custom attributes (Adicionar atributos personalizados).

3.    Para criar um atributo personalizado para um token de acesso, insira os valores a seguir e salve as alterações.

  • Name (Nome): token_acesso
  • Type (Tipo): String
  • Max (Máx.): 2.048
  • Mutable: (Mutável): marque esta caixa de seleção

4.    Para criar um atributo personalizado para um token de identificação, insira os valores a seguir e salve as alterações.

  • Name (Nome): token_id
  • Type (Tipo): String
  • Max (Máx.): 2.048
  • Mutable: (Mutável): marque esta caixa de seleção

Configure o mapeamento de atributos entre o Amazon Cognito e o IdP

Siga estas etapas para configurar mapeamento de atributos para os atributos do IdP:

1.    Abra o novo console do Amazon Cognito e escolha a guia Sign-in Experience (Experiência de login) no grupo de usuários.

2.    Na seção Federated Identity Provider sign-in (Login do provedor de identidades federadas), selecione o IdP na lista.

3.    Escolha a opção Edit (Editar) perto da seção Identity provider information (Informações do provedor de identidades). Certifique-se de que os seguintes escopos estejam presentes na seção Authorized scopes (Escopos autorizados):

  • Exemplos de escopos do Facebook: perfil_público, e-mail
  • Exemplos de escopos do Google: perfil, e-mail, openid
  • Exemplos de escopos de Login com a Amazon: código_postal do perfil
  • Exemplos de escopos de Login com a Apple: nome do e-mail
  • Exemplos de escopos de todos os outros provedores OIDC: perfil, e-mail, openid

4.    Volte um passo para a página Identity provider (Provedor de identidades). Escolha Edit (Editar) perto da seção Attribute mapping (Mapeamento de atributos).

5.    Na coluna User pool attribute (Atributo do grupo de usuários), selecione o atributo personalizado que você criou no início.

6.    Na coluna OpenID Connect attribute (Atributo do OpenID Connect), selecione access_token (token_acesso) ou id_token(token_identificação), dependendo do tipo de token a ser mapeado. Depois, salve as alterações.

Exemplos de resultados da configuração do mapeamento de atributos:

Atributo do grupo de usuários: personalizado:token_id
Atributo do OpenID Connect: token_id

Atributo do grupo de usuários: personalizado:token_acesso
Atributo do OpenID Connect: token_acesso

Ative as permissões de leitura e gravação de atributos no 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 mapeados do grupo de usuários, os atributos mapeados devem ser graváveis nas configurações do cliente da aplicação. Para que o Amazon Cognito atualize o token de identificação do usuário, os atributos devem ser legíveis nas configurações do cliente da aplicação.

1.    Abra o novo console do Amazon Cognito e escolha a guia App integration (Integração de aplicações) no grupo de usuários.

2.    Selecione o cliente de aplicação na lista de clientes de aplicações.

3.    Na seção Attribute read and write permissions (Permissões de leitura e gravação de atributos), escolha Editar (Editar).

4.    Na página Edit attribute read and write permissions (Editar permissões de leitura e gravação de atributos), marque as caixas de seleção read (leitura) ewrite (gravação) dos atributos personalizados.

5.    Salve as alterações.

Repita essas etapas para cada cliente de aplicação que usa o atributo personalizado.

Para obter mais informações, consulte User pool attributes (Atributos do grupo de usuários) e acesse a guia Attribute permissions and scopes (Permissões e escopos de atributos).

Faça login usando o provedor OIDC terceirizado ou o IdP social

Ao realizar uma nova autenticação de IdP por meio da interface de usuário hospedada do Amazon Cognito, você pode ver os tokens do IdP nos atributos personalizados. Escolha um usuário adequado para ver os tokens do IdP nos seus atributos. A decodificação do token de identificação também fornece os atributos personalizados que contêm os tokens do IdP.

Exemplo de seção de carga útil do token de identificação 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"
}

Ao criar atributos personalizados, lembre-se dos seguintes pontos:

  • O tamanho máximo de qualquer atributo personalizado é de 2.048 caracteres. Quando um token de IdP ultrapassa 2.048 caracteres, você recebe o seguinte erro: "String attributes cannot have a length of more than 2048" (Os atributos da string não podem ter mais de 2.048 caracteres de comprimento).
  • Você não pode remover nem modificar um atributo personalizado após sua criação.
  • Se o atributo personalizado não estiver sendo atualizado nos logins subsequentes, verifique a mutabilidade do atributo personalizado. Esse problema é esperado depois que você desmarca a caixa de seleção Mutable (Mutável) ao criar o atributo. Para saber mais, veja User pool attributes (Atributos do grupo de usuários) e acesse a guia Custom attributes (Atributos personalizados).

Observação: se você ainda não conseguir obter um token do IdP depois de seguir as etapas anteriores, entre em contato com o IdP. Pergunte se o IdP oferece suporte à transmissão de tokens dentro dos atributos para o Amazon Cognito. Depois de confirmar, você pode entrar em contato com o AWS Support para obter soluções de problemas adicionais.


Informações relacionadas

Como configuro o Auth0 como um provedor OIDC em um grupo de usuários do Amazon Cognito?

Como configuro o LinkedIn como um provedor social de identidades em um grupo de usuários do Amazon Cognito?

Como configuro o Okta como um provedor de identidades OpenID Connect em um grupo de usuários do Amazon Cognito?

Como configuro o Google como um provedor de identidades federadas em um grupo de usuários do Amazon Cognito?

AWS OFICIAL
AWS OFICIALAtualizada há um ano