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 inicio rápido descargará y ejecutará un código de ejemplo que muestra cómo una aplicación de Plataforma universal de Windows puede realizar el inicio de sesión de usuarios y obtener un token de acceso para llamar a Microsoft Graph API.
Vea Cómo funciona el ejemplo para obtener una ilustración.
Requisitos previos
- Una cuenta de Azure con una suscripción activa. Cree una cuenta gratuita.
- Visual Studio
Nota:
Ni la versión 4.61.0 de MSAL.NET ni las posteriores proporcionan compatibilidad con la Plataforma universal de Windows (UWP), Xamarin Android y Xamarin iOS. Se recomienda migrar las aplicaciones de UWP a marcos modernos, como WINUI. Lea más sobre la deprecación en Anuncio de la próxima deprecación de MSAL.NET para Xamarin y UWP.
Registro y descarga de la aplicación de inicio rápido
Tiene dos opciones para comenzar con la aplicación de inicio rápido:
- [Express] Opción 1: Registrar y configurar automáticamente la aplicación y, a continuación, descargar el ejemplo de código
- [Manual] Opción 2: Registrar y configurar manualmente la aplicación y el ejemplo de código
Opción 1: registrar y configurar de modo automático la aplicación y, a continuación, descargar el código de ejemplo
- Vaya a la experiencia de inicio rápido de Centro de administración de Microsoft Entra - Registros de aplicaciones.
- Escriba un nombre para la aplicación y seleccione Registrar.
- Siga las instrucciones para descargar y configurar automáticamente la nueva aplicación.
Opción 2: registrar y configurar manualmente la aplicación y el código de ejemplo
Paso 1: Registrar su aplicación
Para registrar la aplicación y agregar la información de registro de la aplicación a la solución, siga estos pasos:
- Inicie sesión en el Centro de administración de Microsoft Entra.
- 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 y seleccione Nuevo registro.
- Escriba un nombre para la aplicación, por ejemplo
UWP-App-calling-MsGraph. Los usuarios de la aplicación pueden ver este nombre, el cual se puede cambiar más tarde. - En la sección Tipos de cuenta compatibles , seleccione Cuentas en cualquier directorio organizativo y cuentas microsoft personales (por ejemplo, Skype, Xbox, Outlook.com).
- Seleccione Registrar para crear la aplicación y, a continuación, registre el identificador de aplicación (cliente) para usarlo en un paso posterior.
- En Administrar, seleccione Autenticación.
- Seleccione Add a platform Mobile and desktop applications (Agregar una plataforma>móvil y aplicaciones de escritorio).
- En URI de redirección, seleccione
https://login.microsoftonline.com/common/oauth2/nativeclient. - Seleccione Configurar.
Paso 2: Descarga del proyecto
Descarga de la aplicación de ejemplo para UWP
Sugerencia
Se recomienda extraer el archivo o clonar el repositorio en un directorio próximo a la raíz de la unidad para evitar los errores provocados por las limitaciones de longitud de la ruta de acceso en Windows.
Paso 3: Configuración del proyecto
Extraiga el archivo .zip en una carpeta local próxima al directorio raíz de su unidad. Por ejemplo, en C:\Azure-Samples.
Abra el proyecto en Visual Studio. Instale la tarea de desarrollo de la Plataforma Universal de Windows y cualquier componente individual del SDK si se le solicita.
En MainPage.Xaml.cs, cambie el valor de la
ClientIdvariable al identificador de aplicación (cliente) de la aplicación que registró anteriormente.private const string ClientId = "Enter_the_Application_Id_here";Puede encontrar el identificador de aplicación (cliente) en el panel Información general de la aplicación en el Centro de administración de Microsoft Entra (Entra ID>Registros de aplicaciones>{Registro de aplicación}).
Cree y seleccione un certificado de prueba autofirmado para el paquete:
- En el Explorador de soluciones, haga doble clic en el archivo Package.appxmanifest .
- Seleccione Empaquetar>Elegir certificado...>Crear....
- Escriba una contraseña y, a continuación, seleccione Aceptar. Se crea un certificado denominado Native_UWP_V2_TemporaryKey.pfx .
- Seleccione Aceptar para descartar el cuadro de diálogo Elegir un certificado y compruebe que ve Native_UWP_V2_TemporaryKey.pfx en el Explorador de soluciones.
- En el Explorador de soluciones, haga clic con el botón derecho en el proyecto de Native_UWP_V2 y seleccione Propiedades.
- Seleccione Firma y, a continuación, seleccione el archivo .pfx que creó en la lista desplegable Elegir un archivo de clave de nombre seguro .
Paso 4: Ejecución de la aplicación
Para ejecutar la aplicación de ejemplo en la máquina local:
En la barra de herramientas de Visual Studio, elija la plataforma adecuada (probablemente x64 o x86, no ARM). El dispositivo de destino debe cambiar de Dispositivo a Máquina local.
Seleccione Depurar>Iniciar sin depurar.
Si se le solicita hacerlo, es posible que primero necesite habilitar el modo de desarrollador, y luego inicie sin depurar de nuevo para lanzar la aplicación.
Cuando aparezca la ventana de la aplicación, puede seleccionar el botón Llamar a Microsoft Graph API , escribir sus credenciales y dar su consentimiento a los permisos solicitados por la aplicación. Si esto se realiza correctamente, la aplicación muestra algunos datos del token y otros obtenidos de la llamada a Microsoft Graph API.
Funcionamiento del ejemplo
MSAL.NET
MSAL (Microsoft.Identity.Client) es la biblioteca que se usa para iniciar sesión a los usuarios y solicitar tokens de seguridad. Los tokens de seguridad se utilizan para acceder a una API protegida por la plataforma de identidad de Microsoft. Para instalar MSAL, ejecute el siguiente comando en la consola del Administrador de paquetes de Visual Studio:
Install-Package Microsoft.Identity.Client
Inicialización de MSAL
Puede agregar la referencia de MSAL con el código siguiente:
using Microsoft.Identity.Client;
A continuación, se inicializa MSAL con el código siguiente:
public static IPublicClientApplication PublicClientApp;
PublicClientApp = PublicClientApplicationBuilder.Create(ClientId)
.WithRedirectUri("https://login.microsoftonline.com/common/oauth2/nativeclient")
.Build();
El valor de ClientId es el identificador de aplicación (cliente) de la aplicación que registró en el centro de administración de Microsoft Entra. Puede encontrar este valor en la página Información general de la aplicación en el Centro de administración de Microsoft Entra.
Solicitud de tokens
MSAL tiene dos métodos para adquirir tokens en una aplicación de UWP: AcquireTokenInteractive y AcquireTokenSilent.
Obtención de un token de usuario interactivamente
En algunas situaciones, es necesario forzar a los usuarios a interactuar con la Plataforma de identidad de Microsoft mediante una ventana emergente para validar sus credenciales o dar su consentimiento. Estos son algunos ejemplos:
- La primera vez que los usuarios inician sesión en la aplicación
- Cuando los usuarios deben volver a escribir sus credenciales porque la contraseña expiró
- Cuando la aplicación solicita acceso a un recurso para el cual el usuario necesita dar su consentimiento
- Cuando se requiere la autenticación en dos fases
authResult = await PublicClientApp.AcquireTokenInteractive(scopes)
.ExecuteAsync();
El parámetro scopes contiene los ámbitos que se solicitan, como { "user.read" } para Microsoft Graph o { "api://<Application ID>/access_as_user" } para las API web personalizadas.
Obtención de un token de usuario en silencio
Use el método AcquireTokenSilent para obtener tokens que permiten obtener acceso a recursos protegidos después del método AcquireTokenInteractive inicial. No es recomendable pedirle al usuario que valide sus credenciales cada vez que necesite obtener acceso a un recurso. La mayor parte del tiempo, se espera que la renovación y adquisición de tokens se produzca sin ninguna interacción por parte del usuario.
var accounts = await PublicClientApp.GetAccountsAsync();
var firstAccount = accounts.FirstOrDefault();
authResult = await PublicClientApp.AcquireTokenSilent(scopes, firstAccount)
.ExecuteAsync();
-
scopescontiene los ámbitos que se solicitan, como{ "user.read" }para Microsoft Graph o{ "api://<Application ID>/access_as_user" }para las API web personalizadas. -
firstAccountespecifica la primera cuenta de usuario en la memoria caché (MSAL admite varios usuarios en una sola aplicación).
Ayuda y soporte técnico
Si necesita ayuda, quiere notificar un problema o desea obtener información sobre las opciones de soporte técnico, consulte Ayuda y soporte técnico para desarrolladores.
Pasos siguientes
Visite el tutorial de escritorio de Windows para acceder a una guía completa paso a paso sobre la creación de aplicaciones y nuevas características, que incluye una explicación completa de esta guía de inicio rápido.