Usando os grupos API de usuários e os endpoints do grupo de usuários do Amazon Cognito - 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á.

Usando os grupos API de usuários e os endpoints do grupo de usuários do Amazon Cognito

Quando quiser se inscrever, fazer login e gerenciar usuários no grupo de usuários, você terá duas opções.

  1. Os endpoints do grupo de usuários incluem a interface do usuário hospedada e os endpoints de federação. Eles formam um pacote de páginas da web públicas que o Amazon Cognito ativa quando você seleciona um domínio para o grupo de usuários. Para começar rapidamente com os recursos de autenticação e autorização dos grupos de usuários do Amazon Cognito, incluindo páginas para cadastro, login, gerenciamento de senhas e autenticação multifatorial (MFA), use a interface de usuário integrada da interface de usuário hospedada. Os outros endpoints do pool de usuários facilitam a autenticação com provedores de identidade terceirizados (IdPs). Os serviços que eles realizam incluem o seguinte:

    1. Endpoints de retorno de chamada do provedor de serviços para reivindicações autenticadas de você, como e. IdPs saml2/idpresponse oauth2/idpresponse Quando o Amazon Cognito é um provedor de serviços (SP) intermediário entre sua aplicação e o IdP, os endpoints de retorno de chamada representam o serviço.

    2. Endpoints que fornecem informações sobre seu ambiente, como oauth2/userInfojwks.json. Seu aplicativo usa esses endpoints quando verifica tokens ou recupera dados do perfil do usuário com bibliotecas AWS SDKs e OAuth 2.0.

  2. Os grupos de usuários do Amazon Cognito API são um conjunto de ferramentas para seu aplicativo web ou móvel, depois de coletar informações de login em seu próprio front-end personalizado, para autenticar usuários. A API autenticação de grupos de usuários produz os seguintes tokens JSON da web.

    1. Um token de identidade com declarações de atributos verificáveis do usuário.

    2. Um token de acesso que autoriza seu usuário a criar API solicitações autorizadas por token para um endpoint de serviço.AWS

      nota

      Por padrão, os tokens de acesso da API autenticação de grupos de usuários contêm apenas o aws.cognito.signin.user.admin escopo. Para gerar um token de acesso com escopos adicionais, por exemplo, para autorizar uma solicitação a terceirosAPI, solicite escopos durante a autenticação por meio dos endpoints do grupo de usuários ou adicione escopos personalizados em um. Acionador do Lambda antes da geração do token A personalização do token de acesso adiciona custos à sua AWS fatura.

Você pode vincular um usuário federado, que normalmente faria login por meio dos endpoints de grupos de usuários, a um usuário cujo perfil seja local para sua lista de usuários. Um usuário local existe exclusivamente em seu diretório de grupo de usuários sem federação por meio de um IdP externo. Se você vincular sua identidade federada a um usuário local em uma AdminLinkProviderForUserAPIsolicitação, ele poderá entrar com os grupos API de usuários. Para obter mais informações, consulte Vincular usuários federados a um perfil de usuário existente.

Os grupos de usuários do Amazon Cognito têm dupla finalidadeAPI. Ela cria e configura os recursos de grupos de usuários do Amazon Cognito. Por exemplo, você pode criar grupos de usuários, adicionar AWS Lambda gatilhos e configurar seu domínio de interface de usuário hospedado. Os grupos de usuários API também realizam cadastro, login e outras operações de usuário para usuários locais e vinculados.

Exemplo de cenário com os grupos de usuários do Amazon Cognito API

  1. O usuário seleciona o botão “Criar uma conta” que você criou na aplicação. Ele inserem um endereço de e-mail e uma senha.

  2. Seu aplicativo envia uma SignUpAPIsolicitação e cria um novo usuário no seu grupo de usuários.

  3. A aplicação solicita que o usuário forneça um código de confirmação enviado por e-mail. O usuário insere o código que recebeu em uma mensagem de e-mail.

  4. Seu aplicativo envia uma ConfirmSignUpAPIsolicitação com o código de confirmação do usuário.

  5. A aplicação solicita que o usuário informe o nome de usuário e a senha, e ele insere essas informações.

  6. Seu aplicativo envia uma InitiateAuthAPIsolicitação e armazena um token de ID, um token de acesso e um token de atualização. Seu aplicativo chama OIDC bibliotecas para gerenciar os tokens do usuário e manter uma sessão persistente para esse usuário.

Nos grupos de usuários do Amazon CognitoAPI, você não pode cadastrar usuários que se federam por meio de um IdP. É necessário autenticar esses usuários por meio dos endpoints de grupo de usuários. Para ter mais informações sobre os endpoints do grupo de usuários que incluem a interface do usuário hospedada, consulte Referência da interface do usuário hospedada e endpoints de federação do grupo de usuários. Os usuários federados podem começar na interface de usuário hospedada e selecionar o IdP deles ou você pode ignorar a interface de usuário hospedada e enviar os usuários diretamente ao seu IdP para fazer login. Quando sua API solicitação Autorizar endpoint inclui um parâmetro de IdP, o Amazon Cognito redireciona silenciosamente seu usuário para a página de login do IdP.

Exemplo de cenário com endpoints de grupo de usuários

  1. O usuário seleciona o botão “Criar uma conta” que você criou na aplicação.

  2. Você apresenta ao usuário uma lista dos provedores de identidade social nos quais você registrou as credenciais de desenvolvedor. O usuário escolhe a Apple.

  3. A aplicação inicia uma solicitação para Autorizar endpoint com o nome do provedor SignInWithApple.

  4. O navegador do seu usuário abre a página de OAuth autorização da Apple. O usuário opta por permitir que o Amazon Cognito leia as informações do perfil dele.

  5. O Amazon Cognito confirma o token de acesso da Apple e consulta o perfil Apple do usuário.

  6. O usuário apresenta um código de autorização do Amazon Cognito para a aplicação.

  7. A aplicação troca o código de autorização pelo Endpoint de token e armazena um token de ID, token de acesso e token de atualização. Seu aplicativo chama OIDC bibliotecas para gerenciar os tokens do usuário e manter uma sessão persistente para esse usuário.

Os grupos de usuários API e os endpoints do grupo de usuários oferecem suporte a uma variedade de cenários, descritos neste guia. As seções a seguir examinam como os grupos de usuários se dividem API ainda mais em classes que atendem aos seus requisitos de inscrição, login e gerenciamento de recursos.

Grupos de usuários do Amazon Cognito, operações autenticadas e não autenticadas API

Os grupos de usuários do Amazon CognitoAPI, tanto uma interface de gerenciamento de recursos quanto uma interface de autenticação e autorização voltada para o usuário, combinam os modelos de autorização que seguem em suas operações. Dependendo da API operação, talvez seja necessário fornecer autorização com IAM credenciais, um token de acesso, um token de sessão, um segredo do cliente ou uma combinação deles. Para muitas operações de autenticação e autorização de usuários, você pode escolher entre versões autenticadas e não autenticadas da solicitação. Operações não autenticadas são a prática recomendada de segurança para aplicações que você distribui para os usuários, como aplicações móveis; não é necessário incluir nenhum segredo no código.

Você só pode atribuir permissões em IAM políticas para IAM-operações de gerenciamento autenticadas IAM-operações de usuário autenticadas e.

IAM-as operações de gerenciamento autenticadas modificam e visualizam a configuração do grupo de usuários e do cliente do aplicativo, como você faria no. AWS Management Console

Por exemplo, para modificar seu grupo de usuários em uma UpdateUserPoolAPIsolicitação, você deve apresentar AWS credenciais e IAM permissões para atualizar o recurso.

Para autorizar essas solicitações no AWS Command Line Interface (AWS CLI) ou em um AWS SDK, configure seu ambiente com variáveis de ambiente ou configuração de cliente que adicionem IAM credenciais à sua solicitação. Para obter mais informações, consulte Acessando AWS usando suas AWS credenciais no Referência geral da AWS. Você também pode enviar solicitações diretamente para os endpoints de serviço dos grupos de usuários do Amazon Cognito. API Você deve autorizar ou assinar essas solicitações com credenciais da AWS que incorpora no cabeçalho da solicitação. Para obter mais informações, consulte Assinar AWS API solicitações.

IAM-operações de gerenciamento autenticadas
AddCustomAttributes
CreateGroup
CreateIdentityProvider
CreateResourceServer
CreateUserImportJob
CreateUserPool
CreateUserPoolClient
CreateUserPoolDomain
DeleteGroup
DeleteIdentityProvider
DeleteResourceServer
DeleteUserPool
DeleteUserPoolClient
DeleteUserPoolDomain
DescribeIdentityProvider
DescribeResourceServer
DescribeRiskConfiguration
DescribeUserImportJob
DescribeUserPool
DescribeUserPoolClient
DescribeUserPoolDomain
GetCSVHeader
GetGroup
GetIdentityProviderByIdentifier
GetSigningCertificate
GetUICustomization
GetUserPoolMfaConfig
ListGroups
ListIdentityProviders
ListResourceServers
ListTagsForResource
ListUserImportJobs
ListUserPoolClients
ListUserPools
ListUsers
ListUsersInGroup
SetRiskConfiguration
SetUICustomization
SetUserPoolMfaConfig
StartUserImportJob
StopUserImportJob
TagResource
UntagResource
UpdateGroup
UpdateIdentityProvider
UpdateResourceServer
UpdateUserPool
UpdateUserPoolClient
UpdateUserPoolDomain

IAM-operações de usuário autenticadas inscreva-se, faça login, gerencie credenciais, modifique e visualize seus usuários.

Por exemplo, você pode ter um nível de aplicação do lado do servidor que oferece suporte a um front-end da Web. Seu aplicativo do lado do servidor é um cliente OAuth confidencial no qual você confia com acesso privilegiado aos recursos do Amazon Cognito. Para registrar um usuário no aplicativo, seu servidor pode incluir AWS credenciais em uma AdminCreateUserAPIsolicitação. Para obter mais informações sobre os tipos de OAuth clientes, consulte Tipos de clientes na Estrutura de Autorização OAuth 2.0.

Para autorizar essas solicitações no AWS CLI ou an AWS SDK, configure seu ambiente de aplicativo do lado do servidor com variáveis de ambiente ou configuração de cliente que adicionem IAM credenciais à sua solicitação. Para obter mais informações, consulte Acessando AWS usando suas AWS credenciais no Referência geral da AWS. Você também pode enviar solicitações diretamente para os endpoints de serviço dos grupos de usuários do Amazon Cognito. API Você deve autorizar ou assinar essas solicitações com credenciais da AWS que incorpora no cabeçalho da solicitação. Para obter mais informações, consulte Assinar AWS API solicitações.

Se seu cliente de aplicativo tiver um segredo de cliente, você deverá fornecer suas IAM credenciais e, dependendo da operação, o SecretHash parâmetro ou o SECRET_HASH valor emAuthParameters. Para obter mais informações, consulte Computar valores de hash de segredo.

IAM-operações de usuário autenticadas
AdminAddUserToGroup
AdminConfirmSignUp
AdminCreateUser
AdminDeleteUser
AdminDeleteUserAttributes
AdminDisableProviderForUser
AdminDisableUser
AdminEnableUser
AdminForgetDevice
AdminGetDevice
AdminGetUser
AdminInitiateAuth
AdminLinkProviderForUser
AdminListDevices
AdminListGroupsForUser
AdminListUserAuthEvents
AdminRemoveUserFromGroup
AdminResetUserPassword
AdminRespondToAuthChallenge
AdminSetUserMFAPreference
AdminSetUserPassword
AdminSetUserSettings
AdminUpdateAuthEventFeedback
AdminUpdateDeviceStatus
AdminUpdateUserAttributes
AdminUserGlobalSignOut

Operações de usuário não autenticadas para se inscrever, fazer login e iniciar redefinições de senha para os usuários. Use API operações não autenticadas ou públicas quando quiser que qualquer pessoa na Internet se inscreva e entre no seu aplicativo.

Por exemplo, para registrar um usuário em seu aplicativo, você pode distribuir um cliente OAuth público que não forneça acesso privilegiado aos segredos. Você pode registrar esse usuário com a operação não autenticada. API SignUp

Para enviar essas solicitações em um cliente público que você desenvolveu com um AWS SDK, você não precisa configurar nenhuma credencial. Você também pode enviar solicitações diretamente para os endpoints de serviço dos API grupos de usuários do Amazon Cognito sem autorização adicional.

Se o cliente da aplicação tiver um segredo de cliente, você deverá fornecer, dependendo da operação, o parâmetro SecretHash ou o valor SECRET_HASH em AuthParameters. Para obter mais informações, consulte Computar valores de hash de segredo.

Operações de usuário não autenticadas
SignUp
ConfirmSignUp
ResendConfirmationCode
ForgotPassword
ConfirmForgotPassword
InitiateAuth

As operações de usuário autorizadas por token terminam a sessão, gerenciam as credenciais, modificam e visualizam os usuários após eles fazerem login ou iniciarem o processo de login. Use API operações autorizadas por token quando não quiser distribuir segredos em seu aplicativo e quiser autorizar solicitações com as próprias credenciais do usuário. Se o usuário tiver concluído o login, você deverá autorizar a solicitação autorizada pelo token com um token de acessoAPI. Se seu usuário estiver no meio de um processo de login, você deverá autorizar a solicitação autorizada pelo token com um token de sessão que o Amazon Cognito retornou em resposta à API solicitação anterior.

Por exemplo, em um cliente público, talvez você queira atualizar o perfil de um usuário de uma forma que restrinja o acesso de gravação somente ao próprio perfil do usuário. Para fazer essa atualização, seu cliente pode incluir o token de acesso do usuário em uma UpdateUserAttributesAPIsolicitação.

Para enviar essas solicitações em um cliente público que você desenvolveu com um AWS SDK, você não precisa configurar nenhuma credencial. Inclua um parâmetro AccessToken ou Session na solicitação. Você também pode enviar solicitações diretamente para os endpoints de serviço dos grupos de usuários do Amazon Cognito. API Para autorizar uma solicitação para um endpoint de serviço, inclua o token de acesso ou sessão no POST corpo da solicitação.

Para assinar uma API solicitação para uma operação autorizada por token, inclua o token de acesso como Authorization cabeçalho em sua solicitação, no formato. Bearer <Base64-encoded access token>

Operações de usuário autorizadas por token AccessToken Sessão
RespondToAuthChallenge
ChangePassword
GetUser
UpdateUserAttributes
DeleteUserAttributes
DeleteUser
ConfirmDevice
ForgetDevice
GetDevice
ListDevices
UpdateDeviceStatus
GetUserAttributeVerificationCode
VerifyUserAttribute
SetUserSettings
SetUserMFAPreference
GlobalSignOut
AssociateSoftwareToken
UpdateAuthEventFeedback
VerifySoftwareToken
RevokeToken¹

¹ RevokeToken usa um token de atualização como parâmetro. O token de atualização serve como token de autorização e como recurso de destino.