SlideShare a Scribd company logo
Unchain your app’s capabilities with Microsoft Graph
Yannick Plenevaux
yp_code
aOS Luxembourg
16 mai 2019
Yannick Plenevaux
SharePoint & Office 365 Architect
MCSD App Builder
@ yannick.plenevaux@pvx-solutions.com
@yp_code
https://ypcode.wordpress.com
Founder of PVX Solutions
https://www.pvx-solutions.com
aOS Luxembourg
16 mai 2019
Agenda
 Corporate data
 The Microsoft Graph API
 The Graph Explorer
 Security
 Permissions
 Authorization Flow
 Create your app !
 Microsoft Graph in SPFx solutions
 Q&A
aOS Luxembourg
16 mai 2019
Corporate data
Me
E-mails
Events
Documents
Tasks
Content
Groups
People
Organization
Conversations
/ Chats
Devices
Activities
aOS Luxembourg
16 mai 2019
Microsoft 365 data
Me
E-mails
Events
Documents
Tasks
Content
Groups
People
Organization
Conversations
/ Chats
Devices
Activities
aOS Luxembourg
16 mai 2019
The Microsoft Graph API
One API to access and manipulate all corporate data in your app !
V1.0 : Stable and fully supported by Microsoft for Production usage
Beta : Preview of upcoming capabilities.
 Subject to changes  Not supported by Microsoft for Production usage
aOS Luxembourg
16 mai 2019
The Microsoft Graph API
 Only on Microsoft 365 / Office 365 (Cloud)
 Will most likely never come fully on premises !
 Why ?
 It continuously evolves (release each month)
 It uses a lot of machine learning algorithms on interconnected data
from various Microsoft services
 Would be very difficult to setup and maintain…
 It is THE Microsoft Cloud “killer app”  !
 However, some hybrid scenarios are feasible
 Announced at Build 2019 : Include your local Data in Microsoft Graph
aOS Luxembourg
16 mai 2019
The Microsoft Graph API
https://graph.microsoft.com
 Implements OData syntax in most
cases
 $filter
 $select
 $skip / $top
 $expand
 $orderby
 …
 RESTful = HTTP calls
 Read  HTTP GET
 Create  HTTP POST
 Update  HTTP PUT / PATCH
 Delete  HTTP DELETE
Get my 3 next events
GET https://graph.microsoft.com/v1.0/me/events?$filter=start/dateTime gt ‘2019-05-16T00:00:00’&$orderby=start/dateTime asc&$top=3
Get the files in my OneDrive folder
GET https://graph.microsoft.com/v1.0/me/drive/root/children
aOS Luxembourg
16 mai 2019
The Microsoft Graph API
 Accepts JSON as arguments and return JSON responses
 Can be used in any technology with HTTP capabilities
 API client implementation in various technologies
https://developer.microsoft.com/en-us/graph/get-started
aOS Luxembourg
16 mai 2019
The Graph Explorer
 Test the Microsoft Graph API
 In a playground context (read-only)
 With your tenant
real data
https://developer.microsoft.com/en-us/graph/graph-explorer
aOS Luxembourg
16 mai 2019
The Graph Explorer
DEMO
aOS Luxembourg
16 mai 2019
Security: Permissions
 Permissions have to be granted to the application
 Delegated permissions
 The application performs the actions on behalf of a signed-in user.
 “Effective permission” is the least privileged permission between the delegated permission and the real
privilege of the user
 Application permissions (app-only)
 Not signed-in user (background job, automated tasks, …)
 Consent has to be given to the application
 Delegated permissions
 The current user gives consent to the requested permissions
 Administrators can give consent for all users
 Some permissions require an administrator to give consent
 Application permissions
 Only administrators can give consent
https://docs.microsoft.com/en-us/graph/permissions-reference
aOS Luxembourg
16 mai 2019
Security: Authorization flows
Azure AD protected Web API
Authorization Flow Common usage
OpenID Connect Web applications
OAuth 2.0 Implicit Grant Client-side applications (JS)
OAuth 2.0 Auth Code Native (Desktop, Mobile) applications
OAuth 2.0 on-behalf-of Web APIs
OAuth 2.0 Client Credentials App-only (Background jobs, …)
…
The authorization endpoints :
https://login.microsoftonline.com/common/oauth2/v2.0
• /authorize (Sign-in)
• /token (Get access token)
Pass the access token in each Graph
HTTP call headers
Authorization: Bearer <access token>
These authorization flows are mostly handled by the available client APIs !
If not, it can be implemented in any technology with HTTP capabilities
common can be replaced by the tenant id
to target a specific tenant
(e.g. contoso.onmicrosoft.com)
aOS Luxembourg
16 mai 2019
Authorization flow
Web app
Data from API forwarded to user
Microsoft Graph
aOS Luxembourg
16 mai 2019
Authorization flow
Mobile/Desktop app
Microsoft Graph
1 hour
Access Token expires
after 1 hour
Refresh token expires
after 14 days
renewable up to total 90 days
aOS Luxembourg
16 mai 2019
Create your app !
 In order to access graph from an application
 Setup (by Azure AD administrator)
 Need to register the app in Azure AD
 https://aad.portal.azure.com  App registrations
 For Web applications  Need Redirect URI
 Need to request the appropriate permissions for the app to work properly
 At runtime
1. The user signs in
 At first sign-in, the user must give consent to the permissions requested by the application
 Administrators can give consent for all users (can also be done from AAD portal)
 No “sign-in” in app-only context
2. Get Access Token
3. Call the Microsoft Graph endpoint with the Authorization header
set to Bearer <access_token>
aOS Luxembourg
16 mai 2019
Create your app !
DEMO
aOS Luxembourg
16 mai 2019
Microsoft Graph in SPFx solutions
 SPFx v1.6 (Aug. 2018)
 Call to AAD registered app natively supported
 Dedicated feature support for Microsoft Graph
 As in any app using MS Graph
 The appropriate permissions needs to be requested
 The permissions must be granted by a SharePoint global
administrator
 No need to access Azure AD portal
 SPFx integrated library to automatically handle the access token
internal plumbing
aOS Luxembourg
16 mai 2019
Microsoft Graph in SPFx solutions
DEMO
aOS Luxembourg
16 mai 2019
Microsoft Graph in SPFx solutions
Leverage your corporate data using Microsoft Graph
 In your SharePoint customizations
 In your custom Microsoft Teams Tabs
 Soon in your Office add-ins ! ( Word, Excel, PowerPoint, Outlook)
 Public announcements are expected at SPC this month !
Using ONE Framework and even ONE codebase
aOS Luxembourg
16 mai 2019
Unchain your app’s capabilities with
Microsoft Graph
Questions ?
Merci à notre sponsor !

More Related Content

Similar to 2019 05-16 aOS Luxembourg - 5 - Unchain your apps capabilities with Microsoft Graph - Yannick Plenevaux

App Model For SharePoint 2013
App Model For SharePoint 2013App Model For SharePoint 2013
App Model For SharePoint 2013
Toni Il Caiser
 
Building Intelligent Apps Using Microsoft Graph
Building Intelligent Apps Using Microsoft GraphBuilding Intelligent Apps Using Microsoft Graph
Building Intelligent Apps Using Microsoft Graph
Roy Sheinfeld
 
2019 11-13 MS Ignite The Tour Paris - Integrate Power Platform with SharePoin...
2019 11-13 MS Ignite The Tour Paris - Integrate Power Platform with SharePoin...2019 11-13 MS Ignite The Tour Paris - Integrate Power Platform with SharePoin...
2019 11-13 MS Ignite The Tour Paris - Integrate Power Platform with SharePoin...
Patrick Guimonet
 
harePoint Framework Webinar Series: Consume Graph APIs in SharePoint Framework
harePoint Framework Webinar Series: Consume Graph APIs in SharePoint FrameworkharePoint Framework Webinar Series: Consume Graph APIs in SharePoint Framework
harePoint Framework Webinar Series: Consume Graph APIs in SharePoint Framework
Jenkins NS
 
2019-05-16 aOS Luxembourg - 3 - Applications modernes ? Le zéro code - Antoin...
2019-05-16 aOS Luxembourg - 3 - Applications modernes ? Le zéro code - Antoin...2019-05-16 aOS Luxembourg - 3 - Applications modernes ? Le zéro code - Antoin...
2019-05-16 aOS Luxembourg - 3 - Applications modernes ? Le zéro code - Antoin...
aOS Community
 
Stronger than Chuck Norris: SharePoint in clouds, on earth, in subway and in ...
Stronger than Chuck Norris: SharePoint in clouds, on earth, in subway and in ...Stronger than Chuck Norris: SharePoint in clouds, on earth, in subway and in ...
Stronger than Chuck Norris: SharePoint in clouds, on earth, in subway and in ...
Adis Jugo
 
Publishing & Consuming Web APIs on Azure
Publishing & Consuming Web APIs on AzurePublishing & Consuming Web APIs on Azure
Publishing & Consuming Web APIs on Azure
Paris Polyzos
 
Cloud technology (Mashup) + Case Study
Cloud technology (Mashup) + Case StudyCloud technology (Mashup) + Case Study
Cloud technology (Mashup) + Case Study
Mustafa Salam
 
Event Calendar - Android App Development
Event Calendar -  Android App DevelopmentEvent Calendar -  Android App Development
Event Calendar - Android App Development
Mobilunity
 
Relearning SharePoint Development
Relearning SharePoint DevelopmentRelearning SharePoint Development
Relearning SharePoint Development
bgerman
 
Make Good Apps great - Using IBM MobileFirst Foundation
Make Good Apps great - Using IBM MobileFirst FoundationMake Good Apps great - Using IBM MobileFirst Foundation
Make Good Apps great - Using IBM MobileFirst Foundation
Ajay Chebbi
 
2020 01-27 MS Ignite The Tour Milan - Integrate Power Platform with SharePoin...
2020 01-27 MS Ignite The Tour Milan - Integrate Power Platform with SharePoin...2020 01-27 MS Ignite The Tour Milan - Integrate Power Platform with SharePoin...
2020 01-27 MS Ignite The Tour Milan - Integrate Power Platform with SharePoin...
Patrick Guimonet
 
iOS & Android Application Development - Pee Dee User Group Meeting
iOS & Android Application Development - Pee Dee User Group MeetingiOS & Android Application Development - Pee Dee User Group Meeting
iOS & Android Application Development - Pee Dee User Group Meeting
Jim Tochterman
 
ICICT cms presentation
ICICT cms presentationICICT cms presentation
ICICT cms presentation
Umer Jabbar
 
Licensing for cross-platform applications made with Python, PHP, and JavaScript
Licensing for cross-platform applications made with Python, PHP, and JavaScriptLicensing for cross-platform applications made with Python, PHP, and JavaScript
Licensing for cross-platform applications made with Python, PHP, and JavaScript
team-WIBU
 
How DotNet, SharePoint, and Azure helps to build a Custom Web Application wi...
 How DotNet, SharePoint, and Azure helps to build a Custom Web Application wi... How DotNet, SharePoint, and Azure helps to build a Custom Web Application wi...
How DotNet, SharePoint, and Azure helps to build a Custom Web Application wi...
Aimore Technologies
 
Firefox OS Presentation
Firefox OS PresentationFirefox OS Presentation
Firefox OS Presentation
José Manuel Cantera Fonseca
 
Where Do Cross-Platform App Frameworks Stand in 2020?
Where Do Cross-Platform App Frameworks Stand in 2020?Where Do Cross-Platform App Frameworks Stand in 2020?
Where Do Cross-Platform App Frameworks Stand in 2020?
Marianne Harness
 
How App Indexation Works
How App Indexation WorksHow App Indexation Works
How App Indexation Works
SerenaPearson2
 
Android-GDSC.pptx
Android-GDSC.pptxAndroid-GDSC.pptx
Android-GDSC.pptx
SayaliNalawade1
 

Similar to 2019 05-16 aOS Luxembourg - 5 - Unchain your apps capabilities with Microsoft Graph - Yannick Plenevaux (20)

App Model For SharePoint 2013
App Model For SharePoint 2013App Model For SharePoint 2013
App Model For SharePoint 2013
 
Building Intelligent Apps Using Microsoft Graph
Building Intelligent Apps Using Microsoft GraphBuilding Intelligent Apps Using Microsoft Graph
Building Intelligent Apps Using Microsoft Graph
 
2019 11-13 MS Ignite The Tour Paris - Integrate Power Platform with SharePoin...
2019 11-13 MS Ignite The Tour Paris - Integrate Power Platform with SharePoin...2019 11-13 MS Ignite The Tour Paris - Integrate Power Platform with SharePoin...
2019 11-13 MS Ignite The Tour Paris - Integrate Power Platform with SharePoin...
 
harePoint Framework Webinar Series: Consume Graph APIs in SharePoint Framework
harePoint Framework Webinar Series: Consume Graph APIs in SharePoint FrameworkharePoint Framework Webinar Series: Consume Graph APIs in SharePoint Framework
harePoint Framework Webinar Series: Consume Graph APIs in SharePoint Framework
 
2019-05-16 aOS Luxembourg - 3 - Applications modernes ? Le zéro code - Antoin...
2019-05-16 aOS Luxembourg - 3 - Applications modernes ? Le zéro code - Antoin...2019-05-16 aOS Luxembourg - 3 - Applications modernes ? Le zéro code - Antoin...
2019-05-16 aOS Luxembourg - 3 - Applications modernes ? Le zéro code - Antoin...
 
Stronger than Chuck Norris: SharePoint in clouds, on earth, in subway and in ...
Stronger than Chuck Norris: SharePoint in clouds, on earth, in subway and in ...Stronger than Chuck Norris: SharePoint in clouds, on earth, in subway and in ...
Stronger than Chuck Norris: SharePoint in clouds, on earth, in subway and in ...
 
Publishing & Consuming Web APIs on Azure
Publishing & Consuming Web APIs on AzurePublishing & Consuming Web APIs on Azure
Publishing & Consuming Web APIs on Azure
 
Cloud technology (Mashup) + Case Study
Cloud technology (Mashup) + Case StudyCloud technology (Mashup) + Case Study
Cloud technology (Mashup) + Case Study
 
Event Calendar - Android App Development
Event Calendar -  Android App DevelopmentEvent Calendar -  Android App Development
Event Calendar - Android App Development
 
Relearning SharePoint Development
Relearning SharePoint DevelopmentRelearning SharePoint Development
Relearning SharePoint Development
 
Make Good Apps great - Using IBM MobileFirst Foundation
Make Good Apps great - Using IBM MobileFirst FoundationMake Good Apps great - Using IBM MobileFirst Foundation
Make Good Apps great - Using IBM MobileFirst Foundation
 
2020 01-27 MS Ignite The Tour Milan - Integrate Power Platform with SharePoin...
2020 01-27 MS Ignite The Tour Milan - Integrate Power Platform with SharePoin...2020 01-27 MS Ignite The Tour Milan - Integrate Power Platform with SharePoin...
2020 01-27 MS Ignite The Tour Milan - Integrate Power Platform with SharePoin...
 
iOS & Android Application Development - Pee Dee User Group Meeting
iOS & Android Application Development - Pee Dee User Group MeetingiOS & Android Application Development - Pee Dee User Group Meeting
iOS & Android Application Development - Pee Dee User Group Meeting
 
ICICT cms presentation
ICICT cms presentationICICT cms presentation
ICICT cms presentation
 
Licensing for cross-platform applications made with Python, PHP, and JavaScript
Licensing for cross-platform applications made with Python, PHP, and JavaScriptLicensing for cross-platform applications made with Python, PHP, and JavaScript
Licensing for cross-platform applications made with Python, PHP, and JavaScript
 
How DotNet, SharePoint, and Azure helps to build a Custom Web Application wi...
 How DotNet, SharePoint, and Azure helps to build a Custom Web Application wi... How DotNet, SharePoint, and Azure helps to build a Custom Web Application wi...
How DotNet, SharePoint, and Azure helps to build a Custom Web Application wi...
 
Firefox OS Presentation
Firefox OS PresentationFirefox OS Presentation
Firefox OS Presentation
 
Where Do Cross-Platform App Frameworks Stand in 2020?
Where Do Cross-Platform App Frameworks Stand in 2020?Where Do Cross-Platform App Frameworks Stand in 2020?
Where Do Cross-Platform App Frameworks Stand in 2020?
 
How App Indexation Works
How App Indexation WorksHow App Indexation Works
How App Indexation Works
 
Android-GDSC.pptx
Android-GDSC.pptxAndroid-GDSC.pptx
Android-GDSC.pptx
 

More from aOS Community

Commencer le IaaS sur Azure - aOS Tahiti 03-03-2020
Commencer le IaaS sur Azure - aOS Tahiti 03-03-2020Commencer le IaaS sur Azure - aOS Tahiti 03-03-2020
Commencer le IaaS sur Azure - aOS Tahiti 03-03-2020
aOS Community
 
Migrer vers O365. Quelles stragtégies? - aOS Tahiti 03-03-2020
Migrer vers O365. Quelles stragtégies? - aOS Tahiti 03-03-2020Migrer vers O365. Quelles stragtégies? - aOS Tahiti 03-03-2020
Migrer vers O365. Quelles stragtégies? - aOS Tahiti 03-03-2020
aOS Community
 
Passer des macro Excel à la power plateform - aOS Tahiti 03-03-2020
Passer des macro Excel à la power plateform - aOS Tahiti 03-03-2020Passer des macro Excel à la power plateform - aOS Tahiti 03-03-2020
Passer des macro Excel à la power plateform - aOS Tahiti 03-03-2020
aOS Community
 
Serverless avec azure functions - aOS Tahiti 03-03-2020
Serverless avec azure functions - aOS Tahiti 03-03-2020Serverless avec azure functions - aOS Tahiti 03-03-2020
Serverless avec azure functions - aOS Tahiti 03-03-2020
aOS Community
 
Passer des macro Excel à la power plateform - aOS Nouméa 28-02-2020
Passer des macro Excel à la power plateform - aOS Nouméa 28-02-2020 Passer des macro Excel à la power plateform - aOS Nouméa 28-02-2020
Passer des macro Excel à la power plateform - aOS Nouméa 28-02-2020
aOS Community
 
MS ignite : les nouveautés autour des content services et projet cortex - aOS...
MS ignite : les nouveautés autour des content services et projet cortex - aOS...MS ignite : les nouveautés autour des content services et projet cortex - aOS...
MS ignite : les nouveautés autour des content services et projet cortex - aOS...
aOS Community
 
Cybersecurité dans M365 - aOS Noumea 28-02-2020
Cybersecurité dans M365 - aOS Noumea 28-02-2020Cybersecurité dans M365 - aOS Noumea 28-02-2020
Cybersecurité dans M365 - aOS Noumea 28-02-2020
aOS Community
 
Introduction a Power Automate - aOS Nouméa 28-02-2020
Introduction a Power Automate  - aOS Nouméa 28-02-2020 Introduction a Power Automate  - aOS Nouméa 28-02-2020
Introduction a Power Automate - aOS Nouméa 28-02-2020
aOS Community
 
aOS Monaco 2019 - S3 - Présentation Varonis - Cloud Data Protection - Benjami...
aOS Monaco 2019 - S3 - Présentation Varonis - Cloud Data Protection - Benjami...aOS Monaco 2019 - S3 - Présentation Varonis - Cloud Data Protection - Benjami...
aOS Monaco 2019 - S3 - Présentation Varonis - Cloud Data Protection - Benjami...
aOS Community
 
aOS Monaco 2019 - S2 - Présentation ARKADIN - TEAMS Adoption - Laurent Pilo
aOS Monaco 2019 - S2 - Présentation ARKADIN - TEAMS Adoption - Laurent PiloaOS Monaco 2019 - S2 - Présentation ARKADIN - TEAMS Adoption - Laurent Pilo
aOS Monaco 2019 - S2 - Présentation ARKADIN - TEAMS Adoption - Laurent Pilo
aOS Community
 
aOS Monaco 2019 - C1 - Sécuriser sa messagerie sur Office 365 - Hakim Taoussi...
aOS Monaco 2019 - C1 - Sécuriser sa messagerie sur Office 365 - Hakim Taoussi...aOS Monaco 2019 - C1 - Sécuriser sa messagerie sur Office 365 - Hakim Taoussi...
aOS Monaco 2019 - C1 - Sécuriser sa messagerie sur Office 365 - Hakim Taoussi...
aOS Community
 
aOS Monaco 2019 - B7 - I Developed a SPFx solution, what to do next and how t...
aOS Monaco 2019 - B7 - I Developed a SPFx solution, what to do next and how t...aOS Monaco 2019 - B7 - I Developed a SPFx solution, what to do next and how t...
aOS Monaco 2019 - B7 - I Developed a SPFx solution, what to do next and how t...
aOS Community
 
aOS Monaco 2019 - B6 - Mister Governance and Doctor Teams - Jean-François Ber...
aOS Monaco 2019 - B6 - Mister Governance and Doctor Teams - Jean-François Ber...aOS Monaco 2019 - B6 - Mister Governance and Doctor Teams - Jean-François Ber...
aOS Monaco 2019 - B6 - Mister Governance and Doctor Teams - Jean-François Ber...
aOS Community
 
aOS Monaco 2019 - B5 - The good, the bad and the unexpected - a BOT story - K...
aOS Monaco 2019 - B5 - The good, the bad and the unexpected - a BOT story - K...aOS Monaco 2019 - B5 - The good, the bad and the unexpected - a BOT story - K...
aOS Monaco 2019 - B5 - The good, the bad and the unexpected - a BOT story - K...
aOS Community
 
aOS Monaco 2019 - B4 - Three must have workflows with Microsoft Flow - Vlad C...
aOS Monaco 2019 - B4 - Three must have workflows with Microsoft Flow - Vlad C...aOS Monaco 2019 - B4 - Three must have workflows with Microsoft Flow - Vlad C...
aOS Monaco 2019 - B4 - Three must have workflows with Microsoft Flow - Vlad C...
aOS Community
 
aOS Monaco 2019 - B3 - Create purchase request in PowerApps - Robi Voncina
aOS Monaco 2019 - B3 - Create purchase request in PowerApps - Robi VoncinaaOS Monaco 2019 - B3 - Create purchase request in PowerApps - Robi Voncina
aOS Monaco 2019 - B3 - Create purchase request in PowerApps - Robi Voncina
aOS Community
 
aOS Monaco 2019 - B2 - Intégrer la Power Platform avec SharePoint - Patrick G...
aOS Monaco 2019 - B2 - Intégrer la Power Platform avec SharePoint - Patrick G...aOS Monaco 2019 - B2 - Intégrer la Power Platform avec SharePoint - Patrick G...
aOS Monaco 2019 - B2 - Intégrer la Power Platform avec SharePoint - Patrick G...
aOS Community
 
aOS Monaco 2019 - B1 - Construire son infrastructure sur Azure un jeu d'enfan...
aOS Monaco 2019 - B1 - Construire son infrastructure sur Azure un jeu d'enfan...aOS Monaco 2019 - B1 - Construire son infrastructure sur Azure un jeu d'enfan...
aOS Monaco 2019 - B1 - Construire son infrastructure sur Azure un jeu d'enfan...
aOS Community
 
aOS Monaco 2019 - A7 - Sécurisez votre SI et vos services Office 365 partie 2...
aOS Monaco 2019 - A7 - Sécurisez votre SI et vos services Office 365 partie 2...aOS Monaco 2019 - A7 - Sécurisez votre SI et vos services Office 365 partie 2...
aOS Monaco 2019 - A7 - Sécurisez votre SI et vos services Office 365 partie 2...
aOS Community
 
aOS Monaco 2019 - A6 - Sécurisez votre SI et vos services Office 365 partie 1...
aOS Monaco 2019 - A6 - Sécurisez votre SI et vos services Office 365 partie 1...aOS Monaco 2019 - A6 - Sécurisez votre SI et vos services Office 365 partie 1...
aOS Monaco 2019 - A6 - Sécurisez votre SI et vos services Office 365 partie 1...
aOS Community
 

More from aOS Community (20)

Commencer le IaaS sur Azure - aOS Tahiti 03-03-2020
Commencer le IaaS sur Azure - aOS Tahiti 03-03-2020Commencer le IaaS sur Azure - aOS Tahiti 03-03-2020
Commencer le IaaS sur Azure - aOS Tahiti 03-03-2020
 
Migrer vers O365. Quelles stragtégies? - aOS Tahiti 03-03-2020
Migrer vers O365. Quelles stragtégies? - aOS Tahiti 03-03-2020Migrer vers O365. Quelles stragtégies? - aOS Tahiti 03-03-2020
Migrer vers O365. Quelles stragtégies? - aOS Tahiti 03-03-2020
 
Passer des macro Excel à la power plateform - aOS Tahiti 03-03-2020
Passer des macro Excel à la power plateform - aOS Tahiti 03-03-2020Passer des macro Excel à la power plateform - aOS Tahiti 03-03-2020
Passer des macro Excel à la power plateform - aOS Tahiti 03-03-2020
 
Serverless avec azure functions - aOS Tahiti 03-03-2020
Serverless avec azure functions - aOS Tahiti 03-03-2020Serverless avec azure functions - aOS Tahiti 03-03-2020
Serverless avec azure functions - aOS Tahiti 03-03-2020
 
Passer des macro Excel à la power plateform - aOS Nouméa 28-02-2020
Passer des macro Excel à la power plateform - aOS Nouméa 28-02-2020 Passer des macro Excel à la power plateform - aOS Nouméa 28-02-2020
Passer des macro Excel à la power plateform - aOS Nouméa 28-02-2020
 
MS ignite : les nouveautés autour des content services et projet cortex - aOS...
MS ignite : les nouveautés autour des content services et projet cortex - aOS...MS ignite : les nouveautés autour des content services et projet cortex - aOS...
MS ignite : les nouveautés autour des content services et projet cortex - aOS...
 
Cybersecurité dans M365 - aOS Noumea 28-02-2020
Cybersecurité dans M365 - aOS Noumea 28-02-2020Cybersecurité dans M365 - aOS Noumea 28-02-2020
Cybersecurité dans M365 - aOS Noumea 28-02-2020
 
Introduction a Power Automate - aOS Nouméa 28-02-2020
Introduction a Power Automate  - aOS Nouméa 28-02-2020 Introduction a Power Automate  - aOS Nouméa 28-02-2020
Introduction a Power Automate - aOS Nouméa 28-02-2020
 
aOS Monaco 2019 - S3 - Présentation Varonis - Cloud Data Protection - Benjami...
aOS Monaco 2019 - S3 - Présentation Varonis - Cloud Data Protection - Benjami...aOS Monaco 2019 - S3 - Présentation Varonis - Cloud Data Protection - Benjami...
aOS Monaco 2019 - S3 - Présentation Varonis - Cloud Data Protection - Benjami...
 
aOS Monaco 2019 - S2 - Présentation ARKADIN - TEAMS Adoption - Laurent Pilo
aOS Monaco 2019 - S2 - Présentation ARKADIN - TEAMS Adoption - Laurent PiloaOS Monaco 2019 - S2 - Présentation ARKADIN - TEAMS Adoption - Laurent Pilo
aOS Monaco 2019 - S2 - Présentation ARKADIN - TEAMS Adoption - Laurent Pilo
 
aOS Monaco 2019 - C1 - Sécuriser sa messagerie sur Office 365 - Hakim Taoussi...
aOS Monaco 2019 - C1 - Sécuriser sa messagerie sur Office 365 - Hakim Taoussi...aOS Monaco 2019 - C1 - Sécuriser sa messagerie sur Office 365 - Hakim Taoussi...
aOS Monaco 2019 - C1 - Sécuriser sa messagerie sur Office 365 - Hakim Taoussi...
 
aOS Monaco 2019 - B7 - I Developed a SPFx solution, what to do next and how t...
aOS Monaco 2019 - B7 - I Developed a SPFx solution, what to do next and how t...aOS Monaco 2019 - B7 - I Developed a SPFx solution, what to do next and how t...
aOS Monaco 2019 - B7 - I Developed a SPFx solution, what to do next and how t...
 
aOS Monaco 2019 - B6 - Mister Governance and Doctor Teams - Jean-François Ber...
aOS Monaco 2019 - B6 - Mister Governance and Doctor Teams - Jean-François Ber...aOS Monaco 2019 - B6 - Mister Governance and Doctor Teams - Jean-François Ber...
aOS Monaco 2019 - B6 - Mister Governance and Doctor Teams - Jean-François Ber...
 
aOS Monaco 2019 - B5 - The good, the bad and the unexpected - a BOT story - K...
aOS Monaco 2019 - B5 - The good, the bad and the unexpected - a BOT story - K...aOS Monaco 2019 - B5 - The good, the bad and the unexpected - a BOT story - K...
aOS Monaco 2019 - B5 - The good, the bad and the unexpected - a BOT story - K...
 
aOS Monaco 2019 - B4 - Three must have workflows with Microsoft Flow - Vlad C...
aOS Monaco 2019 - B4 - Three must have workflows with Microsoft Flow - Vlad C...aOS Monaco 2019 - B4 - Three must have workflows with Microsoft Flow - Vlad C...
aOS Monaco 2019 - B4 - Three must have workflows with Microsoft Flow - Vlad C...
 
aOS Monaco 2019 - B3 - Create purchase request in PowerApps - Robi Voncina
aOS Monaco 2019 - B3 - Create purchase request in PowerApps - Robi VoncinaaOS Monaco 2019 - B3 - Create purchase request in PowerApps - Robi Voncina
aOS Monaco 2019 - B3 - Create purchase request in PowerApps - Robi Voncina
 
aOS Monaco 2019 - B2 - Intégrer la Power Platform avec SharePoint - Patrick G...
aOS Monaco 2019 - B2 - Intégrer la Power Platform avec SharePoint - Patrick G...aOS Monaco 2019 - B2 - Intégrer la Power Platform avec SharePoint - Patrick G...
aOS Monaco 2019 - B2 - Intégrer la Power Platform avec SharePoint - Patrick G...
 
aOS Monaco 2019 - B1 - Construire son infrastructure sur Azure un jeu d'enfan...
aOS Monaco 2019 - B1 - Construire son infrastructure sur Azure un jeu d'enfan...aOS Monaco 2019 - B1 - Construire son infrastructure sur Azure un jeu d'enfan...
aOS Monaco 2019 - B1 - Construire son infrastructure sur Azure un jeu d'enfan...
 
aOS Monaco 2019 - A7 - Sécurisez votre SI et vos services Office 365 partie 2...
aOS Monaco 2019 - A7 - Sécurisez votre SI et vos services Office 365 partie 2...aOS Monaco 2019 - A7 - Sécurisez votre SI et vos services Office 365 partie 2...
aOS Monaco 2019 - A7 - Sécurisez votre SI et vos services Office 365 partie 2...
 
aOS Monaco 2019 - A6 - Sécurisez votre SI et vos services Office 365 partie 1...
aOS Monaco 2019 - A6 - Sécurisez votre SI et vos services Office 365 partie 1...aOS Monaco 2019 - A6 - Sécurisez votre SI et vos services Office 365 partie 1...
aOS Monaco 2019 - A6 - Sécurisez votre SI et vos services Office 365 partie 1...
 

Recently uploaded

Freshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-EfficiencyFreshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
ScyllaDB
 
Y-Combinator seed pitch deck template PP
Y-Combinator seed pitch deck template PPY-Combinator seed pitch deck template PP
Y-Combinator seed pitch deck template PP
c5vrf27qcz
 
Programming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup SlidesProgramming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup Slides
Zilliz
 
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development ProvidersYour One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
akankshawande
 
JavaLand 2024: Application Development Green Masterplan
JavaLand 2024: Application Development Green MasterplanJavaLand 2024: Application Development Green Masterplan
JavaLand 2024: Application Development Green Masterplan
Miro Wengner
 
Harnessing the Power of NLP and Knowledge Graphs for Opioid Research
Harnessing the Power of NLP and Knowledge Graphs for Opioid ResearchHarnessing the Power of NLP and Knowledge Graphs for Opioid Research
Harnessing the Power of NLP and Knowledge Graphs for Opioid Research
Neo4j
 
The Microsoft 365 Migration Tutorial For Beginner.pptx
The Microsoft 365 Migration Tutorial For Beginner.pptxThe Microsoft 365 Migration Tutorial For Beginner.pptx
The Microsoft 365 Migration Tutorial For Beginner.pptx
operationspcvita
 
Monitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdfMonitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdf
Tosin Akinosho
 
Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)
Jakub Marek
 
Introduction of Cybersecurity with OSS at Code Europe 2024
Introduction of Cybersecurity with OSS  at Code Europe 2024Introduction of Cybersecurity with OSS  at Code Europe 2024
Introduction of Cybersecurity with OSS at Code Europe 2024
Hiroshi SHIBATA
 
Generating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and MilvusGenerating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and Milvus
Zilliz
 
GraphRAG for LifeSciences Hands-On with the Clinical Knowledge Graph
GraphRAG for LifeSciences Hands-On with the Clinical Knowledge GraphGraphRAG for LifeSciences Hands-On with the Clinical Knowledge Graph
GraphRAG for LifeSciences Hands-On with the Clinical Knowledge Graph
Neo4j
 
Taking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdfTaking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdf
ssuserfac0301
 
Crafting Excellence: A Comprehensive Guide to iOS Mobile App Development Serv...
Crafting Excellence: A Comprehensive Guide to iOS Mobile App Development Serv...Crafting Excellence: A Comprehensive Guide to iOS Mobile App Development Serv...
Crafting Excellence: A Comprehensive Guide to iOS Mobile App Development Serv...
Pitangent Analytics & Technology Solutions Pvt. Ltd
 
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
saastr
 
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
Alex Pruden
 
Northern Engraving | Nameplate Manufacturing Process - 2024
Northern Engraving | Nameplate Manufacturing Process - 2024Northern Engraving | Nameplate Manufacturing Process - 2024
Northern Engraving | Nameplate Manufacturing Process - 2024
Northern Engraving
 
Nordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptxNordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptx
MichaelKnudsen27
 
Astute Business Solutions | Oracle Cloud Partner |
Astute Business Solutions | Oracle Cloud Partner |Astute Business Solutions | Oracle Cloud Partner |
Astute Business Solutions | Oracle Cloud Partner |
AstuteBusiness
 
Mutation Testing for Task-Oriented Chatbots
Mutation Testing for Task-Oriented ChatbotsMutation Testing for Task-Oriented Chatbots
Mutation Testing for Task-Oriented Chatbots
Pablo Gómez Abajo
 

Recently uploaded (20)

Freshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-EfficiencyFreshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
 
Y-Combinator seed pitch deck template PP
Y-Combinator seed pitch deck template PPY-Combinator seed pitch deck template PP
Y-Combinator seed pitch deck template PP
 
Programming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup SlidesProgramming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup Slides
 
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development ProvidersYour One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
 
JavaLand 2024: Application Development Green Masterplan
JavaLand 2024: Application Development Green MasterplanJavaLand 2024: Application Development Green Masterplan
JavaLand 2024: Application Development Green Masterplan
 
Harnessing the Power of NLP and Knowledge Graphs for Opioid Research
Harnessing the Power of NLP and Knowledge Graphs for Opioid ResearchHarnessing the Power of NLP and Knowledge Graphs for Opioid Research
Harnessing the Power of NLP and Knowledge Graphs for Opioid Research
 
The Microsoft 365 Migration Tutorial For Beginner.pptx
The Microsoft 365 Migration Tutorial For Beginner.pptxThe Microsoft 365 Migration Tutorial For Beginner.pptx
The Microsoft 365 Migration Tutorial For Beginner.pptx
 
Monitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdfMonitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdf
 
Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)
 
Introduction of Cybersecurity with OSS at Code Europe 2024
Introduction of Cybersecurity with OSS  at Code Europe 2024Introduction of Cybersecurity with OSS  at Code Europe 2024
Introduction of Cybersecurity with OSS at Code Europe 2024
 
Generating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and MilvusGenerating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and Milvus
 
GraphRAG for LifeSciences Hands-On with the Clinical Knowledge Graph
GraphRAG for LifeSciences Hands-On with the Clinical Knowledge GraphGraphRAG for LifeSciences Hands-On with the Clinical Knowledge Graph
GraphRAG for LifeSciences Hands-On with the Clinical Knowledge Graph
 
Taking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdfTaking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdf
 
Crafting Excellence: A Comprehensive Guide to iOS Mobile App Development Serv...
Crafting Excellence: A Comprehensive Guide to iOS Mobile App Development Serv...Crafting Excellence: A Comprehensive Guide to iOS Mobile App Development Serv...
Crafting Excellence: A Comprehensive Guide to iOS Mobile App Development Serv...
 
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
 
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
 
Northern Engraving | Nameplate Manufacturing Process - 2024
Northern Engraving | Nameplate Manufacturing Process - 2024Northern Engraving | Nameplate Manufacturing Process - 2024
Northern Engraving | Nameplate Manufacturing Process - 2024
 
Nordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptxNordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptx
 
Astute Business Solutions | Oracle Cloud Partner |
Astute Business Solutions | Oracle Cloud Partner |Astute Business Solutions | Oracle Cloud Partner |
Astute Business Solutions | Oracle Cloud Partner |
 
Mutation Testing for Task-Oriented Chatbots
Mutation Testing for Task-Oriented ChatbotsMutation Testing for Task-Oriented Chatbots
Mutation Testing for Task-Oriented Chatbots
 

2019 05-16 aOS Luxembourg - 5 - Unchain your apps capabilities with Microsoft Graph - Yannick Plenevaux

  • 1. Unchain your app’s capabilities with Microsoft Graph Yannick Plenevaux yp_code
  • 2. aOS Luxembourg 16 mai 2019 Yannick Plenevaux SharePoint & Office 365 Architect MCSD App Builder @ yannick.plenevaux@pvx-solutions.com @yp_code https://ypcode.wordpress.com Founder of PVX Solutions https://www.pvx-solutions.com
  • 3. aOS Luxembourg 16 mai 2019 Agenda  Corporate data  The Microsoft Graph API  The Graph Explorer  Security  Permissions  Authorization Flow  Create your app !  Microsoft Graph in SPFx solutions  Q&A
  • 4. aOS Luxembourg 16 mai 2019 Corporate data Me E-mails Events Documents Tasks Content Groups People Organization Conversations / Chats Devices Activities
  • 5. aOS Luxembourg 16 mai 2019 Microsoft 365 data Me E-mails Events Documents Tasks Content Groups People Organization Conversations / Chats Devices Activities
  • 6. aOS Luxembourg 16 mai 2019 The Microsoft Graph API One API to access and manipulate all corporate data in your app ! V1.0 : Stable and fully supported by Microsoft for Production usage Beta : Preview of upcoming capabilities.  Subject to changes  Not supported by Microsoft for Production usage
  • 7. aOS Luxembourg 16 mai 2019 The Microsoft Graph API  Only on Microsoft 365 / Office 365 (Cloud)  Will most likely never come fully on premises !  Why ?  It continuously evolves (release each month)  It uses a lot of machine learning algorithms on interconnected data from various Microsoft services  Would be very difficult to setup and maintain…  It is THE Microsoft Cloud “killer app”  !  However, some hybrid scenarios are feasible  Announced at Build 2019 : Include your local Data in Microsoft Graph
  • 8. aOS Luxembourg 16 mai 2019 The Microsoft Graph API https://graph.microsoft.com  Implements OData syntax in most cases  $filter  $select  $skip / $top  $expand  $orderby  …  RESTful = HTTP calls  Read  HTTP GET  Create  HTTP POST  Update  HTTP PUT / PATCH  Delete  HTTP DELETE Get my 3 next events GET https://graph.microsoft.com/v1.0/me/events?$filter=start/dateTime gt ‘2019-05-16T00:00:00’&$orderby=start/dateTime asc&$top=3 Get the files in my OneDrive folder GET https://graph.microsoft.com/v1.0/me/drive/root/children
  • 9. aOS Luxembourg 16 mai 2019 The Microsoft Graph API  Accepts JSON as arguments and return JSON responses  Can be used in any technology with HTTP capabilities  API client implementation in various technologies https://developer.microsoft.com/en-us/graph/get-started
  • 10. aOS Luxembourg 16 mai 2019 The Graph Explorer  Test the Microsoft Graph API  In a playground context (read-only)  With your tenant real data https://developer.microsoft.com/en-us/graph/graph-explorer
  • 11. aOS Luxembourg 16 mai 2019 The Graph Explorer DEMO
  • 12. aOS Luxembourg 16 mai 2019 Security: Permissions  Permissions have to be granted to the application  Delegated permissions  The application performs the actions on behalf of a signed-in user.  “Effective permission” is the least privileged permission between the delegated permission and the real privilege of the user  Application permissions (app-only)  Not signed-in user (background job, automated tasks, …)  Consent has to be given to the application  Delegated permissions  The current user gives consent to the requested permissions  Administrators can give consent for all users  Some permissions require an administrator to give consent  Application permissions  Only administrators can give consent https://docs.microsoft.com/en-us/graph/permissions-reference
  • 13. aOS Luxembourg 16 mai 2019 Security: Authorization flows Azure AD protected Web API Authorization Flow Common usage OpenID Connect Web applications OAuth 2.0 Implicit Grant Client-side applications (JS) OAuth 2.0 Auth Code Native (Desktop, Mobile) applications OAuth 2.0 on-behalf-of Web APIs OAuth 2.0 Client Credentials App-only (Background jobs, …) … The authorization endpoints : https://login.microsoftonline.com/common/oauth2/v2.0 • /authorize (Sign-in) • /token (Get access token) Pass the access token in each Graph HTTP call headers Authorization: Bearer <access token> These authorization flows are mostly handled by the available client APIs ! If not, it can be implemented in any technology with HTTP capabilities common can be replaced by the tenant id to target a specific tenant (e.g. contoso.onmicrosoft.com)
  • 14. aOS Luxembourg 16 mai 2019 Authorization flow Web app Data from API forwarded to user Microsoft Graph
  • 15. aOS Luxembourg 16 mai 2019 Authorization flow Mobile/Desktop app Microsoft Graph 1 hour Access Token expires after 1 hour Refresh token expires after 14 days renewable up to total 90 days
  • 16. aOS Luxembourg 16 mai 2019 Create your app !  In order to access graph from an application  Setup (by Azure AD administrator)  Need to register the app in Azure AD  https://aad.portal.azure.com  App registrations  For Web applications  Need Redirect URI  Need to request the appropriate permissions for the app to work properly  At runtime 1. The user signs in  At first sign-in, the user must give consent to the permissions requested by the application  Administrators can give consent for all users (can also be done from AAD portal)  No “sign-in” in app-only context 2. Get Access Token 3. Call the Microsoft Graph endpoint with the Authorization header set to Bearer <access_token>
  • 17. aOS Luxembourg 16 mai 2019 Create your app ! DEMO
  • 18. aOS Luxembourg 16 mai 2019 Microsoft Graph in SPFx solutions  SPFx v1.6 (Aug. 2018)  Call to AAD registered app natively supported  Dedicated feature support for Microsoft Graph  As in any app using MS Graph  The appropriate permissions needs to be requested  The permissions must be granted by a SharePoint global administrator  No need to access Azure AD portal  SPFx integrated library to automatically handle the access token internal plumbing
  • 19. aOS Luxembourg 16 mai 2019 Microsoft Graph in SPFx solutions DEMO
  • 20. aOS Luxembourg 16 mai 2019 Microsoft Graph in SPFx solutions Leverage your corporate data using Microsoft Graph  In your SharePoint customizations  In your custom Microsoft Teams Tabs  Soon in your Office add-ins ! ( Word, Excel, PowerPoint, Outlook)  Public announcements are expected at SPC this month ! Using ONE Framework and even ONE codebase
  • 21. aOS Luxembourg 16 mai 2019 Unchain your app’s capabilities with Microsoft Graph Questions ?
  • 22. Merci à notre sponsor !