Compartir a través de


Inicio rápido: Adquisición de un token y llamada a Microsoft Graph API desde una aplicación de escritorio de Windows

¡Bienvenido! Probablemente esta no sea la página que esperaba. Mientras trabajamos en una corrección, este vínculo debería llevarle al artículo correcto:

Inicio rápido: Inicio de sesión de usuarios y llamada a Microsoft Graph en una aplicación de escritorio de Windows

Lamentamos las molestias y agradecemos su paciencia mientras trabajamos para resolverlo.

En este inicio rápido, descargará y ejecutará un ejemplo de código que muestra cómo una aplicación de Windows Presentation Foundation (WPF) puede iniciar sesión a los usuarios y obtener un token de acceso para llamar a Microsoft Graph API.

Vea Cómo funciona el ejemplo para obtener una ilustración.

Paso 1: Configuración de la aplicación en Azure Portal

Para que el ejemplo de código de esta guía de inicio rápido funcione, agregue un URI de redirección de https://login.microsoftonline.com/common/oauth2/nativeclient y ms-appx-web://microsoft.aad.brokerplugin/{client_id}.

Ya configurada La aplicación está configurada con estos atributos.

Paso 2: Descarga del proyecto de Visual Studio

Ejecute el proyecto con Visual Studio 2019.

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: La aplicación está configurada y lista para ejecutarse

Hemos configurado el proyecto con los valores de las propiedades de su aplicación y está preparado para ejecutarse.

Nota:

Enter_the_Supported_Account_Info_Here

Información adicional

Funcionamiento del ejemplo

Muestra cómo funciona la aplicación de ejemplo generada por este inicio rápido.

MSAL.NET

MSAL (Microsoft.Identity.Client) es la biblioteca que se usa para iniciar sesión a los usuarios y solicitar tokens usados para acceder a una API protegida por la plataforma de identidad de Microsoft. Puede instalar MSAL mediante la ejecución del siguiente comando en la Consola del Administrador de paquetes de Visual Studio:

Install-Package Microsoft.Identity.Client -IncludePrerelease

Inicialización de MSAL

Puede agregar la referencia de MSAL agregando el código siguiente:

using Microsoft.Identity.Client;

A continuación, inicialice MSAL con el código siguiente:

IPublicClientApplication publicClientApp = PublicClientApplicationBuilder.Create(ClientId)
                .WithRedirectUri("https://login.microsoftonline.com/common/oauth2/nativeclient")
                .WithAuthority(AzureCloudInstance.AzurePublic, Tenant)
                .Build();
Donde: Descripción
ClientId Es el Identificador de aplicación (cliente) de la aplicación registrada en Azure Portal. Puede encontrar este valor en la página Información general de la aplicación en Azure Portal.

Solicitud de tokens

MSAL tiene dos métodos para adquirir tokens: AcquireTokenInteractive y AcquireTokenSilent.

Obtención de un token de usuario de forma interactiva

Algunas situaciones requieren forzar a los usuarios a interactuar con la plataforma de identidad de Microsoft a través de una ventana emergente para validar sus credenciales o para dar su consentimiento. Algunos ejemplos son:

  • La primera vez que los usuarios inician sesión en la aplicación
  • Cuando es posible que los usuarios necesiten volver a escribir sus credenciales porque la contraseña ha expirado
  • Cuando la aplicación solicita acceso a un recurso al que el usuario necesita dar su consentimiento
  • Cuando se requiere la autenticación en dos fases
authResult = await App.PublicClientApp.AcquireTokenInteractive(_scopes)
                                      .ExecuteAsync();
Donde: Descripción
_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 de forma silenciosa

No desea exigir al usuario que valide sus credenciales cada vez que necesite acceder a un recurso. La mayoría de las veces desea adquisiciones y renovación de tokens sin ninguna interacción del usuario. Puede usar el método AcquireTokenSilent para obtener tokens para acceder a los recursos protegidos después del método de AcquireTokenInteractive inicial:

var accounts = await App.PublicClientApp.GetAccountsAsync();
var firstAccount = accounts.FirstOrDefault();
authResult = await App.PublicClientApp.AcquireTokenSilent(scopes, firstAccount)
                                      .ExecuteAsync();
Donde: Descripción
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.
firstAccount Especifica el primer usuario de la memoria caché (MSAL admite varios usuarios en una sola aplicación).

Ayuda y soporte técnico

Si necesita ayuda, desea informar de un problema o desea obtener información sobre las opciones de soporte técnico, consulte Opciones de ayuda y soporte técnico para desarrolladores.

Pasos siguientes

Pruebe el tutorial de escritorio de Windows para obtener una guía paso a paso completa sobre la creación de aplicaciones y nuevas características, incluida una explicación completa de este inicio rápido.