Uso de atributos de usuario - Amazon Cognito

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Uso de atributos de usuario

Los atributos son fragmentos de información de usuarios individuales, como su nombre, la dirección de correo electrónico o su número de teléfono, que ayudan a identificarlos. Los grupos de usuarios nuevos tienen un conjunto de atributos estándar predeterminados. También puede añadir atributos personalizados a la definición de su grupo de usuarios en AWS Management Console. En este tema se describen estos atributos en detalle y se le ofrecen consejos sobre cómo configurar el grupo de usuarios.

No almacene toda la información de los usuarios en atributos. Por ejemplo, guarda los datos de los usuarios que cambien con frecuencia, como las puntuaciones en juegos o las estadísticas de uso, en un almacén de datos independiente, como Amazon Cognito Sync o Amazon DynamoDB.

Desinfecte las entradas de los valores de cadena de atributos de usuario antes de enviarlos a su grupo de usuarios. Un método para analizar los valores de los atributos de usuario propuestos es con un activador Lambda, como el registro previo.

nota

Algunos documentos y estándares hacen referencia a los atributos como miembros.

Atributos estándar

Amazon Cognito asigna a todos los usuarios un conjunto de atributos estándar en función de la OpenID Connect specification. De forma predeterminada, los valores de atributo estándar y personalizados pueden tener un máximo de 2048 caracteres, aunque algunos valores de atributo tienen restricciones de formato.

Los atributos estándar son:

  • name

  • family_name

  • given_name

  • middle_name

  • nickname

  • preferred_username

  • profile

  • picture

  • website

  • gender

  • birthdate

  • zoneinfo

  • locale

  • updated_at

  • address

  • email

  • phone_number

  • sub

A excepción de sub, los atributos estándar son opcionales de forma predeterminada para todos los usuarios. Para que un atributo sea obligatorio, durante el proceso de creación del grupo de usuarios, seleccione laObligatorioLa casilla de verificación situada junto al atributo. Amazon Cognito asigna un valor de identificador de usuario único al atributo sub de cada usuario. Solo se pueden verificar los atributos email y phone_number.

Los atributos estándar tienen propiedades predefinidas que se pueden ver en el SchemaAttributes parámetro de una respuesta de la DescribeUserPool API. Puede establecer valores personalizados para estas propiedades de atributo, como el tipo de datos, la mutabilidad o las restricciones de longitud. Para modificar las propiedades de los atributos estándar, defina sus valores personalizados en el parámetro CreateUserPool Schema. En este parámetro también debe configurar los atributos necesarios. Las propiedades de los atributos estándar no se pueden modificar al crear grupos de usuarios en la consola de Amazon Cognito.

nota

Cuando un atributo estándar se marca como Required (Obligatorio), el usuario no puede registrarse, salvo que indique un valor para el atributo. Para crear usuarios y no proporcionar valores para los atributos obligatorios, los administradores pueden usar la AdminCreateUserAPI. Después de crear un grupo de usuarios, no puede cambiar un atributo de obligatorio a no obligatorio y viceversa.

Detalles de atributos estándar y restricciones de formato
birthdate

El valor debe ser una fecha válida de 10 caracteres en el formato YYYY-MM-DD.

correo electrónico

Los usuarios y los administradores pueden verificar los valores de las direcciones de correo electrónico.

Un administrador con Cuenta de AWS los permisos adecuados puede cambiar la dirección de correo electrónico del usuario y también marcarla como verificada. Marca una dirección de correo electrónico como verificada con la AdminUpdateUserAttributesAPI o el comando admin-update-user-attributes AWS Command Line Interface (AWS CLI). Este comando permite al administrador cambiar el atributo email_verified a true. También puede editar un usuario en el menú Usuarios de la consola de Amazon Cognito para marcar una dirección de correo electrónico como verificada.

El valor debe ser una cadena de dirección de correo electrónico válida que siga el formato de correo electrónico estándar con el símbolo @ y un dominio, con una longitud máxima de 2048 caracteres.

phone_number

Si la autenticación multifactor (MFA) por SMS está activa, el usuario debe proporcionar un número de teléfono. Para obtener más información, consulte Adición de MFA a un grupo de usuarios..

Los usuarios y los administradores pueden verificar los valores de números de teléfono.

Un administrador con Cuenta de AWS los permisos adecuados puede cambiar el número de teléfono del usuario y también marcarlo como verificado. Marca un número de teléfono como verificado con la AdminUpdateUserAttributesAPI o el admin-update-user-attributes AWS CLI comando. Este comando permite al administrador cambiar el atributo phone_number_verified a true. También puede editar un usuario en el menú Usuarios de la consola de Amazon Cognito para marcar un número de teléfono como verificado.

importante

Los números de teléfono deben cumplir con las reglas de formato siguientes: deben comenzar por un signo más (+) seguido inmediatamente por el código de país. Un número de teléfono solo puede contener el signo + y dígitos. Elimine cualquier otro carácter dentro del número de teléfono como, por ejemplo, paréntesis, espacios o guiones (-) antes de enviar el valor al servicio. Por ejemplo, un número de teléfono de Estados Unidos debe tener este formato: +14325551212.

preferred_username

Puede seleccionar preferred_username según sea necesario o como alias, pero no ambas opciones. Si preferred_username se trata de un alias, puede realizar una solicitud a la operación de la UpdateUserAttributesAPI y añadir el valor del atributo después de confirmar al usuario.

sub

Indexe y busque los usuarios en función del atributo sub. El atributo sub es un identificador de usuario único dentro de cada grupo de usuarios. Los usuarios pueden cambiar atributos como phone_number y email. El atributo sub tiene un valor fijo. Para obtener más información sobre cómo encontrar a los usuarios, consulte Gestión y búsqueda de cuentas de usuario.

Ver atributos obligatorios

Utilice el siguiente procedimiento para ver los atributos obligatorios de un grupo de usuarios determinado.

nota

No puede cambiar los atributos obligatorios una vez que se haya creado el grupo de usuarios.

Para ver los atributos obligatorios
  1. Vaya a Amazon Cognito en. AWS Management Console Si la consola se lo pide, introduzca sus credenciales. AWS

  2. Elija User Pools (Grupos de usuarios).

  3. Elija en la lista un usuario existente.

  4. Seleccione el menú de registro.

  5. Consulte en la sección Atributos obligatorios qué atributos son obligatorios en el grupo de usuarios.

Nombres de usuario y nombres de usuario preferidos

El valor username es un atributo independiente y no es el mismo que el del atributo name. Cada usuario tiene un atributo username. Amazon Cognito genera automáticamente un nombre de usuario para los usuarios federados. Debe proporcionar un atributo username para crear un usuario local en el directorio de Amazon Cognito. Después de crear un usuario, no puede cambiar el valor del atributo username.

Los desarrolladores pueden utilizar el atributo preferred_username para dar a los usuarios un nombre de usuario que estos puedan cambiar. Para obtener más información, consulte Personalización de los atributos de inicio de sesión.

Si la aplicación no exige un nombre de usuario, no tiene que pedir al usuario que proporcione uno. La aplicación puede crear un nombre de usuario único para los usuarios en segundo plano. Esto es útil si, por ejemplo, quiere que los usuarios se registren e inicien sesión con una dirección de correo electrónico y una contraseña. Para obtener más información, consulte Personalización de los atributos de inicio de sesión.

El username debe ser único en el grupo de usuarios. Si bien los valores username pueden volver a utilizarse, solo es posible hacerlo después de haberse eliminado y ya no se estén usando. Para obtener información sobre las restricciones de cadena de los username atributos, consulta la propiedad username de una solicitud de SignUpAPI.

Personalización de los atributos de inicio de sesión

Al crear un grupo de usuarios, puede configurar los atributos de nombre de usuario si desea que los usuarios puedan registrarse e iniciar sesión con una dirección de correo electrónico o un número de teléfono como nombre de usuario. También puede establecer atributos de alias para dar a los usuarios la opción de incluir varios atributos cuando se registren y, a continuación, iniciar sesión con un nombre de usuario, un nombre de usuario preferido, una dirección de correo electrónico o un número de teléfono.

importante

Una vez que se haya creado el grupo de usuarios, no se podrá cambiar esta opción.

Cómo elegir entre atributos de alias y atributos de nombre de usuario

Su requisito Atributos de alias Atributos de nombre de usuario
Los usuarios tienen varios atributos de inicio de sesión Sí¹ No²
Los usuarios deben verificar la dirección de correo electrónico o el número de teléfono antes de poder iniciar sesión con ellos No
Registra a los usuarios con direcciones de correo electrónico o números de teléfono duplicados y evita UsernameExistsException errores³ No
Puede asignar el mismo valor de atributo de dirección de correo electrónico o número de teléfono a más de un usuario Sí⁴ No

¹ Los atributos de inicio de sesión disponibles son: nombre de usuario, dirección de correo electrónico, número de teléfono y nombre de usuario preferido.

² Pueden iniciar sesión con la dirección de correo electrónico o con el número de teléfono.

³ El grupo de usuarios no genera errores UsernameExistsException cuando los usuarios se registran con direcciones de correo electrónico o números de teléfono potencialmente duplicados, pero sin nombre de usuario. Este comportamiento es independiente de Evite errores de existencia del nombre de usuario, que se aplica a las operaciones de inicio de sesión, pero no a las de registro.

⁴ Solo el último usuario que haya verificado el atributo podrá iniciar sesión con él.

Un atributo es un alias cuando los usuarios tienen un nombre de usuario pero también pueden iniciar sesión con ese atributo. Configura los alias cuando quieras que los usuarios puedan elegir entre su nombre de usuario y otros valores de atributo en el campo de nombre de usuario del formulario de inicio de sesión. El username atributo es un valor fijo que los usuarios no pueden cambiar. Si marca un atributo como alias, los usuarios pueden iniciar sesión con dicho atributo en vez de usar el nombre de usuario. Los atributos de dirección de correo electrónico, número de teléfono y nombre de usuario preferido pueden marcarse como alias. Por ejemplo, si el correo electrónico y el teléfono se seleccionan como alias de un grupo de usuarios, los usuarios de dicho grupo de usuarios pueden iniciar sesión utilizando el nombre de usuario, la dirección de correo electrónico o el número de teléfono, junto con la contraseña.

Para elegir los atributos de alias, seleccione User name (Nombre de usuario) y al menos una opción de inicio de sesión adicional al crear su grupo de usuarios.

nota

Cuando configura el grupo de usuarios para que no tenga en cuenta el uso de mayúsculas o minúsculas, un usuario puede usar minúsculas o mayúsculas al registrarse o iniciar sesión con su alias. Para obtener más información, consulte la CreateUserPoolreferencia de la API de grupos de usuarios de Amazon Cognito.

Si selecciona la dirección de correo electrónico como alias, Amazon Cognito no aceptará un nombre de usuario que coincida con un formato de dirección de correo electrónico válido. Del mismo modo, si selecciona el número de teléfono como alias, Amazon Cognito no aceptará un nombre de usuario para ese grupo de usuarios que coincida con un formato de número de teléfono válido.

nota

Los valores de alias tienen que ser únicos en un grupo de usuarios. Si se configura un alias para una dirección de correo electrónico o un número de teléfono, el valor proporcionado puede estar en estado verificado solo en una cuenta. Durante el registro, si el usuario proporciona una dirección de correo electrónico o un número de teléfono como valor de alias y otro usuario ya ha utilizado ese valor de alias, el registro se realiza correctamente. No obstante, cuando el usuario intente confirmar la cuenta con ese correo electrónico (o ese número de teléfono) y especifique el código válido, devolverá un error AliasExistsException. El error indica al usuario que ya existe una cuenta con ese correo electrónico (o ese número de teléfono). En este punto, el usuario puede desistir de crear una cuenta nueva e intentar restablecer la contraseña de la cuenta antigua. Si el usuario sigue creando la cuenta nueva, la aplicación debe llamar a la API de ConfirmSignUp con la opción forceAliasCreation. ConfirmSignUp con forceAliasCreation pasa el alias de la cuenta anterior a la cuenta recién creada y marca el atributo como no verificado en la cuenta anterior.

Los números de teléfono y las direcciones de correo electrónico pasan a ser alias activos de los usuarios únicamente cuando estos verifican los números de teléfono y las direcciones de correo electrónico. Recomendamos que elija la verificación automática de las direcciones de correo electrónico y los números de teléfono si los usa como alias.

Elija atributos de alias para evitar errores UsernameExistsException en los atributos de dirección de correo electrónico y número de teléfono cuando sus usuarios se registren.

Active el atributo preferred_username para que el usuario pueda cambiar el nombre de usuario que utiliza para iniciar sesión mientras su valor de atributo username no cambie. Si desea habilitar esta experiencia de usuario, envíe el nuevo valor de username como preferred_username y elija preferred_username como alias. Esto permitirá a los usuarios iniciar sesión con el valor nuevo que han especificado. Si se ha seleccionado preferred_username como alias, el usuario puede proporcionar el valor solo cuando confirma la cuenta. Este valor no se puede proporcionar en el momento de registro.

Cuando el usuario se registra con un nombre de usuario, usted puede elegir si puede iniciar sesión con uno o más de los alias siguientes.

  • Dirección de correo electrónico verificada

  • Número de teléfono verificado

  • Nombre de usuario preferido

Los usuarios pueden cambiar estos alias después de registrarse.

importante

Si el grupo de usuarios admite el inicio de sesión con alias y desea autorizar o buscar a un usuario, no lo identifique por ninguno de sus atributos de inicio de sesión. El identificador de usuario de valor fijo sub es el único indicador coherente de la identidad del usuario.

Incluya los siguientes pasos al crear el grupo de usuarios para que los usuarios puedan iniciar sesión con un alias.

Phone number or email address (console)

Debe configurar la dirección de correo electrónico y el número de teléfono como atributos de alias al crear un grupo de usuarios.

Para crear un grupo de usuarios con alias de nombre de usuario en la consola de Amazon Cognito
  1. Diríjase a Amazon Cognito en la AWS Management Console. Si la consola se lo pide, introduzca sus credenciales. AWS

  2. Cree un nuevo grupo de usuarios con el botón Comenzar o Crear grupo de usuarios.

  3. Elija la configuración de la aplicación en Defina su aplicación.

  4. En Configurar opciones, en Opciones para los identificadores de inicio de sesión, selecciona la casilla situada junto al nombre de usuario y al menos una de las demás opciones, correo electrónico y número de teléfono.

  5. Elige los atributos de tu alias como atributos obligatorios para el registro. En el formulario de registro de inicio de sesión gestionado, Amazon Cognito pide a los nuevos usuarios que proporcionen valores para los atributos obligatorios.

  6. En Añadir una URL de retorno, configure una URL de devolución de llamada de la aplicación para redirigirla después de iniciar sesión de forma gestionada.

  7. Seleccione Crear.

Phone number or email address (API/SDK)

Cree un nuevo grupo de usuarios con la operación de la CreateUserPoolAPI. Configure el AliasAttributes parámetro como se muestra. Puede eliminar la email entrada si solo quiere alias de números de teléfono o eliminar la phone_number entrada si solo quiere alias de direcciones de correo electrónico.

"AliasAttributes": [ "email", "phone_number" ],
Preferred username (API/SDK)

La consola de Amazon Cognito crea grupos de usuarios sin preferred_username alias. Para crear grupos de usuarios con un preferred_username alias, configure grupos de usuarios con solicitudes de CreateUserPoolAPI en un AWS SDK. Para permitir la creación de los atributos de nombre de usuario preferidos al registrarse, configúrelos preferred_username como atributo obligatorio. En el formulario de registro de inicio de sesión gestionado, Amazon Cognito pide a los nuevos usuarios que proporcionen valores para los atributos obligatorios. Puede configurarlo preferred_username como atributo obligatorio en la consola de Amazon Cognito, pero esto no significa que esté disponible como alias.

Configúrelo como un alias

Configure preferred_username como un alias en el AliasAttributes parámetro de una CreateUserPool solicitud, como se muestra. Elimine de la lista los valores que no desee utilizar como atributos de alias.

"AliasAttributes": [ "email", "phone_number", "preferred_username" ],
Configure según sea necesario

En el formulario de registro de inicio de sesión gestionado, Amazon Cognito pide a los nuevos usuarios que proporcionen valores para los atributos obligatorios. preferred_usernameConfigúrelo según se requiera en el SchemaAttributes parámetro de una solicitud. CreateUserPool

Para establecer el nombre de usuario preferido como atributo obligatorio, configúrelo como se muestra. El siguiente ejemplo modifica el esquema predeterminado de preferred_username para configurarlo según sea necesario. Otros parámetros del esquema, como AttributeDataType (el valor predeterminado esstring) y StringAttributeConstraints (el valor predeterminado es de 1 a 99 caracteres de longitud) asumen los valores predeterminados.

"Schema": [ { "Name": "preferred_username", "Required": true } ]

Puede elegir si el usuario solo puede registrarse con una dirección de correo electrónico, solo con un número de teléfono o con cualquiera de estas dos opciones cuando este se registra con una dirección de correo electrónico o un número de teléfono como nombre de usuario.

Para elegir los atributos del nombre de usuario, no selecciones el nombre de usuario como opción de inicio de sesión al crear tu grupo de usuarios.

El correo electrónico o el número de teléfono deben ser únicos y no pueden estar siendo utilizados por otro usuario. No se tiene que verificar. Después de que el usuario se haya registrado con un correo electrónico o un número de teléfono, no podrá crear una cuenta con el mismo correo electrónico o con el mismo número de teléfono, solo podrá reutilizar la cuenta existente (y restablecer la contraseña si es necesario). El usuario solo puede reutilizar la cuenta existente y restablecer la contraseña de la cuenta, si esto fuera necesario. No obstante, el usuario puede cambiar la dirección de correo electrónico o el número de teléfono por otro nuevo. Si la dirección de correo electrónico o el número de teléfono no se están usando, pasará a ser el nuevo nombre de usuario.

Al seleccionar tanto la dirección de correo electrónico como el número de teléfono como atributos de nombre de usuario, los usuarios pueden iniciar sesión con uno u otro, incluso si proporcionan valores para ambos atributos. El nombre de usuario de inicio de sesión se basa en el valor por el que se introduce en el Username parámetro. SignUp

nota

Si un usuario se registra con una dirección de correo electrónico como nombre de usuario, puede cambiarlo por otra dirección de correo electrónico, pero no por un número de teléfono. Si se registra con un número de teléfono, puede cambiar el nombre de usuario por otro número de teléfono, pero no por una dirección de correo electrónico.

Siga estos pasos a la hora de crear el grupo de usuarios para configurar el registro y el inicio de sesión con una dirección de correo electrónico o con un número de teléfono.

Username attributes (console)

El siguiente procedimiento crea un grupo de usuarios con los atributos de nombre de usuario de dirección de correo electrónico o número de teléfono. La diferencia en el proceso de los atributos de nombre de usuario en la consola de Amazon Cognito es que no se establece también el nombre de usuario como atributo de inicio de sesión.

Para crear un grupo de usuarios con atributos de nombre de usuario en la consola de Amazon Cognito
  1. Diríjase a Amazon Cognito en la AWS Management Console. Si la consola se lo pide, introduzca sus credenciales. AWS

  2. Cree un nuevo grupo de usuarios con el botón Comenzar o Crear grupo de usuarios.

  3. Elija la configuración de la aplicación en Defina su aplicación.

  4. En Configurar opciones, en Opciones para los identificadores de inicio de sesión, selecciona los atributos de tu nombre de usuario: correo electrónico, número de teléfono o ambos. Deja el nombre de usuario desmarcado.

  5. Como práctica recomendada, selecciona los atributos de tu nombre de usuario como atributos obligatorios para el registro. En el formulario de registro de inicio de sesión gestionado, Amazon Cognito pide a los nuevos usuarios que proporcionen valores para los atributos obligatorios. Si no establece los atributos de su nombre de usuario según sea necesario, Amazon Cognito no solicitará a los nuevos usuarios que proporcionen valores para ellos. En ese escenario, debe configurar la aplicación para que recopile y envíe las direcciones de correo electrónico o los números de teléfono de cada usuario antes de que puedan iniciar sesión.

  6. En Añadir una URL de retorno, configura una URL de devolución de llamada de la aplicación para redirigirla después de iniciar sesión de forma gestionada.

  7. Seleccione Crear.

Username attributes (API/SDK)

En una CreateUserPoolsolicitud, configura el UsernameAttributes parámetro como se muestra. Para permitir el inicio de sesión únicamente con nombres de usuario de direcciones de correo electrónico, email especifíquelo solo en esta lista. Para permitir el inicio de sesión únicamente con nombres de usuario de números de teléfono, especifique solo. phone_number Este parámetro anula el nombre de usuario como opción de inicio de sesión.

"UsernameAttributes": [ "email", "phone_number" ],

Al configurar los atributos del nombre de usuario, puede realizar solicitudes de SignUpAPI que incluyan una dirección de correo electrónico o un número de teléfono en el username parámetro. El siguiente es el comportamiento de la operación de la SignUp API de código con los atributos de nombre de usuario.

  • Si la username cadena tiene un formato de dirección de correo electrónico válido, por ejemplouser@example.com, el grupo de usuarios rellena automáticamente el email atributo del usuario con el username valor.

  • Si la username cadena tiene un formato de número de teléfono válido, por ejemplo+12065551212, el grupo de usuarios rellena automáticamente el phone_number atributo del usuario con el username valor.

  • Si el formato de cadena username no es un formato de dirección de correo electrónico o de número de teléfono, la API de SignUp genera una excepción.

  • Si la cadena username contiene una dirección de correo electrónico o un número de teléfono que ya se está usando, la API de SignUp genera una excepción.

  • La SignUp API rellena el username atributo con un UUID para el usuario. Este UUID tiene el mismo valor que la notificación sub en el token de identidad de usuario.

Puedes usar una dirección de correo electrónico o un número de teléfono en lugar del nombre de usuario en todas las operaciones, APIs excepto en la ListUsersoperación. En las solicitudes de ListUsers API, puedes especificar Filter una email ophone_number. Si filtra porusername, debe proporcionar el nombre de usuario del UUID, no la dirección de correo electrónico o el número de teléfono.

Custom attributes (Atributos personalizados)

Puede añadir hasta 50 atributos personalizados a un grupo de usuarios. Puede especificar la longitud mínima o máxima de los atributos personalizados. Sin embargo, la longitud máxima de ningún atributo personalizado puede superar los 2048 caracteres. El nombre de un atributo personalizado debe coincidir con el patrón de expresión regular que se describe en el Name parámetro de SchemaAttributeType.

Cada atributo personalizado incluye las siguientes características:
  • Puede definirlo como cadena o como número. Amazon Cognito escribe valores de atributos personalizados en el token de ID solo como cadenas.

  • No puede exigir que los usuarios proporcionen un valor para el atributo.

  • No puede eliminarlo ni cambiarlo después de agregarlo al grupo de usuarios.

  • La longitud de caracteres del nombre de atributo se encuentra dentro del límite aceptable por parte de Amazon Cognito. Para obtener más información, consulte Cuotas en Amazon Cognito.

  • Puede ser mutable o inmutable. Solo se puede escribir un valor en un atributo inmutable la primera vez que se crea un usuario. Puede cambiar el valor de un atributo mutable si el cliente de la aplicación tiene permiso de escritura para el atributo. Para obtener más información, consulta Permisos y ámbitos de los atributos.

nota

En el código y en la configuración de reglas para Uso del control de acceso basado en roles, los atributos personalizados han de llevar el prefijo custom: para diferenciarse de los atributos estándar.

También puede añadir atributos de desarrollador al crear grupos de usuarios, en la SchemaAttributes propiedad de CreateUserPool. Los atributos del desarrollador tienen un prefijo dev:. Solo puede modificar los atributos de desarrollador de un usuario con AWS credenciales. Los atributos de desarrollador son una característica antigua que Amazon Cognito sustituyó por permisos de lectura-escritura del cliente de la aplicación.

Utilice el siguiente procedimiento para crear una en un almacén de claves personalizado.

Para añadir un atributo personalizado con la consola
  1. Vaya a Amazon Cognito en. AWS Management Console Si la consola se lo pide, introduzca sus credenciales. AWS

  2. Elija User Pools (Grupos de usuarios).

  3. Elija en la lista un usuario existente.

  4. Seleccione el menú de registro y, en la sección Atributos personalizados, elija Agregar atributos personalizados.

  5. En la páginaAgregar atributos personalizados, proporcione los siguientes detalles sobre el nuevo atributo:

    • Escriba un Name (nombre).

    • Seleccione Type (tipo), ya sea String (cadena) o Number (número).

    • Escriba una longitud de cadena o un valor numérico Min (mínima).

    • Escriba una longitud de cadena o un valor numérico Max (máximo).

    • Seleccione Mutable (Mutable) si desea dar permiso a los usuarios para cambiar el valor de un atributo personalizado después de establecer el valor inicial.

  6. Elija Guardar cambios.

Permisos y ámbitos de los atributos

Puede establecer permisos de lectura y escritura para cada atributo de usuario para cada una de sus aplicaciones de cliente. Esto permite controlar el acceso del que dispone cualquier aplicación para leer y modificar cada atributo que se almacene para los usuarios. Por ejemplo, puede tener un atributo personalizado que indique si el usuario es cliente de pago o no. Es posible que sus aplicaciones puedan ver este atributo, pero no cambiarlo directamente. Por lo tanto, puede actualizar el atributo mediante una herramienta administrativa o un proceso de fondo. Los permisos para atributos de usuario se pueden configurar desde la consola de Amazon Cognito, la API de Amazon Cognito o la AWS CLI. De forma predeterminada, los nuevos atributos personalizados no están disponibles hasta que defina permisos de lectura y escritura para ellos. De forma predeterminada, cuando crea un nuevo cliente de aplicación, concede a la aplicación permisos de lectura y escritura para todos los atributos estándar y personalizados. Para limitar la aplicación a solo la cantidad de información que necesita, asigne permisos específicos a los atributos de la configuración del cliente de la aplicación.

Como práctica recomendada, especifique los permisos de lectura y escritura de los atributos al crear el cliente de aplicación. Concédale a este acceso al conjunto mínimo de atributos de usuario que son necesarios para que funcione la aplicación.

nota

DescribeUserPoolClientsolo devuelve valores para ReadAttributes y WriteAttributes cuando configuras permisos de cliente de aplicaciones distintos de los predeterminados.

Para actualizar los permisos de los atributos (AWS Management Console)
  1. Vaya a Amazon Cognito en. AWS Management Console Si la consola se lo pide, introduzca sus credenciales. AWS

  2. Elija User Pools (Grupos de usuarios).

  3. Elija en la lista un usuario existente.

  4. Seleccione el menú de clientes de aplicaciones y elija un cliente de aplicaciones de la lista.

  5. En la pestaña Permisos de atributos, selecciona Editar.

  6. En la página Edit attribute read and write permissions (Editar permisos de lectura y escritura de atributos), configure los permisos de lectura y escritura y, a continuación, elija Save changes (Guardar cambios).

Repita estos pasos para cada cliente de aplicación que utilice el atributo personalizado.

Por cada cliente de aplicación, puede marcar los atributos como de lectura o escritura. Esto es cierto para los atributos estándar y los atributos personalizados. La aplicación puede recuperar el valor de los atributos que marque como legibles y puede establecer o modificar el valor de los atributos que marque como que admiten la escritura. Si la aplicación intenta establecer un valor para un atributo que no está autorizada a escribir, Amazon Cognito devuelve el mensaje. NotAuthorizedException GetUserlas solicitudes incluyen un token de acceso con una reclamación del cliente de la aplicación; Amazon Cognito solo devuelve valores de los atributos que el cliente de la aplicación puede leer. El token de ID de usuario de una aplicación solo contiene afirmaciones que corresponden a los atributos legibles. Todos los clientes de la aplicación pueden escribir los atributos necesarios para el grupo de usuarios. Solo puede establecer el valor de un atributo en una solicitud de la API de grupos de usuarios de Amazon Cognito si también proporciona un valor para los atributos obligatorios que aún no tienen un valor.

Los atributos personalizados tienen características distintas para permisos de lectura y escritura. Puede crearlos como mutables o inmutables para el grupo de usuarios y puede configurarlos como atributos de lectura o escritura para cualquier cliente de la aplicación.

Un atributo personalizado inmutable se puede actualizar una vez, durante la creación del usuario. Puede rellenar un atributo inmutable con los siguientes métodos.

  • SignUp: un usuario se registra en un cliente de la aplicación que tiene acceso de escritura a un atributo personalizado inmutable. Proporcionan un valor para ese atributo.

  • Inicio de sesión con un IdP externo: un usuario inicia sesión en un cliente de la aplicación que tiene acceso de escritura a un atributo personalizado inmutable. La configuración del grupo de usuarios para su IdP tiene una regla para asignar una notificación proporcionada a un atributo inmutable. Esto es posible, pero no es práctico, ya que el usuario solo podrá iniciar sesión una vez. En los intentos de inicio de sesión posteriores, Amazon Cognito lo rechazará debido a la regla de asignación a un atributo en el que ya no se podrá escribir.

  • AdminCreateUser: usted proporciona un valor para un atributo inmutable.

Permisos de atributos con ámbitos

En los grupos de usuarios que configure con un AWS SDK o un CDK, la API REST o la AWS CLI, puede configurar el acceso de lectura o escritura del cliente de la aplicación con el ámbito del OIDC. oidc:profile oidc:profile otorga acceso de lectura o escritura a los siguientes atributos estándar:

  • name

  • family_name

  • given_name

  • middle_name

  • nickname

  • preferred_username

  • profile

  • picture

  • website

  • gender

  • birthdate

  • zoneinfo

  • locale

Esta lista contiene los atributos estándar de OIDC menos email, phone_number, sub y address, según la definición que figura en la sección 2.4 de la especificación de OIDC. Para obtener información sobre los ámbitos que puede asignar a los clientes de la aplicación, consulte Ámbitos, M2M y APIs con servidores de recursos.

Para configurar el cliente de la aplicación para que escriba en los atributos incluidos en el oidc:profile ámbito, defina el valor de WriteAttributestooidc:profile, además de cualquier otro atributo que desee permitir que la aplicación modifique, en una solicitud CreateUserPoolCliento UpdateUserPoolClienta la API. Del mismo modo, para conceder acceso de lectura a estos atributos, añade oidc:profile el valor de ReadAttributes.

Puede cambiar los permisos y los alcances de los atributos después de crear el grupo de usuarios.