Microsoft Graph
This is a continuation of a series of articles on
Azure services from an operational engineering perspective with the most recent
introduction of this topic with the link here. The previous article discussed the Microsoft
Graph Data Connect used with Microsoft Graph. This article discusses the API.
Microsoft Graph enables integration with the best of Microsoft 365, Windows 10
and Enterprise mobility and security services in Microsoft 365, using REST APIs
and client libraries
Microsoft Graph provides a unified
programmability model by consolidating multiple APIs into one. As Microsoft’s
cloud services have evolved, the APIs to reference them has also changed.
Originally, when cloud services like Exchange Online, Sharepoint, OneDrive and
others evolved, the API to access those services was launched too. The list for
SDKs and REST APIs for these services started growing for developers to access
content. Each endpoint also required Access Tokens and returned status code
that were unique to each individual service. Microsoft Graph brought a
consistent simplified way to interact with these services.
The data virtualization platform that Microsoft
Graph presents also supports querying relationships between:
·
Azure Active Directory
·
Exchange Online – including mail, calendar and contacts.
·
Sharepoint online including file storage
·
OneDrive
·
OneDrive for business
·
OneNote and
·
Planner
As a collaborative app development platform
Microsoft Graph is not alone. Microsoft Teams, Slack, Google Workspace are
applications with collaboration as their essence and designed for flexibility
of hybrid work. For example, Teams toolkit for Visual studio code lets us use
existing web development framework to build cross platform Team applications
against any backend. Microsoft Graph provides both the seamlessness and the
data for realtime collaboration.
Connectors and Microsoft Data Connect round up
the data transfer mechanisms. Connectors offer a simple and intuitive
way to bring content from external services to Microsoft Graph which enables
external data to power Microsoft 365 experiences. It does this with the help of REST
APIs that are used to 1. Create and manage external data connections, 2.
Define and register the schema of the external data type(s), 3. Ingest external
data items into Microsoft Graph and 4. Sync external groups. Microsoft
Graph Data Connect augments Microsoft Graph’s transactional model with an
intelligent way to access rich data at scale. It is ideal to connect big data
and for machine learning. It uses Azure Data Factory to copy Microsoft 365 data to the
application’s storage at configurable intervals. It provides a set of tools to
streamline the delivery of this data into Microsoft Azure. It allows us to
manage the data and see who is accessing it, and it requests specific
properties of an entity. It enhances the Microsoft Graph model, which grants or
denies applications access to entire entities.
Sample code for enriching user
information:
public static void
AddUserGraphInfo(this ClaimsPrincipal claimsPrincipal, User user)
{
var identity =
claimsPrincipal.Identity as ClaimsIdentity;
identity.AddClaim(
new Claim(GraphClaimTypes.DisplayName,
user.DisplayName));
identity.AddClaim(
new Claim(GraphClaimTypes.Email,
claimsPrincipal.IsPersonalAccount()? user.UserPrincipalName :
user.Mail));
identity.AddClaim(
new Claim(GraphClaimTypes.TimeZone,
user.MailboxSettings.TimeZone ?? "UTC"));
identity.AddClaim(
new
Claim(GraphClaimTypes.TimeFormat, user.MailboxSettings.TimeFormat ?? "h:mm
tt"));
identity.AddClaim(
new
Claim(GraphClaimTypes.DateFormat, user.MailboxSettings.DateFormat ??
"M/d/yyyy"));
}
Sample delta query for mail folders
Public async Task<IMailFolderDeltaCollectionPage>
GetIncrementalChangeInMailFolders()
{
IMailFolderDeltaCollectionPage
deltaCollection;
deltaCollection
= await _graphClient.Me.MailFolders
.Delta()
.Request()
.GetAsync();
return
deltaCollection;
}
No comments:
Post a Comment