Configuración de servicios de Microsoft 365 con Microsoft Graph API en Visual Studio
Puede usar Microsoft Graph para consumir información de usuario almacenada en Microsoft 365 en aplicaciones personalizadas. Al usar Servicios conectados en Visual Studio, puede conceder a la aplicación acceso a los siguientes servicios de Microsoft 365:
- Outlook: correo, calendarios y contactos
- Microsoft Entra ID: usuarios, grupos y directorios
- OneDrive: archivos
- OneNote: notas y cuadernos
- SharePoint: sitios, listas y bibliotecas de documentos
- Planner: tareas
En este artículo se describe cómo configurar Servicios conectados en Visual Studio para usar Microsoft Graph en una aplicación de MVC de ASP.NET que muestra eventos del calendario del usuario que ha iniciado sesión actualmente.
Para empezar
Para usar el Office 365 Servicios conectados con Microsoft Graph, debe:
- Descargue Visual Studio. Si ya lo tiene, actualice a la versión más reciente.
- Obtenga una suscripción a Microsoft 365. Si no tiene una suscripción a Microsoft 365, puede calificar para una a través del Programa para desarrolladores de Microsoft 365; Para obtener más información, consulte las preguntas más frecuentes. Como alternativa, puede registrarse para obtener una evaluación gratuita de 1 mes o comprar un plan de Microsoft 365.
Obtener el proyecto de inicio
Descargue el ejemplo de aplicación MVC de Microsoft Graph ASP.NET Connected Services. En este ejemplo se incluyen las referencias que necesita autenticar en Microsoft Graph. Después de descargar el proyecto de inicio, descomprima y abra el ejemplo graph-tutorial en Visual Studio.
Agregar el Servicio conectado
Visual Studio 2022
- En Explorador de soluciones, elija Servicios conectados para abrir la pestaña Servicios conectados.
- En Dependencias del servicio, haga clic en el + botón para agregar una nueva dependencia de servicio.
- Desplácese hacia abajo y elija Acceso a los servicios de Microsoft 365 con Microsoft Graph.
Visual Studio 2017 y Visual Studio 2019
- En el explorador de soluciones, elija Servicios conectados para abrir la pestaña Servicios conectados.
- Elija Acceder a los servicios de Microsoft 365 con el proveedor de Microsoft Graph .
Configuración del acceso a datos de Microsoft 365
Escriba el dominio de la cuenta de desarrollador y elija Siguiente.
Vaya Centro de administración Microsoft Entra para buscar el nombre de dominio. Inicie sesión y expanda el menú >Identidad y seleccione Información general. El campo Dominio principal de la sección Información básica contiene el nombre de dominio.
Propina: Si la dirección principal es
admin@contoso.com
, el dominio es contoso.com'.
Seleccione Crear un nuevo registro de aplicación y complete el proceso de creación de un registro de aplicación.
En este tutorial, seleccione los permisos siguientes:
- Seleccione la pestaña Calendarios y active la casilla Leer los calendarios para conceder el permiso a la
Calendar.Read
aplicación. - Seleccione la pestaña Usuario y active la casilla Iniciar sesión y lea su perfil para conceder el permiso a la
User.Read
aplicación.
- Seleccione la pestaña Calendarios y active la casilla Leer los calendarios para conceder el permiso a la
Elija Finalizar.
Actualización de la configuración de la aplicación
Haga doble clic en Web.config.
Dentro <de appSettings>, inserte el código siguiente:
<add key="ida:RedirectUri" value="https://localhost:PORT/" /> <add key="ida:AppScopes" value="User.Read Calendars.Read" />
Modifique el
PORT
valor de paraida:RedirectUri
que coincida con la dirección URL de la aplicación.
Propina: Puede encontrar la información de PUERTO en las propiedades del proyecto.
Ejecutar el ejemplo
Guarde los cambios e inicie el proyecto. A continuación, seleccione el botón Haga clic aquí para iniciar sesión que le redirigirá a https://login.microsoftonline.com. Inicie sesión con su cuenta de desarrollador y dé su consentimiento a los permisos solicitados.
La página principal muestra el nombre que indica que ha iniciado sesión. En la pestaña Calendario , se muestra una tabla de eventos en función de su cuenta.
Seleccione Cerrar sesión en el avatar de la esquina superior derecha para restablecer la sesión y volver a la página principal.
Examinar el código
Ahora puede explorar los archivos y el código en Visual Studio para obtener más información sobre este proyecto de inicio.
Solicitud a Microsoft Graph API
Helpers\GraphHelper.cs contiene los métodos que usan GraphServiceClient para enviar solicitudes al servicio Microsoft Graph. Esta clase implementa el método GetUserDetailsAsync que usa el SDK de Microsoft Graph para volver a tratar la información del usuario mediante una llamada al /me
punto de conexión.
El método GetEventsAsync usa el punto de /v1.0/me/events
conexión para solicitar datos de calendarios. El select
parámetro de consulta OData limita los campos devueltos para cada evento a solo los que se muestran en la vista. El orderBy
parámetro ordena los resultados por la fecha y hora en que se crearon, siendo primero el elemento más reciente.
El método GetAuthenticatedClient inicializa un GraphServiceClient con un proveedor de autenticación e intenta recuperar un token de acceso obtenido anteriormente del almacén de tokens mediante el método AcquireTokenSilent . Tenga en cuenta que si se produce un error en AcquireTokenSilent , el usuario se presenta con un inicio de sesión interactivo.
Autenticación
El App_Start\Startup.Auth.cs configura el middleware de OWIN con los valores de Web.config y define los siguientes métodos de devolución de llamada OnAuthenticationFailedAsync y OnAuthorizationCodeReceivedAsync que se invocan cuando el proceso de inicio de sesión vuelve de Azure.
El método OnAuthorizationCodeReceivedAsync encapsula la caché de tokens de usuario predeterminada de ConfidentialClientApplication con la clase SessionTokenStore . La biblioteca MSAL controla la lógica de almacenar los tokens y actualizarlos cuando sea necesario. El código pasa los detalles del usuario obtenidos de Microsoft Graph al objeto SessionTokenStore que se va a almacenar en la sesión.
Caché de tokens
TokenStorage\SessionTokenCache.cs implementa una clase de almacén de tokens para serializar y almacenar la caché de tokens MSAL y los detalles del usuario en la sesión de usuario. Se puede reemplazar por su memoria caché de token personalizada. Para obtener más información, consulte Tokens de acceso de caché.
Inicio de sesión y cierre de sesión
Controllers\AccountController.cs es un controlador para controlar el inicio de sesión que define una acción SignIn y SignOut. La acción SignIn comprueba si la solicitud ya está autenticada. Si no es así, invocará al middleware OWIN para autenticar al usuario. La acción SignOut invoca el middleware de OWIN para cerrar la sesión.
Vistas
Views\Shared\_Layout.cshtml define el diseño global de la aplicación. Agrega Bootstrap para un estilo sencillo y Font Awesome para iconos, define el diseño de la barra de navegación y usa la clase Alert para mostrar alertas.
Views\Home\Index.cshtml y Views\Calendar\Index.cshtml contienen la interfaz de usuario para mostrar la información recuperada de Azure.
¿Necesita ayuda?
Si necesita ayuda, publique sus preguntas en Microsoft Q&A. Etiquete su publicación con {microsoft-graph-identity}.
Comentarios
https://aka.ms/ContentUserFeedback.
Próximamente: A lo largo de 2024 iremos eliminando gradualmente GitHub Issues como mecanismo de comentarios sobre el contenido y lo sustituiremos por un nuevo sistema de comentarios. Para más información, vea:Enviar y ver comentarios de