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.
Autorización de alcances, M2M y API con servidores de recursos
Después de configurar un dominio para su grupo de usuarios, Amazon Cognito aprovisiona automáticamente un servidor de autorización OAuth 2.0 y una interfaz de usuario web hospedada con páginas de registro e inicio de sesión que su aplicación puede presentar a sus usuarios. Para más información, consulte Agregue un cliente de aplicaciones con la interfaz de usuario alojada. Puede elegir los ámbitos que desea que el servidor de autorización agregue a los tokens de acceso. Los ámbitos autorizan el acceso a los servidores de recursos y a los datos de los usuarios.
Un servidor de recursos es un servidor de API OAuth 2.0scope
Para obtener más información sobre las solicitudes de tokens de acceso a Amazon Cognito, consulte Uso del token de acceso.
Con Amazon Cognito, los ámbitos de los tokens de acceso pueden autorizar el acceso a las API externas o a los atributos del usuario. Puede emitir tokens de acceso a usuarios locales, usuarios federados o identidades de máquinas.
Autorización M achine-to-machine (M2M)
Amazon Cognito admite aplicaciones que acceden a los datos de la API con identidades de máquinas. Las identidades de las máquinas de los grupos de usuarios son clientes confidenciales que se ejecutan en servidores de aplicaciones y se conectan a API remotas. Su funcionamiento se lleva a cabo sin la interacción del usuario: tareas programadas, flujos de datos o actualizaciones de activos. Cuando estos clientes autorizan sus solicitudes con un token de acceso, realizan la autorización de máquina a máquina (M2M). En la autorización M2M, un secreto compartido reemplaza las credenciales de usuario en el control de acceso.
Una aplicación que accede a una API con autorización M2M debe tener un ID de cliente y un secreto de cliente. En su grupo de usuarios, debe crear un cliente de aplicaciones que admita la concesión de credenciales de cliente. Para admitir las credenciales de los clientes, el cliente de la aplicación debe tener un secreto de cliente y usted debe tener un dominio de grupo de usuarios. En este flujo, la identidad de su máquina solicita un token de acceso directamente desdePunto de conexión de token. Solo puede autorizar ámbitos personalizados de los servidores de recursos en los tokens de acceso para la concesión de credenciales de clientes. Para obtener más información sobre la configuración de los clientes de aplicaciones, consulteClientes de aplicación de grupo de usuarios.
El token de acceso que se obtiene al conceder las credenciales de un cliente es una declaración verificable de las operaciones que quieres permitir que la identidad de tu máquina solicite desde una API. Para obtener más información sobre cómo los tokens de acceso autorizan las solicitudes de API, sigue leyendo. Para ver un ejemplo de aplicación, consulte Autorización de máquina a máquina basada en Amazon Cognito y API Gateway mediante AWS
CDK
La autorización M2M tiene un modelo de facturación que difiere de la forma en que se factura a los usuarios activos mensuales (MAU). Si bien la autenticación de los usuarios conlleva un coste por usuario activo, la facturación M2M refleja las credenciales de los clientes activos, los clientes de aplicaciones y el volumen total de solicitudes de fichas. Para obtener más información, consulte Precios de Amazon Cognito
Para obtener información sobre cómo optimizar las operaciones de Amazon Cognito que añaden costes a su AWS factura, consulte. Administración de los costos de
Acerca de los ámbitos
Un ámbito es un nivel de acceso que una aplicación puede solicitar a un recurso. En un token de acceso de Amazon Cognito, el alcance está respaldado por la confianza que haya establecido con su grupo de usuarios: un emisor de tokens de acceso de confianza con una firma digital conocida. Los grupos de usuarios pueden generar tokens de acceso con ámbitos que demuestren que su cliente está autorizado para administrar parte o la totalidad de su propio perfil de usuario, o para recuperar datos de una API de backend. Los grupos de usuarios de Amazon Cognito emiten tokens de acceso con el ámbito de API reservado por los grupos de usuarios, los ámbitos personalizados y los ámbitos estándar.
Ámbito de API reservado para los grupos de usuarios
El ámbito aws.cognito.signin.user.admin
autoriza a la API de grupos de usuarios de Amazon Cognito. Autoriza al portador de un token de acceso a consultar y actualizar toda la información sobre un usuario de un grupo de usuarios mediante, por ejemplo, las operaciones de la API GetUsery UpdateUserAttributesla API. Cuando autentique a su usuario con la API de grupos de usuarios de Amazon Cognito, este será el único ámbito que recibirá en el token de acceso. También es el único ámbito que necesita para leer y escribir atributos de usuario que haya autorizado que lea y escriba su cliente de aplicación. También puede solicitar este alcance en las solicitudes dirigidas al Autorizar punto de conexión. Este ámbito por sí solo no es suficiente para solicitar los atributos de usuario de Punto de conexión de UserInfo. En el caso de los tokens de acceso que autorizan la API de grupos de usuarios y las solicitudes de userInfo
para los usuarios, debe solicitar ambos ámbitos openid
y aws.cognito.signin.user.admin
en una solicitud de /oauth2/authorize
.
Ámbitos personalizados
Los ámbitos personalizados autorizan las solicitudes a las API externas que protegen los servidores de recursos. Puede solicitar ámbitos personalizados con otros tipos de ámbitos. Puede encontrar más información sobre los ámbitos personalizados en esta página.
Ámbitos estándar
Cuando autentique a los usuarios con el servidor de autorización OAuth 2.0 del grupo de usuarios, incluso con la interfaz de usuario alojada, deberá solicitar ámbitos. Puede autenticar usuarios locales de grupos de usuarios y usuarios federados de terceros en su servidor de autorización de Amazon Cognito. Los ámbitos estándar de OAuth 2.0 autorizan a su aplicación a leer la información de usuario del Punto de conexión de UserInfo de su grupo de usuarios. El modelo OAuth, por el que se consultan los atributos del usuario desde el punto de conexión de userInfo
, puede optimizar su aplicación para un gran volumen de solicitudes de atributos del usuario. El punto de conexión de userInfo
devuelve atributos en un nivel de permiso determinado por los ámbitos en el token de acceso. Puede autorizar al cliente de la aplicación a emitir tokens de acceso con los siguientes ámbitos estándar de OAuth 2.0.
- openid
-
El ámbito mínimo para las consultas de OpenID Connect (OIDC). Autoriza el token de identificación, la solicitud de identificador único
sub
y la posibilidad de solicitar otros ámbitos.nota
Cuando solicita el ámbito de
openid
y no otros, el token de ID del grupo de usuarios y la respuestauserInfo
incluyen reclamaciones de todos los atributos de usuario que el cliente de la aplicación pueda leer. Cuando solicitaopenid
y otros ámbitos estándar comoprofile
,email
yphone
, el contenido del token de ID y la respuesta de userInfo se limitan a las restricciones de los ámbitos adicionales.Por ejemplo, una solicitud a Autorizar punto de conexión con el parámetro
scope=openid+email
devuelve un token de ID consub
,email
yemail_verified
. El token de acceso de esta solicitud devuelve los mismos atributos de Punto de conexión de UserInfo. Una solicitud con un parámetroscope=openid
devuelve todos los atributos legibles por el cliente del token de ID y deuserInfo
. - profile
-
Autoriza todos los atributos de usuario que el cliente de la aplicación puede leer.
-
Autoriza los atributos de usuario
email
yemail_verified
. Amazon Cognito devuelveemail_verified
si se ha establecido un conjunto de valores de forma explícita. - phone
-
Autoriza los atributos de usuario
phone_number
yphone_number_verified
.
Acerca de los servidores de recursos
Una API de servidor de recursos puede conceder acceso a la información de una base de datos o controlar los recursos de TI. Un token de acceso de Amazon Cognito puede autorizar el acceso a las API compatibles con OAuth 2.0. Las API de REST de Amazon API Gateway tienen soporte integrado para obtener autorización con los tokens de acceso de Amazon Cognito. Su aplicación pasa el token de acceso de la llamada a API al servidor de recursos. El servidor de recursos inspecciona el token de acceso para determinar si debe conceder acceso.
Amazon Cognito podría realizar actualizaciones futuras del esquema de tokens de acceso al grupo de usuarios. Si su aplicación analiza el contenido del token de acceso antes de pasarlo a una API, debe diseñar el código para que acepte actualizaciones del esquema.
Usted define los ámbitos personalizados, que amplían las capacidades de autorización de un grupo de usuarios para incluir fines no relacionados con la consulta y modificación de usuarios y sus atributos. Por ejemplo, si tiene un servidor de recursos para fotos, este puede definir dos ámbitos: photos.read
para el acceso de lectura a las fotos y photos.write
para el acceso de escritura y eliminación. Puede configurar una API para aceptar los tokens de acceso para autorización y la concesión de solicitudes de HTTP GET
para acceder a los tokens con photos.read
en la reclamación de scope
y solicitudes de HTTP POST
a tokens con photos.write
. Estos son ámbitos personalizados.
nota
El servidor de recursos debe verificar la firma del token de acceso y la fecha de vencimiento antes de procesar las notificaciones del token. Para obtener más información sobre la verificación de tokens, consulte Verificación de un JSON Web Token. Para obtener más información sobre la verificación y utilización de tokens de grupos de usuarios en Amazon API Gateway, consulte el blog Integración de grupos de usuarios de Amazon Cognito con API Gateway
Información general
Con Amazon Cognito, puede crear Servidores de recursos de OAuth 2.0 y asociar Ámbitos personalizados con ellos. Los ámbitos personalizados de un token de acceso autorizan acciones específicas en la API. Puede autorizar a cualquier cliente de aplicación del grupo de usuarios a emitir ámbitos personalizados desde cualquiera de los servidores de recursos. Asocie los ámbitos personalizados con un cliente de la aplicación y solicite esos ámbitos en las adjudicaciones de código de autorización OAuth2.0, las adjudicaciones implícitas y las adjudicaciones de credenciales de cliente de Punto de conexión de token. Amazon Cognito agrega ámbitos personalizados a la reclamación de scope
en un token de acceso. Un cliente puede utilizar el token de acceso en su servidor de recursos, lo que hace que la decisión de conceder la autorización se base en los ámbitos presentes en el token. Para obtener más información acerca del ámbito de aplicación de tokens de acceso, consulte Uso de tokens con grupos de usuarios.
Para obtener un token de acceso con ámbitos personalizados, su aplicación debe enviar una solicitud al Punto de conexión de token para canjear un código de autorización o solicitar una concesión de credenciales de cliente. En la IU alojada, también puede solicitar ámbitos personalizados en un token de acceso a partir de una concesión implícita.
nota
Porque están diseñadas para la autenticación interactiva con personas con el grupo de usuarios como IdP InitiateAuth, AdminInitiateAuthy las solicitudes solo producen scope
un reclamo en el token de acceso con el valor único. aws.cognito.signin.user.admin
Administrar el servidor de recursos y los ámbitos personalizados
Al crear un servidor de recursos, debe proporcionar un nombre y un identificador de servidor de recursos. Por cada ámbito que cree en el servidor de recursos, debe proporcionar un nombre y una descripción.
-
Nombre de servidor de recursos: un nombre sencillo para el servidor de recursos, como
Solar system object tracker
oPhoto API
. -
Identificador de servidor de recursos: un identificador único para el servidor de recursos. El identificador es cualquier nombre que quiera asociar a su API, por ejemplo,
solar-system-data
. Puede configurar identificadores más largos, comohttps://solar-system-data-api.example.com
como una referencia más directa a las rutas URI de la API, pero las cadenas más largas aumentan el tamaño de los tokens de acceso. -
Nombre del ámbito: el valor que quiere en las reclamaciones del
scope
. Por ejemplo,sunproximity.read
. -
Descripción: una descripción sencilla del ámbito. Por ejemplo,
Check current proximity to sun
.
Amazon Cognito puede incluir ámbitos personalizados en los tokens de acceso para cualquier usuario, ya sea local del grupo de usuarios o federado con un proveedor de identidades de terceros. Puede elegir ámbitos para los tokens de acceso de sus usuarios durante los flujos de autenticación con el servidor de autorización OAuth 2.0 que incluye la interfaz de usuario alojada. La autenticación del usuario debe comenzar en Autorizar punto de conexión con scope
como uno de los parámetros de la solicitud. A continuación, se presenta el formato recomendado para los servidores de recursos. Para un identificador, utilice un nombre fácil de usar para la API. Para un ámbito personalizado, utilice la acción que se autorice.
resourceServerIdentifier
/scopeName
Por ejemplo, ha descubierto un nuevo asteroide en el cinturón de Kuiper y quiere registrarlo a través de su API solar-system-data
. El ámbito que autoriza las operaciones de escritura en la base de datos de asteroides es asteroids.add
. Cuando solicite el token de acceso que le autorizará a registrar su descubrimiento, formatee su parámetro de solicitud HTTPS scope
como scope=solar-system-data/asteroids.add
.
Eliminar un ámbito de un servidor de recursos no elimina su asociación con todos los clientes. En cambio, el ámbito está marcado inactivo. Amazon Cognito no agrega ámbitos inactivos para acceder a los tokens, sino que, por lo demás, continúa con normalidad si la aplicación solicita uno. Si vuelve a agregar el ámbito al servidor de recursos más adelante, Amazon Cognito lo vuelve a escribir en el token de acceso. Si solicita un ámbito que no ha asociado al cliente de la aplicación, independientemente de si lo ha eliminado del servidor de recursos del grupo de usuarios, se produce un error en la autenticación.
Puede usar la API o la AWS Management Console CLI para definir los servidores de recursos y los ámbitos de su grupo de usuarios.
Definir un servidor de recursos para el grupo de usuarios (AWS Management Console)
Puede utilizarla AWS Management Console para definir un servidor de recursos para su grupo de usuarios.
Para definir un servidor de recursos
-
Inicie sesión en la consola de Amazon Cognito
. -
En el panel de navegación, elija Manage your User Pools (Administrar sus grupos de usuarios) y elija el grupo de usuarios que desea editar.
-
Elija el iconoIntegración de aplicacionestab y localizarServidores de recursos.
-
Elija Create a resource share (Crear un recurso compartido).
-
Escriba unNombre del servidor de recursos. Por ejemplo,
Photo Server
. -
Escriba unIdentificadores de servidores de. Por ejemplo,
com.example.photos
. -
Ingrese los Custom scopes (Ámbitos personalizados) de sus recurso, por ejemplo,
read
ywrite
. -
Para cada Scope name (Nombre de ámbito), escriba una Description (Descripción), por ejemplo,
view your photos
yupdate your photos
. -
Seleccione Crear.
Los ámbitos personalizados se pueden revisar en elIntegración de aplicacionespestaña debajoServidores de recursos, en elÁmbitos personalizadoscolumn. Los ámbitos personalizados se pueden habilitar para clientes de aplicaciones desde elIntegración de aplicacionespestaña debajoClientes de aplicaciones. Seleccione un cliente de aplicación, localiceConfiguración de IU alojaday eligeEditar. AñadirÁmbitos personalizadosy eligeGuarde los cambios.
Definir un servidor de recursos para su grupo de usuarios (AWS CLI y AWS API)
Utilice los siguientes comandos para especificar la configuración del servidor de recursos para su grupo de usuarios.
Para crear un servidor de recursos
-
AWS CLI:
aws cognito-idp create-resource-server
-
AWS API: CreateResourceServer
Para obtener información acerca de la configuración del servidor de recursos
-
AWS CLI:
aws cognito-idp describe-resource-server
-
AWS API: DescribeResourceServer
Para mostrar información acerca de todos los servidores de recursos del grupo de usuarios
-
AWS CLI:
aws cognito-idp list-resource-servers
-
AWS API: ListResourceServers
Para eliminar un servidor de recursos
-
AWS CLI:
aws cognito-idp delete-resource-server
-
AWS API: DeleteResourceServer
Para actualizar la configuración de un servidor de recursos
-
AWS CLI:
aws cognito-idp update-resource-server
-
AWS API: UpdateResourceServer