Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
En este artículo se muestra cómo llamar a una API web de ASP.NET Core protegida mediante Insomnio. Insomnia es una aplicación que permite enviar solicitudes HTTP a una API web para probar sus directivas de autorización y control de acceso (autenticación). En este artículo, registrará una aplicación web y una API web en un inquilino. La aplicación web se usa para obtener un token de acceso generado por la plataforma de identidad de Microsoft. A continuación, use el token para hacer una llamada autorizada a la API web mediante Insomnia.
En este artículo se muestra cómo llamar a una API web de ASP.NET Core protegida mediante Insomnio. Insomnia es una aplicación que permite enviar solicitudes HTTP a una API web para probar sus directivas de autorización y control de acceso (autenticación). Continuando con el Tutorial: Implemente un punto de conexión protegido en su API, donde creó una API protegida, debe registrar una aplicación web con la plataforma de identidad de Microsoft para generar un token de acceso. A continuación, use el token para hacer una llamada autorizada a la API mediante Insomnia.
Requisitos previos
- Una cuenta de Azure con una suscripción activa. Cree una cuenta gratuita.
- Esta cuenta de Azure debe tener permisos para administrar aplicaciones. Cualquiera de los siguientes roles de Microsoft Entra incluye los permisos necesarios:
- Administrador de aplicaciones
- Desarrollador de aplicaciones
- Administrador de aplicaciones en la nube
- Descargue e instale Insomnio. Use Insomnia para obtener un token de acceso para las solicitudes de API.
- Requisito mínimo del SDK de .NET 8.0.
- Una cuenta de Azure con una suscripción activa. Cree una cuenta gratuita.
- Esta cuenta de Azure debe tener permisos para administrar aplicaciones. Cualquiera de los siguientes roles de Microsoft Entra incluye los permisos necesarios:
- Administrador de aplicaciones
- Desarrollador de aplicaciones
- Administrador de aplicaciones en la nube
- Finalización de la serie de tutoriales:
- Descargue e instale Insomnio.
Registrar una aplicación
En la plataforma de identidad de Microsoft es necesario que la aplicación se registre para poder proporcionar servicios de administración de identidades y acceso. El registro de la aplicación permite indicar su nombre y su tipo de la aplicación y el público de inicio de sesión. El público de inicio de sesión especifica qué tipos de cuentas de usuario pueden iniciar sesión en una aplicación determinada.
Registro de la API web
Siga estos pasos para crear el registro de la API web:
Inicie sesión en el Centro de administración de Microsoft Entra como al menos un desarrollador de aplicaciones.
Si tiene acceso a varios inquilinos, use el icono
Configuración del menú superior para cambiar al inquilino en el que desea registrar la aplicación en el menú Directorios y suscripciones.
Vaya a Entra ID>Registros de aplicaciones.
Seleccione Nuevo registro.
Escriba un nombre para la aplicación, como NewWebAPI1.
En Tipos de cuenta admitidos, seleccione Solo cuentas en este directorio organizativo. Para obtener información sobre los distintos tipos de cuenta, seleccione la opción Ayudarme a elegir .
Seleccione Registrar.
Puede ver el panel Información general de la aplicación cuando se complete el registro. Registre el identificador de directorio (inquilino) y el identificador de aplicación (cliente) que se usará en pasos posteriores.
Nota
Los tipos de cuenta admitidos se pueden cambiar haciendo referencia a Modificar las cuentas admitidas por una aplicación.
Exposición de la API
Una vez registrada la API, para configurar su permiso, defina los ámbitos que la API expone a las aplicaciones cliente. Las aplicaciones cliente solicitan permiso para realizar operaciones mediante el paso de un token de acceso junto con sus solicitudes a la API web protegida. A continuación, la API web realiza la operación solicitada solo si el token de acceso que recibe es válido.
En Administrar, seleccione Exponer una API > Agregar un ámbito. Acepte el URI del ID de aplicación propuesto al seleccionar
(api://{clientId})
.{clientId}
es el valor registrado en la página Información general. A continuación, escriba la siguiente información:- En Nombre de ámbito, escriba
Forecast.Read
. - En Who can consent (Quién puede dar su consentimiento), asegúrese de que la opción Admins and users (Administradores y usuarios ) está seleccionada.
- En el cuadro Nombre de visualización de la aprobación del administrador, escriba
Read forecast data
. - En el cuadro Descripción del consentimiento del administrador , escriba
Allows the application to read weather forecast data
. - En el cuadro Nombre para mostrar consentimiento del usuario , escriba
Read forecast data
. - En el cuadro Descripción del consentimiento del usuario , escriba
Allows the application to read weather forecast data
. - Asegúrese de que el estado esté establecido en Habilitado.
- En Nombre de ámbito, escriba
Seleccione Agregar ámbito. Si el ámbito se ha escrito correctamente, aparece en el panel Exponer una API .
Registro de la aplicación web
No es suficiente tener una API web, también necesita una aplicación web para obtener un token de acceso para acceder a la API web.
Siga estos pasos para crear el registro de la aplicación de la aplicación web:
- Seleccione Inicio para volver a la página principal. Vaya a Entra ID>Registros de aplicaciones.
- Seleccione Nuevo registro.
- Escriba un nombre para la aplicación, como web-app-calls-web-api.
- En Tipos de cuenta admitidos, seleccione Solo cuentas en este directorio organizativo. Para obtener información sobre los distintos tipos de cuenta, seleccione la opción Ayudarme a elegir .
- En URI de redirección (opcional), seleccione Web y
http://localhost
escriba en el cuadro de texto URL. - Seleccione Registrar.
- Inicie sesión en el Centro de administración de Microsoft Entra como al menos un desarrollador de aplicaciones.
- Si tiene acceso a varios inquilinos, use el icono
Configuración del menú superior para cambiar al inquilino en el que desea registrar la aplicación en el menú Directorios y suscripciones.
- Vaya a Entra ID>Registros de aplicaciones.
- Seleccione Nuevo registro.
- Escriba un nombre para la aplicación, como web-app-calls-web-api.
- En Tipos de cuenta admitidos, seleccione Solo cuentas en este directorio organizativo. Para obtener información sobre los distintos tipos de cuenta, seleccione la opción Ayudarme a elegir .
- En URI de redirección (opcional), seleccione Web y
http://localhost
escriba en el cuadro de texto URL. - Seleccione Registrar.
Puede ver el panel Información general de la aplicación cuando se complete el registro. Registre el identificador de directorio (inquilino) y el identificador de aplicación (cliente) que se usará en pasos posteriores.
Agregar un secreto de cliente
Un secreto de cliente es un valor de cadena que la aplicación puede usar para identificarse y, a veces, se conoce como contraseña de aplicación. La aplicación web usa el secreto de cliente para demostrar su identidad al solicitar tokens.
Siga estos pasos para configurar un secreto de cliente:
En el panel
Información general , enAdministrar , seleccioneCertificados y secretos Nuevo secreto de cliente .Agregue una descripción para el secreto de cliente, por ejemplo , Mi secreto de cliente.
Seleccione una expiración para el secreto o especifique una duración personalizada.
- La duración de un secreto de cliente se limita a dos años (24 meses) o menos. No se puede especificar una duración personalizada superior a 24 meses.
- Microsoft recomienda establecer un valor de expiración de menos de 12 meses.
Seleccione Agregar.
Asegúrese de registrar el valor del secreto de cliente. Este valor secreto nunca se muestra de nuevo después de salir de esta página.
Para obtener más información sobre cómo almacenar de forma segura el secreto de cliente, consulte Procedimientos recomendados para la administración de secretos en Key Vault.
Incorporación de permisos para acceder a la API web
Al especificar los ámbitos de una API web, la aplicación web puede obtener un token de acceso que contenga esos ámbitos proporcionados por la plataforma de identidad de Microsoft. En el código, la API web puede proporcionar acceso basado en permisos a sus recursos en función de los ámbitos que se encuentran en el token de acceso.
Siga estos pasos para configurar los permisos del cliente en la API web:
- En el panel Información general de la aplicación, en Administrar, seleccione Permisos> de APIAgregar una>API que usa mi organización.
- Seleccione NewWebAPI1 o la API a la que desea agregar permisos.
- En Seleccionar permisos, active la casilla situada junto a Forecast.Read. Es posible que tenga que expandir la lista De permisos . Esto selecciona los permisos que la aplicación cliente debe tener en nombre del usuario que ha iniciado sesión.
- Seleccione Agregar permisos para completar el proceso.
Después de agregar estos permisos a la API, debería ver los permisos seleccionados en Permisos configurados.
También puede observar el permiso User.Read para Microsoft Graph API. Este permiso se agrega automáticamente al registrar una aplicación.
Prueba de la API web
Para asegurarse de que la API está operativa y lista para controlar las solicitudes, siga estos pasos:
Clona el repositorio ms-identity-docs-code-dotnet.
git clone https://github.com/Azure-Samples/ms-identity-docs-code-dotnet.git
Vaya a
ms-identity-docs-code-dotnet/web-api
y abraappsettings.json
, reemplace el{APPLICATION_CLIENT_ID}
y{DIRECTORY_TENANT_ID}
por los valores siguientes:-
{APPLICATION_CLIENT_ID}
es el ID de aplicación (cliente) de la API web en el panel Información general de la aplicación. -
{DIRECTORY_TENANT_ID}
es el ID de directorio (inquilino) de la API web en el panel de "Vista general" de la aplicación.
-
Ejecute el siguiente comando para iniciar la aplicación:
dotnet run
Obtendrá una salida similar a la siguiente. Registre el número de puerto en la dirección URL
https://localhost:{port}
.... info: Microsoft.Hosting.Lifetime[14] Now listening on: https://localhost:{port} ...
Prueba de la API web
Para asegurarse de que la API está operativa y lista para controlar las solicitudes, siga estos pasos:
Vaya a la API web que se creó en Tutorial: Cree un proyecto de ASP.NET Core y configure la API, por ejemplo , NewWebAPILocal y abra la carpeta.
Abra una nueva ventana de terminal y vaya a la carpeta donde se ubica el proyecto de la API web.
Obtendrá una salida similar a la siguiente. Registre el número de puerto en la dirección URL
https://localhost:{port}
.... info: Microsoft.Hosting.Lifetime[14] Now listening on: https://localhost:{port} ...
Configuración de una solicitud autorizada a la API web en Insomnia
Para obtener un token de acceso para las solicitudes de API, siga estos pasos:
Inicie la aplicación Insomnio .
Seleccione Nueva solicitud HTTP o puede usar Ctrl + N para crear una nueva solicitud HTTP.
En el modal Nueva solicitud, seleccione un método GET en la lista desplegable.
En la dirección URL de la solicitud, escriba la URL del punto de conexión expuesto por la API web
https://localhost:{port}/weatherforecast
.En el menú desplegable Autenticación , seleccione OAuth 2.0. Esto muestra el formulario de OAuth 2.0 .
Escriba los valores siguientes en el formulario OAuth 2.0 :
Configuración Valor TIPO DE SUBVENCIÓN Selección del código de autorización DIRECCIÓN URL DE AUTORIZACIÓN https://login.microsoftonline.com/{tenantId}/oauth2/v2.0/authorize
Reemplace{tenantId}
por el identificador de directorio (inquilino)DIRECCIÓN URL DEL TOKEN DE ACCESO https://login.microsoftonline.com/{tenantId}/oauth2/v2.0/token
Reemplace{tenantId}
por el identificador de directorio (inquilino)ID. DE CLIENTE Valor de ID de aplicación (cliente) del registro de tu aplicación web SECRETO DE CLIENTE Secreto de cliente Valor del registro de la aplicación web URL de redireccionamiento Introduzca http://localhost
, que establece la dirección URL de REDIRECCIONAMIENTO en el URI de redireccionamiento registrado con Microsoft Entra ID.Opciones avanzadas>ALCANCE api://{application_client_id}/Forecast.Read
Vaya al registro de la aplicación web, en Administrar, seleccione Permisos de API y, a continuación, seleccione Forecast.Read.
Copie el valor en el cuadro de texto , que contiene el valor Ámbito .
Obtención de un token de acceso y envío de una solicitud a la API web
- Una vez especificados estos valores, seleccione Capturar tokens al final del formulario. Esto inicia una ventana del explorador de Insomnia en la que se autentica con las credenciales de usuario. Asegúrese de permitir elementos emergentes de la aplicación Insomnia en el explorador.
- Después de autenticarse, seleccione Enviar para enviar la solicitud al punto de conexión de api web protegido.
Con un token de acceso válido incluido en la solicitud, la respuesta esperada es 200 Correcto con una salida similar a la siguiente:
[
{
"date": "YYYY-MM-DDTHH:MM:SS",
"temperatureC": -16,
"summary": "Scorching",
"temperatureF": 4
},
{
"date": "YYYY-MM-DDTHH:MM:SS",
"temperatureC": 1,
"summary": "Sweltering",
"temperatureF": 33
},
{
"date": "YYYY-MM-DDTHH:MM:SS",
"temperatureC": 26,
"summary": "Freezing",
"temperatureF": 78
},
{
"date": "YYYY-MM-DDTHH:MM:SS",
"temperatureC": 54,
"summary": "Mild",
"temperatureF": 129
},
{
"date": "YYYY-MM-DDTHH:MM:SS",
"temperatureC": 11,
"summary": "Bracing",
"temperatureF": 51
}
]
Contenido relacionado
Para más información sobre el flujo de código de autorización de OAuth 2.0 y los tipos de aplicación, consulte: