Trabalhar com atributos do usuário
Os atributos são informações que ajudam a identificar usuários específicos, como nome, endereço de e-mail e número de telefone. Um novo grupo de usuários tem um conjunto padrão de atributos. Você também pode adicionar atributos personalizados à definição do grupo de usuários no AWS Management Console. Este tópico descreve esses atributos detalhadamente e oferece dicas sobre como configurar seu grupo de usuários.
Não armazene todas as informações sobre seus usuários nos atributos. Por exemplo, mantenha os dados do usuário que são alterados com frequência, como estatísticas de uso ou pontuações de jogos, em um repositório de dados separado, como o Amazon Cognito Sync ou o Amazon DynamoDB.
nota
Alguns documentos e padrões se referem a atributos como membros.
Tópicos
Atributos padrão
O Amazon Cognito atribui a todos os usuários um conjunto de atributos padrão com base na Especificação do OpenID Connect
Os atributos padrão são:
-
name
-
family_name
-
given_name
-
middle_name
-
nickname
-
preferred_username
-
profile
-
picture
-
website
-
gender
-
birthdate
-
zoneinfo
-
locale
-
updated_at
-
address
-
email
-
phone_number
-
sub
Exceto sub
, os atributos padrão são opcionais por padrão para todos os usuários. Para tornar um atributo obrigatório, durante o processo de criação do grupo de usuários, marque a caixa de seleção Required (Obrigatório) ao lado do atributo. O Amazon Cognito atribui um valor de identificador de usuário exclusivo ao atributo sub
de cada usuário. Somente os atributos email e phone_number podem ser verificados.
Os atributos padrão têm propriedades predefinidas que você pode visualizar no parâmetro SchemaAttributes
de uma resposta da API DescribeUserPool. Você pode definir valores personalizados para essas propriedades de atributos, como restrições de tipo de dados, mutabilidade e comprimento. Para modificar as propriedades do atributo padrão, defina seus valores personalizados no parâmetro CreateUserPool Schema. O esquema também representa onde você define os atributos necessários. Você não pode modificar propriedades de atributos padrão ao criar grupos de usuários no console do Amazon Cognito.
nota
Quando você marcar um atributo padrão como Required (Obrigatório), o usuário não poderá se inscrever, a menos que forneça um valor para o atributo. Para criar usuários e não fornecer valores aos atributos obrigatórios, os administradores podem usar a API AdminCreateUser. Após a criação de um grupo de usuários, não é possível alternar um atributo entre obrigatório e não obrigatório.
Detalhes do atributo padrão e restrições de formato
- birthdate
-
O valor deve ser uma data de dez caracteres válida no formato AAAA-MM-DD.
-
Os usuários e administradores podem verificar valores de endereço de e-mail.
Um administrador com permissões adequadas da Conta da AWS pode alterar o endereço de e-mail do usuário, além de marcá-lo como verificado. Marque um endereço de e-mail como verificado com a API AdminUpdateUserAttributes ou o comando admin-update-user-attributes da AWS Command Line Interface (AWS CLI). Com esse comando, o administrador pode alterar o atributo
email_verified
paratrue
. Você também pode editar um usuário na guia Users (Usuários) do AWS Management Console para marcar um endereço de e-mail como verificado.O valor deve ser uma string de endereço de e-mail válida seguindo o formato de e-mail padrão com o símbolo @ e o domínio, com até 2.048 caracteres.
- phone_number
-
O usuário deverá fornecer um número de telefone se a autenticação multifator (MFA) de SMS estiver ativa. Para ter mais informações, consulte Adicionar MFA a um grupo de usuários.
Os usuários e administradores podem verificar valores de número de telefone.
Um administrador com permissões adequadas na Conta da AWS pode alterar o número de telefone do usuário, além de marcá-lo como verificado. Marque um endereço de e-mail como verificado com a API AdminUpdateUserAttributes ou o comando admin-update-user-attributes da AWS CLI. Com esse comando, o administrador pode alterar o atributo
phone_number_verified
paratrue
. Você também pode editar um usuário na guia Users (Usuários) do AWS Management Console para marcar um número de telefone como verificado.Importante
Os números de telefone devem seguir estas regras de formatação: devem começar com um sinal de mais (
+
), seguido imediatamente do código do país. Um número de telefone pode conter apenas o sinal+
e os dígitos. Remova quaisquer outros caracteres de um número de telefone, como parênteses, espaços ou traços (-
) antes de enviar o valor ao serviço. Por exemplo, um número de telefone dos Estados Unidos deve seguir este formato:+14325551212
. - preferred_username
-
Você pode selecionar
preferred_username
conforme necessário ou como um alias, mas não ambos. Se opreferred_username
for um alias, você poderá usar a operação da API UpdateUserAttributes e adicionar o valor de atributo assim que confirmar o usuário. - sub
-
Indexe e pesquise seus usuários com base no atributo
sub
. O atributosub
é um identificador de usuário exclusivo em cada grupo de usuários. Os usuários podem alterar atributos comophone_number
eemail
. O atributosub
tem um valor fixo. Para ter mais informações sobre como descobrir usuários, consulte Como gerenciar e pesquisar contas de usuários.
Exibir atributos obrigatórios
Siga o procedimento abaixo a fim de exibir atributos obrigatórios para um determinado grupo de usuários.
nota
Não é possível alterar atributos obrigatórios após a criação de um grupo de usuários.
Para exibir atributos obrigatórios
-
Acesse o Amazon Cognito
no AWS Management Console. Se o console solicitar, insira suas credenciais da AWS. -
Escolha User Pools (Grupos de usuários).
-
Escolha um grupo de usuários existente da lista.
-
Escolha a guia Sign-up experience (Experiência de cadastro).
-
Na seção Required attributes (Atributos obrigatórios), veja os atributos obrigatórios de seu grupo de usuários.
Nome de usuário e nome de usuário preferencial
O valor de username
é um atributo separado; não equivale ao atributo name
. Cada usuário tem um atributo username
. O Amazon Cognito gera automaticamente um nome de usuário para usuários federados. Você deve fornecer um atributo username
para criar um usuário local no diretório do Amazon Cognito. Após a criação de um usuário, não é possível alterar o valor do atributo username
.
Os desenvolvedores podem usar o atributo preferred_username
para atribuir aos usuários nomes de usuário que eles podem alterar. Para ter mais informações, consulte Personalização dos atributos de login.
Se sua aplicação não exigir um nome de usuário, não será necessário solicitar que os usuários o forneçam. O aplicativo pode criar um nome de usuário exclusivo para os usuários no plano de fundo. Isso pode ser útil se você desejar que os usuários se inscrevam e façam login com um endereço de e-mail e senha. Para ter mais informações, consulte Personalização dos atributos de login.
username
deve ser exclusivo em um grupo de usuários. username
pode ser reutilizado, mas somente depois que você o excluir e ele não estiver mais em uso. Para obter informações sobre as restrições de string nos atributos username
, consulte a propriedade username de uma solicitação da API SignUp.
Personalização dos atributos de login
Ao criar um grupo de usuários, você pode configurar atributos de nome de usuário caso queira que os usuários possam se inscrever e fazer login com um endereço de e-mail ou um número de telefone como nome de usuário. Como alternativa, você pode configurar atributos de alias para dar aos usuários a seguinte opção: incluir vários atributos ao se inscreverem e, então, fazer login com um nome de usuário, nome de usuário preferencial, endereço de e-mail ou número de telefone.
Importante
Após a criação de um grupo de usuários, não é possível alterar essa configuração.
Como escolher entre atributos de alias e atributos de nome de usuário
Seu requisito | Atributos de alias | Atributos do nome de usuário |
---|---|---|
Users have multiple sign-in attributes | Yes¹ | No² |
Users must verify email address or phone number before they can sign in with it | Yes | No |
Sign up users with duplicate email addresses or phone numbers and prevent
UsernameExistsException errors³ |
Yes | No |
Can assign the same email address or phone number attribute value to more than one user | Yes⁴ | No |
¹ Os atributos de login disponíveis são nome de usuário, endereço de e-mail, número de telefone e nome de usuário de preferência.
² É possível fazer login com o endereço de e-mail ou o número de telefone.
³ O grupo de usuários não gera erros UsernameExistsException
quando os usuários se registram com endereços de e-mail ou números de telefone possivelmente duplicados, mas sem nome de usuário. Esse comportamento é independente de Evitar erros de existência de nome de usuário, que se aplica às operações de login, mas não às operações de inscrição.
⁴ Somente o último usuário que verificou o atributo pode fazer login com ele.
Você pode ativar aliases se quiser permitir que os usuários optem por inserir o nome de usuário ou outros valores de atributo ao fazerem login. Por padrão, os usuários fazem login com nome de usuário e senha. O nome de usuário é um valor fixo que os usuários não podem mudar. Se você marcar um atributo como alias, os usuários poderão fazer login usando esse atributo em vez de o nome de usuário. Você pode marcar os atributos de endereço de e-mail, número de telefone e nome de usuário preferido como aliases. Por exemplo, se você selecionar um endereço de e-mail e número de telefone como aliases para um grupo de usuários, os usuários desse grupo poderão fazer login usando o respectivo nome de usuário, endereço de e-mail ou número de telefone com a senha.
Para escolher atributos de alias, selecione User name (Nome de usuário) e pelo menos uma opção de login adicional ao criar o grupo de usuários.
nota
Ao configurar seu grupo de usuários para indistinção de maiúsculas e minúsculas, o usuário poderá usar letras minúsculas ou maiúsculas para se cadastrar ou fazer login com o alias. Para obter mais informações, consulte CreateUserPool na Referência da API de grupos de usuários do Amazon Cognito.
Se você selecionar o endereço de e-mail como um alias, o Amazon Cognito não aceitará um nome de usuário que corresponda a um formato de endereço de e-mail válido. Da mesma forma, se você selecionar o número de telefone como alias, o Amazon Cognito não aceitará um nome de usuário para esse grupo de usuários que corresponda a um formato de número de telefone válido.
nota
Os valores de alias devem ser exclusivos em um grupo de usuários. Se configurar um alias para um endereço de e-mail ou número de telefone, o valor que você fornecer poderá apresentar o estado verificado em apenas uma conta. Durante o cadastro, se o usuário fornecer um endereço de e-mail ou número de telefone como um valor de alias e outro usuário já tiver usado esse valor, o registro será bem-sucedido. No entanto, quando um usuário tentar confirmar a conta com esse e-mail (ou número de telefone) e inserir o código válido, o Amazon Cognito retornará um erro AliasExistsException
. Esse erro indica ao usuário que já existe uma conta com esse endereço de e-mail (ou número de telefone). Nesse ponto, o usuário pode abandonar a tentativa de criar a nova conta e, em vez disso, tentar redefinir a senha para a conta antiga. Se o usuário continuar criando a nova conta, sua aplicação deverá chamar a API ConfirmSignUp
com a opção forceAliasCreation
. ConfirmSignUp
com forceAliasCreation
move o alias da conta anterior para a conta recém-criada e marca o atributo não verificado na conta anterior.
Os números de telefone e os endereços de e-mail só se tornarão aliases ativos para um usuário depois que você os verificar. Recomendamos escolher a verificação automática dos endereços de e-mail e números de telefone se você os usar como aliases.
Escolha atributos de alias para evitar erros UsernameExistsException
nos atributos de endereço de e-mail e número de telefone quando os usuários se inscreverem.
Ative o atributo preferred_username
para que o usuário possa alterar o nome que ele usa para fazer login enquanto o valor de atributo username
não mudar. Se desejar configurar essa experiência de usuário, envie o novo valor de username
como preferred_username
e escolha preferred_username
como alias. Assim, os usuários poderão fazer login com o novo valor que eles inseriram. Se você selecionar preferred_username
como alias, o usuário só poderá fornecer o valor quando confirmar uma conta. Ele não poderá fornecer o valor durante o registro.
Quando o usuário se inscreve com um nome de usuário, é possível escolher se ele pode fazer login com um ou mais dos aliases a seguir.
-
Um endereço de e-mail verificado
-
Um número de telefone verificado
-
Nome de usuário preferido
Depois que o usuário se cadastra, ele não pode alterar esses aliases.
Importante
Quando seu grupo de usuários é compatível com login com aliases e você deseja autorizar ou pesquisar um usuário, não identifique seu usuário por nenhum de seus atributos de login. O identificador de usuário de valor fixo sub
é o único indicador consistente da identidade do seu usuário.
Inclua as etapas a seguir quando criar o grupo de usuários para que os usuários possam fazer login com um alias.
Como configurar um grupo de usuários para que seja possível fazer login com um nome de usuário preferido
-
Acesse o Amazon Cognito
no AWS Management Console. Se o console solicitar, insira suas credenciais da AWS. -
Escolha User Pools (Grupos de usuários).
-
No canto superior direito da página, escolha Create a user pool (Criar um grupo de usuários) para iniciar o assistente de criação de grupo de usuários.
-
Em Configure sign-in experience (Configurar experiência de acesso), escolha a identidade Provider types (Tipos de provedores) que você deseja associar ao grupo de usuários.
-
Em Cognito user pool sign-in options (Opções de acesso do grupo de usuários do Cognito), escolha qualquer combinação de User name (Nome de usuário), Email (E-mail) e Phone number (Número de telefone).
-
Em Requisitos de nome do usuário, selecione Permitir que os usuários façam login com um nome de usuário preferido para permitir a definição de um nome de usuário alternativo para login.
-
Selecione Next (Próximo) e, em seguida, conclua todas as etapas no assistente.
Quando o usuário se inscreve com um endereço de e-mail ou número de telefone como o respectivo nome de usuário, é possível escolher se ele pode se inscrever apenas com endereços de e-mail, apenas números de telefone ou qualquer um dos dois.
Para escolher atributos de nome de usuário, não selecione Nome de usuário como opção de login ao criar o grupo de usuários.
O endereço de e-mail ou o número de telefone deve ser exclusivo e não deve estar em uso por outro usuário. Ele não precisa ser verificado. Depois que o usuário se cadastra com um endereço de e-mail ou número de telefone, ele não pode criar uma nova conta com o mesmo endereço de e-mail ou número de telefone. O usuário só poderá reutilizar a conta existente e redefinir a respectiva senha, se necessário. No entanto, ele pode alterar o endereço de e-mail ou o número de telefone para um novo endereço de e-mail ou número de telefone. Se o endereço de e-mail ou o número de telefone ainda não estiver em uso, ele se tornará o novo nome de usuário.
nota
Se um usuário se inscrever com um endereço de e-mail como nome de usuário, ele poderá alterar o nome de usuário para outro endereço de e-mail, mas não poderá alterá-lo para um número de telefone. Se os usuários se inscreverem com um número de telefone, eles poderão alterar o nome de usuário para outro número de telefone, mas não poderão alterá-lo para um endereço de e-mail.
Siga as etapas abaixo durante o processo de criação do grupo de usuários para configurar o cadastro e o login com um endereço de e-mail ou número de telefone.
Para configurar um grupo de usuários para cadastro e login com um endereço de e-mail ou número de telefone
-
Acesse o Amazon Cognito
no AWS Management Console. Se o console solicitar, insira suas credenciais da AWS. -
Escolha User Pools (Grupos de usuários).
-
No canto superior direito da página, escolha Create a user pool (Criar um grupo de usuários) para iniciar o assistente de criação de grupo de usuários.
-
Em Cognito user pool sign-in options (Opções de login do grupo de usuários do Cognito), escolha qualquer combinação de Email (E-mail) e Phone number (Número de telefone) que represente os atributos de alias que o usuário pode usar para fazer login.
-
Selecione Next (Próximo) e conclua todas as etapas restantes no assistente.
nota
Não é necessário marcar o endereço de e-mail ou número de telefone como atributos obrigatórios para o grupo de usuários.
Para implementar a opção 2 no aplicativo
-
Chame a API
CreateUserPool
para criar o grupo de usuários. Defina o parâmetroUserNameAttributes
comophone_number
,email
ouphone_number | email
. -
Chame a API
SignUp
e envie um endereço de e-mail ou número de telefone para o parâmetrousername
da API. Esta API faz o seguinte:-
Se a string
username
estiver no formato válido de endereço de e-mail, o grupo de usuários preencherá automaticamente o atributoemail
do usuário com o valorusername
. -
Se a string
username
estiver no formato válido de número de telefone, o grupo de usuários ocupa automaticamente o atributophone_number
do usuário com o valorusername
. -
Se a string
username
não estiver no formato de endereço de e-mail ou número de telefone, a APISignUp
retornará uma exceção. -
A API
SignUp
gera um UUID persistente para o usuário e o utiliza internamente como o atributo nome de usuário imutável. Este UUID possui o mesmo valor reivindicado pelosub
no token de identidade do usuário. -
Se a string
username
contiver um endereço de e-mail ou número de telefone já em uso, a APISignUp
retornará uma exceção.
-
É possível usar um endereço de e-mail ou número de telefone como um alias em vez do nome de usuário em todas as APIs, exceto na API ListUsers
. Quando você chama ListUsers
, é possível pesquisar pelo atributo email
ou phone_number
. Se você pesquisar por username
, será necessário fornecer o nome de usuário real, não o alias.
Atributos personalizados
Você pode adicionar até 50 atributos personalizados ao grupo de usuários. Você pode especificar um comprimento mínimo e/ou máximo para os atributos personalizados. No entanto, o comprimento máximo para qualquer atributo personalizado não pode ultrapassar 2.048 caracteres.
Todo atributo personalizado tem as seguintes características:
-
Você pode defini-lo como uma string ou um número. O Amazon Cognito grava valores de atributo personalizados no token de ID somente como strings.
-
Não é possível exigir que os usuários forneçam um valor para o atributo.
-
Você não poderá removê-lo ou alterá-lo depois de adicioná-lo ao grupo de usuários.
-
A extensão de caracteres do nome do atributo está dentro do limite que o Amazon Cognito aceita. Para ter mais informações, consulte Cotas no Amazon Cognito.
-
Ele pode ser mutável ou imutável. É possível gravar um valor em um atributo imutável ao criar um usuário. Você pode alterar o valor de um atributo mutável se o cliente de aplicação tiver permissão de gravação para o atributo. Consulte Permissões e escopos do atributo Para mais informações.
nota
No código e nas configurações de regra de Controle de acesso com base em perfil, os atributos personalizados requerem o prefixo custom:
para que sejam diferenciados dos atributos padrão.
Você também pode adicionar atributos de desenvolvedor na propriedade SchemaAttributes
de CreateUserPool ao criar grupos de usuários. Os atributos de desenvolvedor têm um prefixo dev:
. Você só pode modificar os atributos de desenvolvedor de um usuário com credenciais AWS. Os atributos de desenvolvedor são um recurso herdado que o Amazon Cognito substituiu pelas permissões de leitura e gravação do cliente da aplicação.
Siga o procedimento abaixo para criar um novo atributo personalizado.
Para adicionar um atributo personalizado usando o console
-
Acesse o Amazon Cognito
no AWS Management Console. Se o console solicitar, insira suas credenciais da AWS. -
Escolha User Pools (Grupos de usuários).
-
Escolha um grupo de usuários existente da lista.
-
Selecione a guia Sign-up experience (Experiência de cadastro) e na seção Custom attributes (Atributos personalizados), escolha Add custom attributes (Adicionar atributos personalizados).
-
Na página Add custom attributes (Adicionar atributos personalizados), forneça os seguintes detalhes sobre o novo atributo:
-
Insira um Name (Nome).
-
Selecione um Type (Tipo), que pode ser String ou Number (Número).
-
Insira um tamanho de string Min. (Mínimo) ou um valor numérico.
-
Insira um tamanho de string Max. (Máximo) ou um valor numérico.
-
Selecione Mutable (Mutável) se quiser conceder permissão aos usuários para alterar o valor de um atributo personalizado depois que eles definirem o valor inicial.
-
-
Escolha Salvar alterações.
Permissões e escopos do atributo
Para cada aplicação cliente, é possível configurar permissões de leitura e gravação para cada atributo de usuário. Dessa forma, você pode controlar o acesso de leitura que qualquer aplicação tiver e modificar cada atributo armazenado para seus usuários. Por exemplo, você pode ter um atributo personalizado que indique se um usuário é ou não um cliente pagante. Suas aplicações podem ver esse atributo, mas não o alterar diretamente. Em vez disso, você atualizará o atributo usando uma ferramenta administrativa ou um processo em segundo plano. Você pode definir permissões para atributos de usuário no console do Amazon Cognito, na API do Amazon Cognito ou na AWS CLI. Por padrão, todos os novos atributos personalizados só estarão disponíveis depois que você definir permissões de leitura e gravação para eles. Por padrão, quando você cria um cliente de aplicação, concede à aplicação permissões de leitura e gravação para todos os atributos padrão e personalizados. Para limitar a aplicação somente à quantidade de informações necessárias, atribua permissões específicas aos atributos na configuração do cliente da aplicação.
Como prática recomendada, especifique as permissões de leitura e gravação dos atributos ao criar um cliente de aplicação. Conceda ao cliente de aplicação acesso ao conjunto mínimo de atributos de usuário necessários para a operação da aplicação.
nota
DescribeUserPoolClient retorna somente valores para ReadAttributes
e WriteAttributes
quando você configura permissões do cliente da aplicação que não sejam as padrão.
Como atualizar as permissões de atributo (AWS Management Console)
-
Acesse o Amazon Cognito
no AWS Management Console. Se o console solicitar, insira suas credenciais da AWS. -
Escolha User Pools (Grupos de usuários).
-
Escolha um grupo de usuários existente da lista.
-
Selecione a guia App integration (Integração de aplicação) e na seção App clients (Clientes da aplicação), escolha um cliente da aplicação na lista.
-
Na seção Attribute read and write permissions (Permissões de gravação e leitura de atributos), escolha Edit (Editar).
-
Na página Edit attribute read and write permissions (Editar permissões de leitura e gravação de atributos), configure suas permissões de leitura e gravação e, em seguida, escolha Save changes (Salvar alterações).
Repita essas etapas para cada cliente de aplicativo usando o atributo personalizado.
Para cada cliente de aplicação, é possível marcar atributos como legíveis ou graváveis. Isso se aplica aos atributos padrão e aos atributos personalizados. A aplicação pode recuperar o valor dos atributos que você marca como legíveis, bem como definir ou modificar o valor dos atributos marcados como graváveis. Se a aplicação tentar definir um valor para um atributo que não esteja autorizado a gravar, o Amazon Cognito retornará NotAuthorizedException
. Solicitações GetUser incluem um token de acesso com uma reivindicação do cliente da aplicação; o Amazon Cognito retorna somente valores para atributos que o cliente da aplicação pode ler. O token de ID do usuário de uma aplicação contém apenas declarações que correspondem aos atributos legíveis. Todos os clientes da aplicação podem gravar os atributos necessários do grupo de usuários. Você só pode definir o valor de um atributo em uma solicitação de API de grupos de usuários do Amazon Cognito quando também fornece um valor para quaisquer atributos obrigatórios que ainda não tenham um valor.
Os atributos personalizados têm recursos distintos para permissões de leitura e gravação. É possível criá-los como mutáveis ou imutáveis para o grupo de usuários e defini-los como atributos de leitura ou gravação para qualquer cliente da aplicação.
Um atributo personalizado imutável pode ser atualizado uma vez durante a criação do usuário. É possível preencher um atributo imutável com os métodos a seguir.
-
SignUp
: um usuário se inscreve em um cliente da aplicação que tenha acesso de gravação a um atributo personalizado imutável. Ele fornece um valor para esse atributo. -
Fazer login com um IdP de terceiros: um usuário faz login em um cliente da aplicação que tem acesso de gravação a um atributo personalizado imutável. A configuração do grupo de usuários para o IdP tem uma regra para associar uma declaração fornecida a um atributo imutável. Isso é possível, mas não prático, porque o usuário só poderá fazer login uma vez. O Amazon Cognito rejeita todas as tentativas de login após a primeira, pois existe uma regra de mapeamento para um atributo now-unwriteable.
-
AdminCreateUser
: você fornece um valor para um atributo imutável.
Permissões de atributos com escopos
Nos grupos de usuários que você configura com um SDK ou CDK da AWS, a API REST ou a AWS CLI, você pode configurar o acesso de leitura ou gravação do cliente de aplicação com o escopo do OIDC oidc:profile
. O oidc:profile
concede acesso de leitura ou gravação aos seguintes atributos padrão:
-
name
-
family_name
-
given_name
-
middle_name
-
nickname
-
preferred_username
-
profile
-
picture
-
website
-
gender
-
birthdate
-
zoneinfo
-
locale
Essa lista contém os atributos padrão do OIDC menos email
, phone_number
, sub
e address
, conforme definido na seção 2.4 da especificação do OIDC
Para configurar seu cliente de aplicação para gravar nos atributos sob o escopo oidc:profile
, defina o valor de WriteAttributes como oidc:profile
, além de outros atributos que você queira permitir que sua aplicação modifique, em uma solicitação da API CreateUserPoolClient ou UpdateUserPoolClient. Da mesma forma, para conceder acesso de leitura a esses atributos, adicione oidc:profile
ao valor de ReadAttributes.
Você pode alterar os escopos e as permissões de atributo após ter criado o grupo de usuários.