Office 365 - Microsoft Graph Beginning - Part one

In this first article of the Microsoft Graph series, we will discuss the basics of Microsoft Graph.

Nowadays, there is a lot happening around Microsoft Graph; a lot of changes have been made and a lot of new changes are arriving soon, such as - Graph APIs for Microsoft Teams, use of MS Graph APIs in SPFX component, unified access to services in M365 suite, and more. So, I thought to write this series of articles for exploring the Microsoft Graph concepts with the help of use cases and examples.

NoteIf you really want to go in depth of Microsoft Graph, please go through all the articles in this series, put your comments, and ask questions. For Office 365/SharePoint Online developers, Microsoft Graph is the future.

Microsoft Graph

  1. Microsoft Graph unifies the access of the services in M365 Suite.

    1. M365 is defined by Microsoft as “A complete, intelligent solution, including Office 365, Windows 10, and Enterprise Mobility + Security, that empowers everyone to be creative and work together, securely.”

  2. We can fetch data using single public endpoint - https://graph.microsoft.com either using simple REST calls or with an SDK available on just about any platform.

  3. Microsoft Graph provides REST APIs and SDKs for the following services to fetch the data.

    1. Office 365 Services accessible through Microsoft Graph (till Nov 2018) – SharePoint, OneDrive, Outlook / Exchange, Microsoft Teams, OneNote, Planner, Excel, Azure AD
    2. Azure AD
    3. Education
    4. Enterprise Mobility and Security Services: Identity Manager, Intune, Advanced Threat Analytics, and Advanced Threat Protection.
    5. Windows 10 Services: activities and devices

Office 365 - Microsoft Graph - Accessing different Microsoft services
Figure 1: Office 365 - Microsoft Graph - Accessing different Microsoft services

Before Microsoft Graph, we faced a bunch of challenges while fetching the data across these different Microsoft Services.

  1. Each service had their own REST points
  2. Discovering these different endpoints
  3. We need to authenticate each endpoint separately
  4. We need to manage different permissions
  5. We need to manage different data formats returned through respective endpoints
  6. And so on…

Why Office 365 / SharePoint Online developers should understand Microsoft Graph.

  1. Covers APIs across multiple services - Office 365, Azure AD, Enterprise Mobility and Security, Windows 10
  2. A single endpoint for all the above Microsoft Services
  3. Single access token for authentication to multiple services
  4. Managing permissions with common permission model
  5. Microsoft Graph supports multiple languages and platforms either through REST APIs or SDK available such as,

    1. Android
    2. Angular
    3. NET MVC
    4. iOS
    5. JavaScript
    6. PHP
    7. Python
    8. Ruby
    9. UWP
    10. Xamrin

Office 365 - Microsoft Graph - Various languages and platform support
Figure 2: Office 365 - Microsoft Graph - Various languages and platform support

 

Microsoft Graph Developer stack

Office 365 - Microsoft Graph - Developer Stack
Figure 3: Office 365 - Microsoft Graph - Developer Stack

 

  1. From the above figure at the bottom, there are various data sources available
  2. Using Microsoft Graph APIs, we can fetch data from all these data sources using single endpoint call to https://graph.microsoft.com
  3. In order to access Microsoft Graph API, we need OAuth 2.0 access token – we will cover this in detail in coming articles.

References

  1. M365
  2. Microsoft Graph
  3. Get started with Microsoft Graph
  4. Major services and features in Microsoft Graph.
  5. Graph Explorer
  6. Microsoft Graph GitHub