OIDCfluxo de autenticação IdP do grupo de usuários - Amazon Cognito

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á.

OIDCfluxo de autenticação IdP do grupo de usuários

Com o login do OpenID Connect (OIDC), seu grupo de usuários automatiza um fluxo de login com código de autorização com seu provedor de identidade (IdP). Depois que o usuário conclui o login com o IdP, o Amazon Cognito coleta o código no endpoint do provedor externo. oauth2/idpresponse Com o token de acesso resultante, seu grupo de usuários consulta o endpoint do userInfo IdP para recuperar os atributos do usuário. Em seguida, seu grupo de usuários compara os atributos recebidos com as regras de mapeamento de atributos que você configurou e preenche o perfil do usuário e o token de ID adequadamente.

Os escopos OAuth 2.0 que você solicita na configuração do seu OIDC provedor definem os atributos do usuário que o IdP fornece ao Amazon Cognito. Como melhor prática de segurança, solicite somente os escopos que correspondem aos atributos que você deseja mapear para seu grupo de usuários. Por exemplo, se seu grupo de usuários solicitaropenid profile, você receberá todos os atributos possíveis, mas se solicitar, openid email phone_number receberá apenas o endereço de e-mail e o número de telefone do usuário. Você pode configurar os escopos que você solicita OIDC IdPs para serem diferentes daqueles que você autoriza e solicita na solicitação de autenticação do cliente do aplicativo e do grupo de usuários.

Quando o usuário faz login no seu aplicativo usando um OIDC IdP, seu grupo de usuários conduz o seguinte fluxo de autenticação.

  1. Seu usuário acessa a página de login integrada do Amazon Cognito e tem a opção de fazer login por meio de um IdPOIDC, por exemplo, Salesforce.

  2. Seu usuário é redirecionado para o authorization endpoint do OIDC IdP.

  3. Depois que seu usuário se autentica, o OIDC IdP redireciona para o Amazon Cognito com um código de autorização.

  4. O Amazon Cognito troca o código de autorização com o OIDC IdP por um token de acesso.

  5. O Amazon Cognito cria ou atualiza a conta do usuário no grupo de usuários.

  6. O Amazon Cognito emite tokens do portador da aplicação, o que pode incluir tokens de identidade, acesso e atualização.

Fluxo de autenticação OIDC IdP do grupo de usuários
nota

O Amazon Cognito cancela solicitações de autenticação que não são concluídas em 5 minutos e redireciona o usuário para a interface do usuário hospedada. A página exibe a mensagem de erro Something went wrong (Ocorreu algum problema).

OIDCé uma camada de identidade acima da OAuth 2.0, que especifica tokens de identidade JSON -formatted (JWT) que são emitidos por IdPs aplicativos OIDC clientes (partes confiáveis). Consulte a documentação do seu OIDC IdP para obter informações sobre como adicionar o Amazon Cognito como OIDC parte confiável.

Quando um usuário se autentica com uma concessão de código de autorização, o grupo de usuários retorna tokens de ID, acesso e atualização. O token de ID é um OIDCtoken padrão para gerenciamento de identidade, e o token de acesso é um token OAuth2.0 padrão. Para obter mais informações sobre os tipos de concessão que o cliente de aplicação do grupo de usuários pode comportar, consulte Autorizar endpoint.

Como um grupo de usuários processa solicitações de um OIDC provedor

Quando seu usuário conclui o login com um OIDC provedor terceirizado, a interface de usuário hospedada no Amazon Cognito recupera um código de autorização do IdP. O grupo de usuários troca o código de autorização por tokens de acesso e ID com o endpoint token do IdP. O grupo de usuários não transmite esses tokens ao usuário ou à aplicação, mas os utiliza para criar um perfil de usuário com dados que ele apresenta em declarações nos próprios tokens.

O Amazon Cognito não valida de forma independente o token de acesso. Em vez disso, ele solicita informações de atributos do usuário do endpoint userInfo do provedor e espera que a solicitação seja negada se o token não for válido.

O Amazon Cognito valida o token de ID do provedor com as seguintes verificações:

  1. Verifique se o provedor assinou o token com um algoritmo do seguinte conjunto:RSA,HMAC, Curva elíptica.

  2. Se o provedor assinou o token com um algoritmo de assinatura assimétrico, confira se o ID da chave de assinatura na declaração kid do token está listado no endpoint jwks_uri do provedor.

  3. Compare a assinatura do token de ID com a assinatura que se espera com base nos metadados do provedor.

  4. Compare a iss reclamação com o OIDC emissor configurado para o IdP.

  5. Compare se a declaração aud corresponde ao ID do cliente configurado no IdP ou se ela contém o ID do cliente configurado se houver vários valores na declaração aud.

  6. Confira se a data e a hora na declaração exp não é anterior à hora atual.

O grupo de usuários valida o token de ID e, depois, tenta fazer uma solicitação ao endpoint userInfo do provedor com o token de acesso do provedor. Ele recupera todas as informações do perfil do usuário que os escopos no token de acesso o autorizam a ler. Depois, o grupo de usuários procura os atributos do usuário definidos conforme necessário. É necessário criar mapeamentos para os atributos necessários na configuração do provedor. O grupo de usuários confere o token de ID do provedor e a resposta userInfo. O grupo de usuários grava todas as declarações que correlacionam regras de mapeamento e atributos do usuário no perfil do grupo de usuários. O grupo de usuários ignora atributos que, embora correspondam a uma regra de mapeamento, não são obrigatórios e não se encontram nas declarações do provedor.