Como atualizar a configuração do grupo de usuários e do cliente da aplicação - Amazon Cognito

Como atualizar a configuração do grupo de usuários e do cliente da aplicação

Para alterar uma configuração em um grupo de usuários ou cliente da aplicação, você pode aplicar a atualização no console do Amazon Cognito com alguns cliques. Navegue pelas guias baseadas em recursos nas configurações do grupo de usuários e atualize os campos conforme descrito em outras áreas deste guia.

Muitas organizações gerenciam seus recursos de forma programática no AWS CloudFormation, aplicações desenvolvidas nos SDKs ou CDK da AWS e em outros softwares de automação. Se esse for seu modelo de gerenciamento de recursos, tome cuidado extra ao fazer alterações nos recursos.

As operações de API UpdateUserPool e UpdateUserPoolClient fazem atualizações em um grupo de usuários ou cliente de aplicação existente. Cada um acompanha um aviso na Referência da API: Se você não fornecer um valor para um atributo, o Amazon Cognito usará seu valor padrão. Quando você envia uma solicitação de atualização com apenas um parâmetro, o Amazon Cognito define esse parâmetro com o valor de sua escolha, depois define todos os outros como um valor padrão. Isso pode redefinir configurações, incluindo seu esquema de atributos, seus acionadores do Lambda e a configuração de e-mail e mensagens SMS.

Além disso, algumas configurações são bloqueadas após a criação do grupo de usuários ou do cliente da aplicação, e você não pode alterá-las a menos que crie um recurso.

Configurações que não podem ser alteradas

Após a criação de um grupo de usuários, não é possível alterar algumas configurações. Se quiser alterar as configurações a seguir, crie um grupo de usuários ou um cliente da aplicação.

Nome do grupo de usuários

Nome do parâmetro da API: PoolName

O nome amigável que você atribuiu ao seu grupo de usuários. Para alterar o nome de um grupo de usuários, crie outro grupo de usuários.

Opções de login do grupo de usuários do Amazon Cognito

Nomes de parâmetros de APIs: AliasAttributes e UsernameAttributes

Os atributos que seus usuários podem transmitir como nome de usuário ao fazerem login. Ao criar um grupo de usuários, você pode optar por permitir o login com nome de usuário, endereço de e-mail, número de telefone ou nome de usuário preferido. Para alterar as opções de login do grupo de usuários, crie outro grupo de usuários.

Make user name case sensitive (Diferenciar maiúsculas e minúsculas no nome de usuário)

Nome do parâmetro da API: UsernameConfiguration

Quando você cria um nome de usuário que corresponde a outro nome de usuário, exceto pelo uso de maiúsculas/minúsculas, o Amazon Cognito pode tratá-lo como o mesmo usuário ou como usuários únicos. Para ter mais informações, consulte Sensibilidade entre maiúsculas e minúsculas do grupo de usuários. Para alterar a distinção entre maiúsculas e minúsculas, crie outro grupo de usuários.

Segredo do cliente

Nome do parâmetro da API: GenerateSecret

Ao criar um cliente da aplicação, você pode gerar um segredo de cliente para que somente fontes confiáveis possam fazer solicitações ao grupo de usuários. Para ter mais informações, consulte Configurações específicas da aplicação com clientes de aplicação. Para alterar um segredo de cliente, crie outro cliente da aplicação no mesmo grupo de usuários.

Atributos obrigatórios

Nome do parâmetro da API: Schema

Os atributos aos quais seus usuários devem fornecer valores no cadastro ou quando você os cria. Para ter mais informações, consulte Trabalhar com atributos do usuário. Para alterar os atributos necessários, crie outro grupo de usuários.

Atributos personalizados

Nome do parâmetro da API: Schema

Atributos com nomes personalizados. Você pode alterar o valor do atributo personalizado de um usuário, mas não é possível excluir um atributo personalizado do grupo de usuários. Para ter mais informações, consulte Trabalhar com atributos do usuário. Se você atingir o número máximo de atributos personalizados e quiser modificar a lista, crie outro grupo de usuários.

Configuração de SMS

Depois de ativar mensagens de SMS no grupo de usuários, não é possível desativá-las.

  • Se você optar por configurar mensagens de SMS ao criar um grupo de usuários, não conseguirá desativar o SMS depois que concluir a configuração.

  • Você pode ativar mensagens de SMS em um grupo de usuários que você criou, mas depois disso, não poderá desativar o SMS.

  • O Amazon Cognito pode usar mensagens de SMS para convite e recuperação de contas de usuários, verificação de atributos e autenticação multifator (MFA). Depois de ativar as mensagens de SMS, você pode ativá-las ou desativá-las a qualquer momento para essas funções.

  • A configuração de mensagens de SMS inclui um perfil do IAM que você delega ao Amazon Cognito para enviar mensagens com o Amazon SNS. É possível alterar o perfil atribuído a qualquer momento.

Atualizar um grupo de usuários com um SDK da AWS ou API REST da AWS CDK

No console do Amazon Cognito é possível alterar as configurações do grupo de usuários, um parâmetro por vez. Por exemplo, para adicionar um acionador do Lambda, você escolhe Adicionar acionador do Lambda e escolhe a função e o tipo de acionador. A API de grupos de usuários do Amazon Cognito é estruturada de forma que as operações de atualização para grupos de usuários e clientes de aplicações exijam o conjunto completo de parâmetros para o grupo de usuários. No entanto, o console automatiza de forma transparente essa operação de atualização com suas outras configurações do grupo de usuários.

Às vezes, você pode achar que uma alteração em sua Conta da AWS pode fazer com que as atualizações gerem um erro quando não estão relacionadas à configuração que você deseja alterar. Uma identidade excluída do Amazon SES ou uma alteração em uma permissão do IAM para AWS WAF, por exemplo. Se um dos parâmetros atuais não for mais válido, você não poderá atualizar as configurações até corrigi-lo. Ao encontrar esse erro, analise a resposta do erro e valide a configuração mencionada.

AWS Cloud Development Kit (AWS CDK), API REST de grupos de usuários do Amazon Cognito e SDKs da AWS são ferramentas para automação e configuração programática dos recursos do Amazon Cognito. As solicitações com essas ferramentas também devem, assim como no console do Amazon Cognito, atualizar uma definição com uma configuração completa de recursos no corpo da solicitação. Em um nível mais alto, é necessário realizar o seguinte processo.

  1. Capture o resultado de uma operação que descreve a configuração do recurso existente.

  2. Modifique o resultado com a alteração das configurações.

  3. Envie a configuração modificada em uma operação que atualiza seu recurso.

O procedimento a seguir atualiza sua configuração com a operação UpdateUserPool da API. A mesma abordagem, com campos de entrada diferentes, se aplica a UpdateUserPoolClient.

Importante

Se você não fornecer valores para os parâmetros existentes, o Amazon Cognito os definirá como valores padrão. Por exemplo, quando você já tiver uma LambdaConfig e enviar um UpdateUserPool com uma LambdaConfig em branco, exclua a atribuição de todas as funções do Lambda para acionadores do grupo de usuários. Planeje adequadamente quando quiser automatizar as alterações na configuração do grupo de usuários.

  1. Capture o estado existente do grupo de usuários com DescribeUserPool.

  2. Formate a saída do DescribeUserPool de forma que corresponda aos parâmetros da solicitação do UpdateUserPool. Remova os campos de nível superior a seguir e seus objetos secundários da saída JSON.

    • Arn

    • CreationDate

    • CustomDomain

    • Domain

    • EmailConfigurationFailure

    • EstimatedNumberOfUsers

    • Id

    • LastModifiedDate

    • Name

    • SchemaAttributes

    • SmsConfigurationFailure

    • Status

  3. Confirme se o JSON resultante corresponde aos parâmetros da solicitação do UpdateUserPool.

  4. Modifique todos os parâmetros que você deseja alterar no JSON resultante.

  5. Envie uma solicitação de API UpdateUserPool com seu JSON modificado como entrada da solicitação.

Você também pode usar essa saída modificada do DescribeUserPool no parâmetro --cli-input-json do update-user-pool na AWS CLI.

Como alternativa, a fim de gerar JSON com valores em branco para os campos de entrada aceitos para update-user-pool, execute o comando da AWS CLI a seguir. Depois, você pode preencher esses campos com os valores de seu grupo de usuários.

aws cognito-idp update-user-pool --generate-cli-skeleton --output json

Use o comando a seguir para gerar o mesmo objeto JSON para um cliente da aplicação.

aws cognito-idp update-user-pool-client --generate-cli-skeleton --output json