

# Control del acceso a las API de REST con grupos de usuarios de Amazon Cognito como autorizador
<a name="apigateway-integrate-with-cognito"></a>

Además de utilizar [roles y políticas de IAM](permissions.md) o [autorizadores de Lambda](apigateway-use-lambda-authorizer.md) (que anteriormente se denominaban autorizadores personalizados), también puede utilizar un [grupo de usuarios de Amazon Cognito](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-identity-pools.html) para controlar quién puede tener acceso a la API en Amazon API Gateway. 

Para utilizar un grupo de usuarios de Amazon Cognito con la API, primero debe crear un autorizador del tipo `COGNITO_USER_POOLS` y configurar después un método de API para que utilice ese autorizador. Una vez implementada la API, lo primero que debe hacer el cliente es registrar al usuario en el grupo de usuarios, obtener un [token de acceso o identidad](https://docs.aws.amazon.com/cognito/latest/developerguide/amazon-cognito-user-pools-using-tokens-with-identity-providers.html) para el usuario y llamar al método de API con uno de los tokens, que normalmente están establecidos en el encabezado `Authorization` de la solicitud. La llamada a la API solo tendrá éxito si se suministra el token solicitado y este es válido; de lo contrario, el cliente no tendrá autorización para hacer la llamada, ya que carecerá de las credenciales que permitirían autorizarlo. 

El token de identidad se utiliza para autorizar las llamadas a la API en función de las solicitudes de identidad del usuario conectado. El token de acceso se utiliza para autorizar las llamadas a la API en función de los ámbitos personalizados de los recursos con protección de acceso especificados. Para obtener más información, consulte [Uso de tokens con grupos de usuarios](https://docs.aws.amazon.com/cognito/latest/developerguide/amazon-cognito-user-pools-using-tokens-with-identity-providers.html) y [Servidor de recursos y ámbitos personalizados](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pools-define-resource-servers.html).

Si desea crear y configurar un grupo de usuarios de Amazon Cognito para la API, debe realizar las siguientes tareas:
+ Utilice la API, la CLI, el SDK o la consola de Amazon Cognito para crear un grupo de usuarios; también puede utilizar un grupo de usuarios que pertenezca a otra cuenta de AWS.
+ Utilice la API, la CLI, el SDK o la consola de API Gateway para crear un autorizador de API Gateway con el grupo de usuarios elegido.
+ Utilice la API, la CLI, el SDK o la consola de API Gateway para habilitar el autorizador de los métodos de API seleccionados.

 Para llamar a los métodos de API con un grupo de usuarios habilitado, los clientes de la API tienen que realizar las siguientes tareas:
+  Utilice la API, la CLI o el SDK de Amazon Cognito para registrar el usuario en el grupo de usuarios elegido y obtener un token de identidad o acceso. Para obtener más información sobre el uso de los SDK, consulte [Ejemplos de código de Amazon Cognito con AWS SDK](https://docs.aws.amazon.com/cognito/latest/developerguide/service_code_examples.html).
+  Utilice una plataforma específica del cliente para llamar a la API de API Gateway implementada y proporcione el token apropiado en el encabezado `Authorization`.

Como desarrollador de la API, debe proporcionar a los desarrolladores del cliente el ID del grupo de usuarios, el ID del cliente y, probablemente, los secretos del cliente asociados que se hayan definido con el grupo de usuarios. 

**nota**  
Si desea permitir que un usuario inicie sesión con las credenciales de Amazon Cognito y pueda obtener también unas credenciales temporales para utilizarlas con los permisos de un rol de IAM, utilice las [identidades federadas de Amazon Cognito](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-identity.html). Para cada método HTTP de punto de enlace de recurso de API, establezca el tipo de autorización, categoría `Method Execution`, en `AWS_IAM`. 

En esta sección, se explica cómo crear un grupo de usuarios, cómo integrar una API de API Gateway con el grupo de usuarios y cómo invocar una API que está integrada con el grupo de usuarios. 

**Topics**
+ [Creación de un grupo de usuarios de Amazon Cognito para una API REST](apigateway-create-cognito-user-pool.md)
+ [Integración de una API REST con un grupo de usuarios de Amazon Cognito](apigateway-enable-cognito-user-pool.md)
+ [Llamar a una API REST integrada con un grupo de usuarios de Amazon Cognito](apigateway-invoke-api-integrated-with-cognito-user-pool.md)
+ [Configuración de un autorizador de Amazon Cognito entre cuentas para una API REST mediante la consola de API Gateway](apigateway-cross-account-cognito-authorizer.md)
+ [Cree un autorizador de Amazon Cognito para una API de REST con CloudFormation](apigateway-cognito-authorizer-cfn.md)