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 se pueden añadir atributos personalizados a la definición del grupo de usuarios en la Consola de administración de AWS. 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 emplear un desencadenador de Lambda, como Antes del registro.

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 parámetro SchemaAttributes de una respuesta a la API DescribeUserPool. 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 Schema de CreateUserPool. 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 utilizar la API de AdminCreateUser. 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 con el formato AAAA-MM-DD.

correo electrónico

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

Un administrador con permisos de Cuenta de AWS adecuados puede cambiar el correo electrónico del usuario y también marcarlo como verificado. Marque las direcciones de correo electrónico como verificadas con la API de AdminUpdateUserAttributes o con el comando AWS Command Line Interface de admin-update-user-attributes (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 el 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 permisos adecuados para Cuenta de AWS puede cambiar el número de teléfono del usuario y también marcarlo como verificado. Marque los números de teléfono como verificados con la API AdminUpdateUserAttributes o con el comando de AWS CLI admin-update-user-attributes. 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 es un alias, puede realizar una solicitud a la operación de la API UpdateUserAttributes y agregar 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. Diríjase a Amazon Cognito en la Consola de administración de AWS. Si la consola lo solicita, ingrese sus credenciales para AWS.

  2. Elija User Pools (Grupos de usuarios).

  3. Elija en la lista un usuario existente.

  4. Seleccione el menú 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 atributos de username, consulte la propiedad nombre de usuario de una solicitud de la API SignUp.

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

¹ 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. Cree los alias si quiere que los usuarios tengan la opción de elegir entre el nombre de usuario y otros valores de atributos en el campo de nombre de usuario del formulario de inicio de sesión. El atributo username 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 CreateUserPool en la Referencia 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.

Cómo crear un grupo de usuarios con los alias de los nombres de usuario en la consola de Amazon Cognito
  1. Diríjase a Amazon Cognito en la Consola de administración de AWS. Si la consola lo solicita, ingrese sus credenciales para AWS.

  2. Cree un nuevo grupo de usuarios con el botón Introducción 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, seleccione la casilla junto a Nombre de usuario y, al menos, una de las otras opciones, Correo electrónico y Número de teléfono.

  5. Ponga los atributos de su alias como Atributos necesarios para el inicio de sesión. En el formulario de registro del inicio de sesión administrado, Amazon Cognito pide a los nuevos usuarios que proporcionen valores para los atributos obligatorios.

  6. En Agregar una URL de retorno, configure una URL de devolución de llamada de la aplicación para redirigirla tras abrir sesión con el inicio de sesión administrado.

  7. Seleccione Crear.

Phone number or email address (API/SDK)

Cree un nuevo grupo de usuarios con la operación de API CreateUserPool. Configure el parámetro AliasAttributes como se muestra. Puede eliminar la entrada email si solo quiere alias de números de teléfono o eliminar la entrada phone_number 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 como alias. Para crear grupos de usuarios con un alias preferred_username, configure grupos de usuarios con las solicitudes de la API CreateUserPool en un AWS SDK. Para permitir la creación de los atributos de nombre de usuario preferentes en el registro, configure preferred_username como atributo obligatorio. En el formulario de registro del inicio de sesión administrado, Amazon Cognito pide a los nuevos usuarios que proporcionen valores para los atributos obligatorios. Puede configurar preferred_username como atributo obligatorio en la consola de Amazon Cognito, pero esto no significa que esté disponible como alias.

Configuración como alias

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

"AliasAttributes": [ "email", "phone_number", "preferred_username" ],
Configuración como obligatorio

En el formulario de registro del inicio de sesión administrado, Amazon Cognito pide a los nuevos usuarios que proporcionen valores para los atributos obligatorios. Configure preferred_username como obligatorio en el parámetro SchemaAttributes de una solicitud CreateUserPool.

Para establecer el nombre de usuario preferente como atributo obligatorio, configúrelo como se muestra a continuación. El siguiente ejemplo modifica el esquema predeterminado de preferred_username para configurarlo como obligatorio. Otros parámetros del esquema, como AttributeDataType (cuyo valor predeterminado es string) y StringAttributeConstraints (cuyo valor predeterminado tiene entre 1 y 99 caracteres de longitud) asumen 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 de nombre de usuario, no seleccione Nombre de usuario como opción de inicio de sesión cuando cree el 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 que se transfiere en el parámetro Username de 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 dirección de correo electrónico o número de teléfono en los atributos de nombre de usuario. La diferencia en el proceso de los atributos de username en la consola de Amazon Cognito es que no se establece también el nombre de usuario como atributo de inicio de sesión.

Cómo crear un grupo de usuarios con atributos de nombres de usuario en la consola de Amazon Cognito
  1. Diríjase a Amazon Cognito en la Consola de administración de AWS. Si la consola lo solicita, ingrese sus credenciales para AWS.

  2. Cree un nuevo grupo de usuarios con el botón Introducción 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, seleccione sus atributos de nombre de usuario: Correo electrónico, Número de teléfono o ambos. Deje Nombre de usuario sin marcar.

  5. Como práctica recomendada, seleccione los atributos de su nombre de usuario como Atributos necesarios para el inicio de sesión. En el formulario de registro del inicio de sesión administrado, Amazon Cognito pide a los nuevos usuarios que proporcionen valores para los atributos obligatorios. Si no establece los atributos de su nombre de usuario como obligatorios, 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 Agregar una URL de retorno, configure una URL de devolución de llamada de la aplicación para redirigirla tras abrir sesión con el inicio de sesión administrado.

  7. Seleccione Crear.

Username attributes (API/SDK)

En una solicitud CreateUserPool, configure el parámetro UsernameAttributes como se muestra a continuación. Para permitir el inicio de sesión solo con nombres de usuario de direcciones de correo electrónico, ponga solo email en esta lista. Para permitir el inicio de sesión únicamente con nombres de usuario de números de teléfono, ponga 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 a la API SignUp que pasen una dirección de correo electrónico o un número de teléfono en el parámetro username. A continuación, puede ver el comportamiento de la operación de la API SignUp de código con los atributos de nombre de usuario.

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

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

  • 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 API SignUp rellena el atributo username con un UUID para el usuario. Este UUID tiene el mismo valor que la notificación sub en el token de identidad de usuario.

Puede utilizar una dirección de correo electrónico o un número de teléfono en lugar del nombre de usuario en todas las API, excepto en la operación ListUsers. En las solicitudes de API ListUsers, puede especificar un Filter de email o phone_number. Si filtra por username, debe proporcionar el nombre de usuario del UUID, no la dirección de correo electrónico ni 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 parámetro Name de SchemaAttributeType.

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

    nota

    En la consola de Amazon Cognito, solo puede añadir atributos personalizados de los tipos de datos de cadena y número. Las opciones adicionales, como los datos para atributo del tipo booleanos y DateTime, solo están disponibles en la propiedad SchemaAttributes de las solicitudes de API CreateUserPool y UpdateUserPool.

  • 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, consulte 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 agregar atributos de desarrollador al crear grupos de usuarios, en la propiedad SchemaAttributes de CreateUserPool. Los atributos del desarrollador tienen un prefijo dev:. Solo puede modificar los atributos de desarrollador de un usuario con credenciales de AWS. 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. Diríjase a Amazon Cognito en la Consola de administración de AWS. Si la consola lo solicita, ingrese sus credenciales para AWS.

  2. Elija User Pools (Grupos de usuarios).

  3. Elija en la lista un usuario existente.

  4. Elija el menú Registro y, en la pestaña 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. Seleccione Save changes (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

DescribeUserPoolClient solo devuelve valores para ReadAttributes y WriteAttributes al configurar permisos de cliente de aplicaciones distintos de los predeterminados.

Para actualizar los permisos de los atributos (Consola de administración de AWS)
  1. Diríjase a Amazon Cognito en la Consola de administración de AWS. Si la consola lo solicita, ingrese sus credenciales para AWS.

  2. Elija User Pools (Grupos de usuarios).

  3. Elija en la lista un usuario existente.

  4. Seleccione el menú Clientes de aplicación y seleccione un cliente de aplicación de la lista.

  5. En la pestaña Permisos de atributos, elija 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 NotAuthorizedException. Las solicitudes GetUser incluyen un token de acceso con una reclamación del cliente de la aplicación; Amazon Cognito solo devuelve los 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 de REST o la AWS CLI, puede configurar el acceso de lectura o escritura de los clientes de aplicación con el ámbito de 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 servidores de recursos.

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

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