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.
Se aplica a: Inquilinos del personal
Inquilinos externos (más información)
En este inicio rápido, usará una aplicación web de ejemplo para mostrar cómo proteger una API web de ASP.NET mediante la plataforma de identidad de Microsoft. En el ejemplo se usa la Biblioteca de autenticación de Microsoft (MSAL) para controlar la autenticación y la autorización.
Prerrequisitos
- Una cuenta de Azure con una suscripción activa. Cree una cuenta gratuita.
- Registre una nueva aplicación en el Centro de administración de Microsoft Entra y registre sus identificadores en la página Información general de la aplicación. Para obtener más información, consulte Registro de una aplicación.
- Nombre: NewWebAPI1
- Tipos de cuenta admitidos: solo las cuentas de este directorio organizativo (inquilino único)
- Visual Studio 2022. Descargue Visual Studio de forma gratuita.
Exponer la API
Una vez registrada la API, puedes configurar tu permiso definiendo los ámbitos que expone la API 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. Luego, la API web realiza la operación solicitada solo si el token de acceso que recibe contiene los ámbitos requeridos.
En Administrar, seleccione Exponer una API>Agregar un ámbito. Acepte el URI de id. de aplicación propuesto (
api://{clientId}
) seleccionando Guardar y continuar y, a continuación, escriba la siguiente información:- En Nombre de ámbito, escriba
access_as_user
. - 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 para mostrar del consentimiento del administrador, escriba
Access TodoListService as a user
. - En el cuadro Descripción del consentimiento del administrador , escriba
Accesses the TodoListService web API as a user
. - En el cuadro Nombre para mostrar consentimiento del usuario , escriba
Access TodoListService as a user
. - En el cuadro Descripción del consentimiento del usuario , escriba
Accesses the TodoListService web API as a user
. - En Estado, mantenga Habilitado.
- En Nombre de ámbito, escriba
Seleccione Agregar ámbito.
Clonar o descargar la aplicación de ejemplo
Para obtener la aplicación de ejemplo, puede clonarla desde GitHub o descargarla como un archivo .zip .
git clone https://github.com/AzureADQuickStarts/AppModelv2-NativeClient-DotNet.git
Sugerencia
Para evitar errores causados por limitaciones de longitud de ruta de acceso en Windows, se recomienda extraer el archivo o clonar el repositorio en un directorio cerca de la raíz de la unidad.
Configurar la aplicación de ejemplo
Configure el ejemplo de código para que coincida con la API web registrada.
Abra la solución en Visual Studio y, a continuación, abra el archivo appsettings.json en la raíz del proyecto TodoListService.
Reemplace el valor de
Enter_the_Application_Id_here
por el valor de la Identificación de Cliente (Id. de aplicación) de la aplicación que registró en el portal de Registros de Aplicaciones, tanto en las propiedades deClientID
como en las deAudience
.
Agregue el nuevo ámbito al archivo app.config
Para agregar el nuevo ámbito al archivo app.config TodoListClient, siga estos pasos:
En la carpeta raíz del proyecto TodoListClient, abra el archivo app.config .
Pegue el identificador de la aplicación que acaba de registrar para el proyecto TodoListService en el parámetro
TodoListServiceScope
y reemplace la cadena{Enter the Application ID of your TodoListService from the app registration portal}
.
Nota:
Asegúrese de que el identificador de aplicación usa el siguiente formato: api://{TodoListService-Application-ID}/access_as_user
(donde {TodoListService-Application-ID}
es el GUID que representa el identificador de aplicación de la aplicación TodoListService).
Registrar la aplicación web (TodoListClient)
Registre la aplicación TodoListClient en Registros de aplicaciones en el Centro de administración de Microsoft Entra y, a continuación, configure el código en el proyecto TodoListClient. Si el cliente y el servidor se consideran la misma aplicación, puede reutilizar la aplicación registrada en el paso 2. Use la misma aplicación si desea que los usuarios inicien sesión con una cuenta microsoft personal.
Registro de la aplicación
Para registrar la aplicación TodoListClient, siga estos pasos:
Inicie sesión en el Centro de administración de Microsoft Entra como al menos un administrador de aplicaciones en la nube.
Vaya a Entra ID>Registros de Aplicaciones y seleccione Nuevo registro.
Seleccione Nuevo registro.
Cuando se abra la página Registrar una aplicación , escriba la información de registro de la aplicación:
- En la sección Nombre , escriba un nombre de aplicación significativo que se mostrará a los usuarios de la aplicación (por ejemplo, NativeClient-DotNet-TodoListClient).
- En Tipos de cuenta admitidos, seleccione Cuentas en cualquier directorio organizativo.
- Seleccione Registrar para crear la aplicación.
Nota:
En el archivo app.config proyecto TodoListClient, el valor predeterminado de
ida:Tenant
se establece encommon
. Los valores posibles son:-
common
: puede iniciar sesión con una cuenta profesional o educativa o una cuenta microsoft personal (ya que seleccionó Cuentas en cualquier directorio organizativo en un paso anterior). -
organizations
: puede iniciar sesión con una cuenta profesional o educativa. -
consumers
: solo puede iniciar sesión con una cuenta personal de Microsoft.
En la página Información general de la aplicación, seleccione Autenticación y, a continuación, complete estos pasos para agregar una plataforma:
- En Configuraciones de plataforma, seleccione el botón Agregar una plataforma .
- En Aplicaciones móviles y de escritorio, seleccione Aplicaciones móviles y de escritorio.
- En URI de redirección, active la casilla de verificación
https://login.microsoftonline.com/common/oauth2/nativeclient
. - Seleccione Configurar.
Seleccione Permisos de API y, a continuación, complete estos pasos para agregar permisos:
- Seleccione el botón Agregar un permiso .
- Seleccione la pestaña Mis API .
- En la lista de API, seleccione AppModelv2-NativeClient-DotNet-TodoListService API o el nombre especificado para la API web.
- Seleccione la casilla de permiso access_as_user si aún no está seleccionada. Use el cuadro Buscar si es necesario.
- Seleccione el botón Agregar permisos .
Configuración del proyecto
Configure el proyecto TodoListClient agregando el identificador de aplicación al archivo app.config .
En el portal Registros de aplicaciones, en la página Información general, copie el valor del identificador de aplicación (cliente).
En la carpeta raíz del proyecto TodoListClient, abra el archivo app.config y pegue el valor de Id. de aplicación en el
ida:ClientId
parámetro .
Ejecutar la aplicación de ejemplo
Inicie ambos proyectos. Para los usuarios de Visual Studio;
Haga clic con el botón derecho en la solución de Visual Studio y seleccione Propiedades.
En Propiedades comunes, seleccione Proyecto de inicio y, a continuación, Varios proyectos de inicio.
En ambos proyectos, elija Iniciar como acción.
Asegúrese de que el servicio TodoListService se inicia primero moviendolo a la primera posición de la lista, con la flecha arriba.
Inicie sesión para ejecutar el proyecto TodoListClient.
Presione F5 para iniciar los proyectos. Se abre la página de servicio, así como la aplicación de escritorio.
En TodoListClient, en la esquina superior derecha, seleccione Iniciar sesión y, a continuación, inicie sesión con las mismas credenciales que usó para registrar la aplicación o inicie sesión como un usuario en el mismo directorio.
Si inicia sesión por primera vez, es posible que se le pida que dé su consentimiento a la API web TodoListService.
Para ayudarle a acceder a la API web TodoListService y manipular la lista To-Do, el inicio de sesión también solicita un token de acceso para el ámbito access_as_user.
Autorización previa de la aplicación cliente
Puede permitir que los usuarios de otros directorios accedan a la API web mediante la autorización previa de la aplicación cliente para acceder a la API web. Para ello, agregue el identificador de aplicación de la aplicación cliente a la lista de aplicaciones autenticadas previamente para la API web. Al agregar un cliente autenticado previamente, permite a los usuarios acceder a la API web sin tener que proporcionar consentimiento.
- En el portal Registros de aplicaciones, abra las propiedades de la aplicación TodoListService.
- En la sección Exponer una API , en Aplicaciones cliente autorizadas, seleccione Agregar una aplicación cliente.
- En el cuadro Id. de cliente , pegue el identificador de aplicación de la aplicación TodoListClient.
- En la sección Ámbitos autorizados , seleccione el ámbito de la
api://<Application ID>/access_as_user
API web. - Seleccione Agregar aplicación.
Ejecución del proyecto
- Presione F5 para ejecutar el proyecto. Se abre la aplicación TodoListClient.
- En la esquina superior derecha, seleccione Iniciar sesión e inicie sesión con una cuenta microsoft personal, como una cuenta de live.com o hotmail.com , o una cuenta profesional o educativa.
Opcional: Limitar el acceso de inicio de sesión a determinados usuarios
De forma predeterminada, cualquier cuenta personal, como outlook.com o cuentas de live.com , o cuentas profesionales o educativas de organizaciones integradas con microsoft Entra ID pueden solicitar tokens y acceder a la API web.
Para especificar quién puede iniciar sesión en la aplicación, cambie la TenantId
propiedad en el archivo appsettings.json .
Pasos siguientes
Aprenda a proteger una API web de ASP.NET Core con la plataforma de identidad de Microsoft.