Acceso a recursos con API Gateway después del inicio de sesión
Los tokens de los grupos de usuarios de Amazon Cognito suelen utilizarse para autorizar las solicitudes a una API de REST de API Gateway. Los ámbitos de OAuth 2.0 de los tokens de acceso pueden autorizar un método y una ruta, por ejemplo, HTTP GET para /app_assets. Los tokens de ID pueden servir como autenticación genérica en una API y pueden transferir los atributos del usuario al servicio de backend. API Gateway tiene opciones de autorización personalizadas adicionales, como los autorizadores de JWT para las API de HTTP y los autorizadores de Lambda que pueden aplicar una lógica más detallada.
En el siguiente diagrama se ilustra el acceso de una aplicación a una API de REST con los ámbitos de OAuth 2.0 en un token de acceso.
La aplicación debe recopilar los tokens de las sesiones autenticadas y añadirlos como tokens de portadores a un encabezado Authorization de la solicitud. Configure el autorizador que ha configurado para la API, la ruta y el método para evaluar el contenido de los tokens. API Gateway devuelve datos solo si la solicitud cumple las condiciones configuradas para el autorizador.
A continuación mostramos varias formas que API Gateway puede utilizar para aprobar el acceso desde una aplicación:
-
El token de acceso es válido, no ha caducado y contiene el ámbito correcto de OAuth 2.0. El autorizador de grupos de usuarios de Amazon Cognito para una API de REST es una implementación común con una barrera de entrada baja. También puede evaluar el cuerpo, los parámetros de cadena de consulta y los encabezados de una solicitud a este tipo de autorizador.
-
El token de ID es válido y no ha caducado. Al pasar un token de ID a un autorizador de Amazon Cognito, puede realizar una validación adicional del contenido del token de ID en el servidor de aplicaciones.
-
Un grupo, una notificación, un atributo o un rol de un token de acceso o ID cumple los requisitos que se definen en una función de Lambda. Un autorizador de Lambda analiza el token del encabezado de la solicitud y lo evalúa para tomar una decisión de autorización. Puede crear una lógica personalizada de constructo en la función o realizar una solicitud de API a Amazon Verified Permissions.
También puede autorizar solicitudes a una API GraphQL de AWS AppSync con tokens de un grupo de usuarios.