Cómo no romper los límites, cómo crear una buena arquitectura y cómo hacer un buen mantenimiento

Microsoft Graph como centro de datos de Microsoft 365

¿Cómo puedo acceder a los datos que tenemos en Microsoft 365? ¿Cómo puedo extender la plataforma para crear o integrar con mis procesos de negocio? Microsoft Graph es la respuesta como API unificada de acceso a las diferentes cargas de trabajo de Microsoft 365.

¿Qué es Microsoft Graph?

Microsoft Graph es la puerta de entrada a la información que existe en los tenants de Microsoft 365.

Microsoft Graph, Microsoft Graph data connect, and Microsoft Graph connectors enable extending Microsoft 365 experiences and building intelligent apps.

Expone diferentes APIs, distribuidas en diferentes endpoints, que nos dan acceso a los diferentes aspectos y datos de la plataforma.

Estas APIs, implementan una interfaz OData, lo que permite hacer llamadas usando REST a cualquiera de los espacios de nombres que la componen.

Podemos añadir nuestros datos a la plataforma, usando los conectores, para poder usar las capacidades de búsqueda de Microsoft Search.

Con Data Connect podemos descargar los datos de nuestro tenant para realizar análisis o aplicar algoritmos de inteligencia artificial.

¿Qué datos tienen los endpoint de Graph?

En realidad, todos (o casi todos) los datos de Microsoft 365 tienen un espacio de nombre en Microsoft Graph.

An image showing the primary resources and relationships that are part of the graph

Desde Graph, podemos interactuar con los siguientes servicios:

  • Servicios base de Microsoft 365: Bookings, Calendario, Delve, Excel, eDiscovery, Microsoft Search, OneDrive, OneNote, Outlook, Personas o contactos de Outlook, Planner, SharePoint, Teams, To Do, Workplace Analytics, etc.
  • Servicios de Seguridad, Azure Active Directory, Identity Manager, Intune, etc.
  • Servicios de Windows 10 como actividades, dispositivos, notificaciones, Universal Print, etc.
  • Dynamics 365 Business Central

Estos servicios están agrupados en los siguientes espacios de nombres:

  • Usuarios y Grupos, como core de Microsoft Graph.
  • Gestión de identidades y accesos.
  • Productividad basada en Outlook, OneDrive, SharePoint, OneNote, Excel, To Do.
  • Colaboración en base a Microsoft Teams, SharePoint, Planner.
  • Personas e inteligencia en el lugar de trabajo de Azure AD, Outlook, SharePoint, Perfil del usuario, Delve, OneDrive, MyAnalytics.
  • Gestión de dispositivos de Universal Print, Intune y Windows Update para Empresas.
  • Seguridad de Azure AD, Windows Defender, …
  • Experiencias entre dispositivos 
  • Notificaciones de usuario
  • Informes de uso de Microsoft Teams, OneDrive, Outlook, SharePoint, Yammer.
  • Educación que da soporte a los tenants educativos y sus escenarios particulares.
  • Aplicaciones de negocio con Booking y Dynamics 365 Business Central.

¿Qué pasa con el resto de las aplicaciones o servicios de Microsoft 365 que no están en este listado? El equipo de Graph está trabajando para incorporar más funcionalidades y servicios, de hecho, os recomiendo echar un vistazo al roadmap para conocer sus planes.

Casos de uso

Microsoft Graph nos permite implementar diferentes escenarios de uso para añadir o extender nuestros procesos de negocio a la plataforma.

  • Asistentes de calendarios para mejorar la experiencia cuando queremos generar una reunión.
  • Añadir tareas a To Do o Planner a partir de datos o aplicaciones de negocio
  • Enviar una notificación a un usuario
  • Crear o subir documentos a OneDrive o SharePoint
  • Analizar el comportamiento del uso de Office 365 para ayudar en la adopción, como hemos implementado en TeamsChamp.
  • Digitalizar nuestro proceso de Onboarding integrado con nuestro sistema de RRHH, creando actividades para el nuevo empleado y conectándolo a la información relevante del proceso.

Podría seguir detallando casos de uso, pero, casi mejor , os recomiendo una lectura rápida a los diferentes endpoints y pensar cómo se puede mejorar o automatizar los procesos de vuestra empresa usando Graph.

Seguridad

En una API como Microsoft Graph la seguridad es muy relevante y Microsoft lo está teniendo en cuenta con la versión actual y con los cambios que van a venir y que podemos ver en el roadmap.

El modelo de autenticación y autorización está basado en tokens de acceso que se obtienen en el servicio de identidades de Azure AD de nuestro tenant.

Normalmente, un administrador tiene que crear la aplicación en el Azure AD del tenant y darle permisos a los diferentes endpoints de Microsoft Graph que queremos usar, aunque tenemos escenarios multi-tenant que conllevan un consentimiento de autorización de usuario y/o de administrador.

Tipos de permisos

Los permisos pueden ser de tipo Delegado o de Aplicación. Un permiso delegado requiere que un usuario se autentique de forma interactiva, mientras que el permiso de aplicación no requiere de un usuario presente en el proceso de autenticación.

Hay que tener en cuenta que no todos los endpoint de Microsoft Graph soportan ambos permisos, por ejemplo, la API de presencia sólo tiene permisos de tipo Delegado por lo que no podemos tener un proceso en background, autenticándose con permisos de aplicación, para obtener la presencia de los usuarios.

Permisos Efectivos

Importante tener en cuenta los permisos efectivos de cada tipo de permiso. En el caso de delegado, las llamadas a las API tendrán los permisos de acceso de la aplicación más los permisos del usuario que se ha autenticado, una intersección de permisos.

Sin embargo, con los permisos de Aplicación tenemos acceso a todos los recursos sin restricción, un tema bastante delicado ya que, si concedemos permisos de aplicación, por ejemplo, para leer los datos de SharePoint tendremos acceso a todas las colecciones de sitio de SharePoint.

Microsoft ya está trabajando para tener en próximas versiones permisos más específicos basados en “Resource-specific consent” y así, poder segmentar el área de acceso de las aplicaciones y los recursos.

Cada endpoint de Graph tiene un conjunto de permisos diferentes de tipo Delegado y de tipo Aplicación. Por ejemplo, podemos dar un permiso delegado de para leer el Calendario del usuario (Calendars.Read) o podemos dar un permiso de aplicación para leer y escribir en cualquier Calendario del Tenant (Calendars.ReadWrite).

¿Cómo empezar?

Son muchos los casos de uso donde Microsoft Graph aporta valor y ayuda en la implementación. Un buen inicio para Microsoft Graph es probar los diferentes endpoints en Graph Explorer, una herramienta de exploración y pruebas.

El siguiente paso es revisar la seguridad y asegurarnos que podemos usar permisos delegados o que tenemos los permisos de aplicación adecuados para nuestro caso de uso.

A partir de ese momento: imaginación al poder para transformar nuestra organización con la ayuda de Microsoft Graph. Nosotros la usamos en todos los proyectos de Microsoft 365 🙂

mm

Sobre Alberto Diaz Martin

Alberto Diaz cuenta con más de 15 años de experiencia en la Industria IT, todos ellos trabajando con tecnologías Microsoft. Actualmente, es Chief Technology Innovation Officer en ENCAMINA, liderando el desarrollo de software con tecnología Microsoft, y miembro del equipo de Dirección. Para la comunidad, trabaja como organizador y speaker de las conferencias más relevantes del mundo Microsoft en España, en las cuales es uno de los referentes en SharePoint, Office 365 y Azure. Autor de diversos libros y artículos en revistas profesionales y blogs, en 2013 empezó a formar parte del equipo de Dirección de CompartiMOSS, una revista digital sobre tecnologías Microsoft. Desde 2011 ha sido nombrado Microsoft MVP, reconocimiento que ha renovado por séptimo año consecutivo. Se define como un geek, amante de los smartphones y desarrollador. Fundador de TenerifeDev (www.tenerifedev.com), un grupo de usuarios de .NET en Tenerife, y coordinador de SUGES (Grupo de Usuarios de SharePoint de España, www.suges.es)
Esta entrada ha sido publicada en Office 365 y etiquetada como , , . Enlace permanente .
ENCAMINA, piensa en colores