Seleccione sus preferencias de cookies

Usamos cookies esenciales y herramientas similares que son necesarias para proporcionar nuestro sitio y nuestros servicios. Usamos cookies de rendimiento para recopilar estadísticas anónimas para que podamos entender cómo los clientes usan nuestro sitio y hacer mejoras. Las cookies esenciales no se pueden desactivar, pero puede hacer clic en “Personalizar” o “Rechazar” para rechazar las cookies de rendimiento.

Si está de acuerdo, AWS y los terceros aprobados también utilizarán cookies para proporcionar características útiles del sitio, recordar sus preferencias y mostrar contenido relevante, incluida publicidad relevante. Para aceptar o rechazar todas las cookies no esenciales, haga clic en “Aceptar” o “Rechazar”. Para elegir opciones más detalladas, haga clic en “Personalizar”.

Acceso Servicios de AWS desde una aplicación ASP.NET Core mediante grupos de identidades de Amazon Cognito - Recomendaciones de AWS

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.

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

Cómo acceder a los servicios de AWS desde una aplicación ASP.NET Core mediante los grupos de identidades de Amazon Cognito.

Herramientas

Herramientas y SDKs Servicios de AWS

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

TareaDescripciónHabilidades requeridas

Cree un grupo de usuarios.

  1. Inicie sesión en la consola de Amazon Cognito AWS Management Console y ábrala.

  2. Elija Manage User Pools (Administrar grupos de usuarios).

  3. En la esquina superior derecha de la página, elija Create a User Pool (Crear un grupo de usuarios).

  4. Proporcione un nombre para su grupo de usuarios, seleccione Revisar valores predeterminados y, a continuación, seleccione Crear grupo.

  5. Apunte el ID de grupo.

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.

  1. En la barra de navegación de la parte izquierda de la página del grupo de usuarios, seleccione Clientes de aplicaciones en Configuración general y, a continuación, seleccione Añadir un cliente de aplicaciones.

  2. Asigne un nombre a su aplicación y, a continuación elija Crear cliente de aplicación.

  3. Anote el ID de cliente de la aplicación y el secreto del cliente (seleccione Mostrar detalles para ver el secreto del cliente).

Desarrollador

Crear un grupo de usuarios de Amazon Cognito

TareaDescripciónHabilidades requeridas

Cree un grupo de usuarios.

  1. Inicie sesión en la consola de Amazon Cognito AWS Management Console y ábrala.

  2. Elija Manage User Pools (Administrar grupos de usuarios).

  3. En la esquina superior derecha de la página, elija Create a User Pool (Crear un grupo de usuarios).

  4. Proporcione un nombre para su grupo de usuarios, seleccione Revisar valores predeterminados y, a continuación, seleccione Crear grupo.

  5. Apunte el ID de grupo.

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.

  1. En la barra de navegación de la parte izquierda de la página del grupo de usuarios, seleccione Clientes de aplicaciones en Configuración general y, a continuación, seleccione Añadir un cliente de aplicaciones.

  2. Asigne un nombre a su aplicación y, a continuación elija Crear cliente de aplicación.

  3. Anote el ID de cliente de la aplicación y el secreto del cliente (seleccione Mostrar detalles para ver el secreto del cliente).

Desarrollador
TareaDescripciónHabilidades requeridas

Crear un grupo de identidades de .

  1. En la consola de Amazon Cognito, elija Administrar grupos de identidades y, a continuación, Crear nuevo grupo de identidades.

  2. Especifique un nombre para el grupo de identidades.

  3. Si desea habilitar las identidades no autenticadas, seleccione esa opción en la sección Identidades no autenticadas.

  4. En la sección Proveedores de autenticación, configure el grupo de identidades de Amazon Cognito estableciendo el ID del grupo de usuarios y el ID del cliente de la aplicación y, a continuación, seleccione Create Pool.

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 s3:ListAllMyBuckets. Para ver un código de muestra, consulte el rol de IAM proporcionado anteriormente en la sección Herramientas.

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

Creación de un grupo de identidades en Amazon Cognito

TareaDescripciónHabilidades requeridas

Crear un grupo de identidades de .

  1. En la consola de Amazon Cognito, elija Administrar grupos de identidades y, a continuación, Crear nuevo grupo de identidades.

  2. Especifique un nombre para el grupo de identidades.

  3. Si desea habilitar las identidades no autenticadas, seleccione esa opción en la sección Identidades no autenticadas.

  4. En la sección Proveedores de autenticación, configure el grupo de identidades de Amazon Cognito estableciendo el ID del grupo de usuarios y el ID del cliente de la aplicación y, a continuación, seleccione Create Pool.

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 s3:ListAllMyBuckets. Para ver un código de muestra, consulte el rol de IAM proporcionado anteriormente en la sección Herramientas.

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
TareaDescripciónHabilidades requeridas

Clone la aplicación web ASP.NET core de muestra.

  1. Clone la aplicación web principal de.NET de muestra desde https://github.com/aws/aws-aspnet-cognito-identity-provider.git.

  2. Navegue hasta la carpeta samples y abra la solución. En este proyecto, usted configurará el archivo appsettings.json y agregará una página nueva que mostrará todos los buckets de S3 después de iniciar sesión correctamente.

Desarrollador

Agregar dependencias.

Agregue una NuGet dependencia para Amazon.AspNetCore.Identity.Cognito a su aplicación ASP.NET Core.

Desarrollador

Agregue las claves y valores de configuración aappsettings.json.

Incluya el código del archivo appsettings.json adjunto en su archivo appsettings.json y, a continuación, sustituya los marcadores de posición por los valores de los pasos anteriores.

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

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 MyS3Bucket.cshtml y MyS3Bucket.cshtml.cs. Agregue la nueva página de MyS3bucket en la barra de navegación de la página _Layout.cshtml.

Desarrollador

Configuración de su aplicación de muestra

TareaDescripciónHabilidades requeridas

Clone la aplicación web ASP.NET core de muestra.

  1. Clone la aplicación web principal de.NET de muestra desde https://github.com/aws/aws-aspnet-cognito-identity-provider.git.

  2. Navegue hasta la carpeta samples y abra la solución. En este proyecto, usted configurará el archivo appsettings.json y agregará una página nueva que mostrará todos los buckets de S3 después de iniciar sesión correctamente.

Desarrollador

Agregar dependencias.

Agregue una NuGet dependencia para Amazon.AspNetCore.Identity.Cognito a su aplicación ASP.NET Core.

Desarrollador

Agregue las claves y valores de configuración aappsettings.json.

Incluya el código del archivo appsettings.json adjunto en su archivo appsettings.json y, a continuación, sustituya los marcadores de posición por los valores de los pasos anteriores.

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

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 MyS3Bucket.cshtml y MyS3Bucket.cshtml.cs. Agregue la nueva página de MyS3bucket en la barra de navegación de la página _Layout.cshtml.

Desarrollador

Solución de problemas

ProblemaSolució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 src, asegúrese de eliminarlo de la referencia al proyecto Amazon.AspNetCore.Identity.Cognito del archivo Samples.sln. A continuación, puede añadir el NuGet paquete al proyecto Samples sin ningún problema.

Recursos relacionados

Conexiones

Para acceder al contenido adicional asociado a este documento, descomprima el archivo: attachment.zip

PrivacidadTérminos del sitioPreferencias de cookies
© 2025, Amazon Web Services, Inc o sus afiliados. Todos los derechos reservados.