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.
Acceso Servicios de AWS desde una aplicación ASP.NET Core mediante grupos de identidades de Amazon Cognito
Creado por Bibhuti Sahu (AWS) y Marcelo Barbosa (AWS)
Resumen
Este patrón explica cómo puede configurar los grupos de usuarios y grupos de identidades de Amazon Cognito y, a continuación, habilitar una aplicación de ASP.NET Core para que acceda a AWS los recursos tras una autenticación correcta.
Amazon Cognito ofrece autenticación, autorización y administración de usuarios para sus aplicaciones móviles y web. Los dos componentes principales de Amazon Cognito son los grupos de usuarios y los grupos de identidades.
Un grupo de usuarios es un directorio de usuarios en Amazon Cognito. Con un grupo de usuarios, los usuarios pueden iniciar sesión en su aplicación web o móvil mediante Amazon Cognito. Los usuarios también pueden iniciar sesión a través de proveedores de identidad sociales como Google, Facebook, Amazon o Apple y a través de proveedores de identidad SAML.
Con los grupos de identidades de Amazon Cognito (identidades federadas), se pueden crear identidades únicas para los usuarios y federarlas con proveedores de identidad. Con un grupo de identidades, puede obtener AWS credenciales temporales con privilegios limitados para acceder a otros. Servicios de AWS Antes de empezar a usar su nuevo grupo de identidades de Amazon Cognito, debe asignar una o más funciones AWS Identity and Access Management (IAM) para determinar el nivel de acceso que desea que los usuarios de la aplicación tengan a sus recursos. AWS Los grupos de identidades definen dos tipos de identidades: autenticadas y sin autenticar. A cada tipo de identidad se le puede asignar su propio rol en IAM. Las identidades autenticadas pertenecen a usuarios que se han autenticado mediante un proveedor de inicio de sesión público (grupos de usuarios de Amazon Cognito, Facebook, Google, SAML o cualquier proveedor de OpenID Connect) o un proveedor de desarrolladores (su propio proceso de autenticación backend), mientras que las identidades no autenticadas suelen pertenecer a usuarios invitados. Cuando Amazon Cognito reciba una solicitud de usuario, el servicio determina si la solicitud está autenticada o no autenticada, determina qué rol está asociado a qué tipo de autenticación y, a continuación, usa la política adjunta a ese rol para responder a la solicitud.
Requisitos previos y limitaciones
Requisitos previos
Y Cuenta de AWS con permisos de Amazon Cognito e IAM
Acceda a los AWS recursos que desee utilizar
ASP.NET Core 2.0.0 o posterior
Arquitectura
Pila de tecnología
Amazon Cognito
ASP.NET Core
Arquitectura de destino

Herramientas
Herramientas y SDKs Servicios de AWS
Visual Studio o Visual Studio Code
Código
El archivo .zip adjunto incluye archivos de muestra que ilustran lo siguiente:
Cómo recuperar un token de acceso para el usuario que ha iniciado sesión
¿Cómo intercambiar un token de acceso por credenciales AWS
Cómo acceder al servicio Amazon Simple Storage Service (Amazon S3) con credenciales AWS
Función de IAM para identidades autenticadas
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"mobileanalytics:PutEvents",
"cognito-sync:*",
"cognito-identity:*",
"s3:ListAllMyBuckets*"
],
"Resource": [
"*"
]
}
]
}
Epics
Tarea | Descripción | Habilidades requeridas |
---|---|---|
Cree un grupo de usuarios. |
| Desarrollador |
Agregar un cliente de aplicación. | Puede crear una aplicación para utilizar las páginas web integradas para que sus usuarios se inscriban e inicien sesión.
| Desarrollador |
Tarea | Descripción | Habilidades requeridas |
---|---|---|
Crear un grupo de identidades de . |
| Desarrollador |
Asigne roles de IAM para el grupo de identidades. | Puede editar los roles de IAM para los usuarios autenticados y no autenticados o mantener los valores predeterminados y, a continuación, seleccione Permitir. Para este patrón, editaremos el rol de IAM autenticado y proporcionaremos acceso para | Desarrollador |
Copie el ID del grupo de identidades. | Si selecciona Permitir en el paso anterior, se muestra la página Introducción a Amazon Cognito. En esta página, puede copiar el ID del grupo de identidades de la sección Obtener credenciales de AWS o seleccionar Editar grupo de identidades en la esquina superior derecha y copiar el ID del grupo de identidades de la pantalla que aparece. | Desarrollador |
Tarea | Descripción | Habilidades requeridas |
---|---|---|
Clone la aplicación web ASP.NET core de muestra. |
| Desarrollador |
Agregar dependencias. | Agregue una NuGet dependencia para | Desarrollador |
Agregue las claves y valores de configuración a | Incluya el código del archivo | Desarrollador |
Cree un nuevo usuario e inicie sesión. | Cree un nuevo usuario en el grupo de usuarios de Amazon Cognito y verifique que el usuario existe en Usuarios y grupos en el grupo de usuarios. | Desarrollador |
Crea una nueva Razor Page llamada | Agregue una nueva página de Razor de ASP.NET Core a su aplicación de muestra y reemplace el contenido del ejemplo adjunto por | Desarrollador |
Solución de problemas
Problema | Solución |
---|---|
Tras abrir la aplicación de ejemplo desde el GitHub repositorio, aparece un error al intentar añadir el NuGet paquete al proyecto de Samples. | En la carpeta |
Recursos relacionados
Conexiones
Para acceder al contenido adicional asociado a este documento, descomprima el archivo: attachment.zip