SlideShare a Scribd company logo
1
aOS Moscow
9/7/2019
Расширение
Microsoft Graph
Vitaly Zhukov
◦ THANKS TO OUR SPONSORS
2
WebDiamond
Привет!
Меня зовут Виталий Жуков
Я давно занимаюсь Office 365/SharePoint
и мне есть что рассказать
office365moscow.ru
3
5
Microsoft 365
Windows 10
Device Management (Intune) + SecurityE5E1 E3
Microsoft 365
Phone System
Audio Conferencing
Advanced Threat Protection
Cloud App Security
Advanced eDiscovery
Customer Lockbox
Advanced Data Governance
Service Encryption
Mobile Device Management
Mobile Application Management
Windows Defender SmartScreen
Conditional Access
Information Protection
Threat Protection
7
Microsoft Graph
Без Microsoft Graph
Microsoft Graph
Microsoft Graph
Microsoft Graph
Microsoft Graph
Microsoft Graph. API
https://graph.microsoft.com/{version}/{resource}/{id}/{query}?{parameters}
https://graph.microsoft.com/1.0/users/v.zhukov@contoso.com/events
Список событий пользователя
https://graph.microsoft.com/1.0/me/joinedTeams
Список групп Teams текущего пользователя
https://graph.microsoft.com/1.0/users/v.zhukov@contoso.com/planner/tasks
Задачи пользователя в Planner
Формат запроса (GET|POST|PATCH|DELETE)
12
Приложения и Права
Microsoft Graph. Приложения
Приложение доступно в рамках одного тенанта
Роли, Права, Политики
Доступно как для Azure AD, так и для персональных Microsoft account
Multi-tenant
Single-tenant
Microsoft Graph. Права
{Resource}.{Action}.{Scope}
AppCatalog.ReadWrite.All
Чтение и запись во всех каталогах приложений
Именование прав
Bookings.Manage
Чтение и запись сведений о встречах, компаниях, клиентах, службах и персонале
Calendars.Read
Чтение пользовательских календарей
Microsoft Graph. Права
Delegated Permissions Application Permissions
Delegated
permissions
User
privileges
Application
permissions
Effective Permissions
16
Open Extension
Microsoft Graph. Создание расширения
{
"@odata.type“: "microsoft.graph.openTypeExtension",
"extensionName": "Com.VitalyZhukov.Social",
"Facebook": "http://www.facebook.com/zhukovv",
"Linkedin": "http://ru.linkedin.com/in/zhukovvitaly",
"Twitter": "https://twitter.com/vzhukov86",
"UpdateDate": "2019-07-20T00:00:00.000Z"
}
POST: https://graph.microsoft.com/v1.0/users/user@ms365.tech/extensions
Microsoft Graph. Обновление расширения
{
"@odata.type“: "microsoft.graph.openTypeExtension",
"extensionName": "Com.VitalyZhukov.Social",
"Facebook": "http://www.facebook.com/zhukovv",
"Linkedin": "http://ru.linkedin.com/in/zhukovvitaly",
"Twitter": "https://twitter.com/vzhukov86",
"UpdateDate": "2019-07-20T00:00:00.000Z"
}
PATCH:
https://graph.microsoft.com/v1.0/users/user@ms365.tech/extensions/Com.VitalyZhukov.Social
Microsoft Graph. Чтение расширения
{
"@odata.type“: "microsoft.graph.openTypeExtension",
"extensionName": "Com.VitalyZhukov.Social",
"Facebook": "http://www.facebook.com/zhukovv",
"Linkedin": "http://ru.linkedin.com/in/zhukovvitaly",
"Twitter": "https://twitter.com/vzhukov86",
"UpdateDate": "2019-07-20T00:00:00.000Z"
}
GET: https://graph.microsoft.com/v1.0/users/user@ms365.tech/extensions/Com.VitalyZhukov.Social
Microsoft Graph. Чтение расширения
{
"displayName": "Vitaly Zhukov",
"surname": "Zhukov",
"extensions": [{
"@odata.type": "#microsoft.graph.openTypeExtension",
"extensionName": "Com.VitalyZhukov.Social",
"Facebook": "http://www.facebook.com/zhukovv",
"Linkedin": "http://ru.linkedin.com/in/zhukovvitaly",
"Twitter": "https://twitter.com/vzhukov86",
"UpdateDate@odata.type": "#DateTimeOffset",
"UpdateDate": "2019-07-21T00:00:00Z",
"id": "Com.VitalyZhukov.Social"
}]
}
GET: https://graph.microsoft.com/v1.0/users/
?$filter=surname eq 'Zhukov’
&$expand=extensions($filter=id eq 'Com.VitalyZhukov.Social')
21
Schema Extension
Graph. Создание расширения схемы
{
"id": "aosextensions",
"description": "Demo extension",
"targetTypes": ["User"],
"owner" : "e41aa88d-385e-4973-9211-7f66bd8930bb",
"properties": [
{"name": "ticketid", "type": "String"},
{"name": "trackid", "type": "Integer"}
]
}
POST: https://graph.microsoft.com/v1.0/schemaExtensions
Graph. Активация расширения схемы
{
"status": "Available",
"owner" : "e41aa88d-385e-4973-9211-7f66bd8930bb"
}
PATCH: https://graph.microsoft.com/v1.0/schemaExtensions/ext3doh72f4_aosextensions
Graph. Редактирование расширения схемы
{
"displayName": "Vitaly Zhukov",
"ext3doh72f4_aosextensions":{
"ticketid": "001",
"trackid": 1
}
}
PATCH: https://graph.microsoft.com/v1.0/users/v.zhukov@ms365.tech
Graph. Чтение расширения схемы
{
"id": "d7be6981-f700-4528-9180-9be5276f7a14",
"ext3doh72f4_aosextensions": {
"@odata.type": "#microsoft.graph.ComplexExtensionValue",
"trackid": 1,
"ticketid": "001"
}
}
GET: https://graph.microsoft.com/v1.0/users/v.zhukov@ms365.tech
?$filter=surname eq 'Zhukov'
&$select=ext3doh72f4_aosextensions
26
Выводы
Microsoft Graph. Права
Delegated Permissions
• Получение доступа к данным от имени пользователя
• Web-приложения, приложения для мобильных девайсов
Application Permissions
• Получение доступа ко всем данным
• Только для IT-администраторов
Open Extension vs Schema Extension
Open Extension
• Нет типизации свойств
• Не требует приложения
• Не имеет статуса
Schema Extension
• Явная типизация и перечень
свойств
• Требуется приложение
владелец
• Статус расширения
• InDevelopment
• Active
Microsoft Graph. Throttling
HTTP 429 Too Many Requests
• Повторный запрос только после времени, указанного в заголовке
Retry-After
• При массовых операциях, 429 статус может быть выдан на
конкретную операцию, а не на весь batch
30
Спасибо за внимание!

More Related Content

Similar to aOS Moscow - R5 - Extend Microsoft graph to fit your business

Bada
BadaBada
Bada
annakysil
 
Разработка мобильных игр на HTML5 и JavaScript
Разработка мобильных игр на HTML5 и JavaScriptРазработка мобильных игр на HTML5 и JavaScript
Разработка мобильных игр на HTML5 и JavaScript
Tatiana Smetanina
 
it_portfolio
it_portfolioit_portfolio
it_portfolio
club-inno
 
Web весна 2013 лекция 10
Web весна 2013 лекция 10Web весна 2013 лекция 10
Web весна 2013 лекция 10Technopark
 
Web-квест по информатике
Web-квест по информатикеWeb-квест по информатике
Web-квест по информатике
Viktoriya Donchik
 
сервисы веб 2.0 в практике работы педагога
сервисы веб 2.0 в практике работы педагогасервисы веб 2.0 в практике работы педагога
сервисы веб 2.0 в практике работы педагогаAntonova_Anna
 
Api Microsoft Loghechkin
Api Microsoft LoghechkinApi Microsoft Loghechkin
Api Microsoft LoghechkinAlex Ilyin
 
сервисы веб 2.0 в практике работы педагога Антонова Анна Александровна Кострома
сервисы веб 2.0 в практике работы педагога  Антонова Анна Александровна Костромасервисы веб 2.0 в практике работы педагога  Антонова Анна Александровна Кострома
сервисы веб 2.0 в практике работы педагога Антонова Анна Александровна КостромаAntonova_Anna
 
КРИ 2014: Расширение возможностей вашей игры с помощью Microsoft Azure
КРИ 2014: Расширение возможностей вашей игры с помощью Microsoft AzureКРИ 2014: Расширение возможностей вашей игры с помощью Microsoft Azure
КРИ 2014: Расширение возможностей вашей игры с помощью Microsoft Azure
Microsoft
 
Test
TestTest
Test
alln1ce
 
Microsoft reConnect
Microsoft reConnect Microsoft reConnect
Microsoft reConnect
Microsoft
 
Share point 2016 Что нового
Share point 2016 Что новогоShare point 2016 Что нового
Share point 2016 Что нового
Stas Vyschepan
 
Bootstrap 3. Адаптивная верстка для WordPress
Bootstrap 3. Адаптивная верстка для WordPressBootstrap 3. Адаптивная верстка для WordPress
Bootstrap 3. Адаптивная верстка для WordPress
Igor Sazonov
 
Техническое задание на портал
Техническое задание на порталТехническое задание на портал
Техническое задание на портал
EDISON Software Development Centre
 
Антон Валюх - Использование паттерна Mvvm в android
Антон Валюх - Использование паттерна Mvvm в androidАнтон Валюх - Использование паттерна Mvvm в android
Антон Валюх - Использование паттерна Mvvm в android
DataArt
 
Presentation JavaME
Presentation JavaMEPresentation JavaME
Presentation JavaME
scassau
 
Qualium Systems – Introduction
Qualium Systems – IntroductionQualium Systems – Introduction
Qualium Systems – Introduction
Kostiantyn Levin
 
Как мы делали оффлайн-карты под Windows Phone — Александр Волохин, 2ГИС
Как мы делали оффлайн-карты под Windows Phone — Александр Волохин, 2ГИСКак мы делали оффлайн-карты под Windows Phone — Александр Волохин, 2ГИС
Как мы делали оффлайн-карты под Windows Phone — Александр Волохин, 2ГИС
2ГИС Технологии
 

Similar to aOS Moscow - R5 - Extend Microsoft graph to fit your business (20)

Mobile credentials
Mobile credentialsMobile credentials
Mobile credentials
 
Bada
BadaBada
Bada
 
Разработка мобильных игр на HTML5 и JavaScript
Разработка мобильных игр на HTML5 и JavaScriptРазработка мобильных игр на HTML5 и JavaScript
Разработка мобильных игр на HTML5 и JavaScript
 
it_portfolio
it_portfolioit_portfolio
it_portfolio
 
Web весна 2013 лекция 10
Web весна 2013 лекция 10Web весна 2013 лекция 10
Web весна 2013 лекция 10
 
Web-квест по информатике
Web-квест по информатикеWeb-квест по информатике
Web-квест по информатике
 
сервисы веб 2.0 в практике работы педагога
сервисы веб 2.0 в практике работы педагогасервисы веб 2.0 в практике работы педагога
сервисы веб 2.0 в практике работы педагога
 
Api Microsoft Loghechkin
Api Microsoft LoghechkinApi Microsoft Loghechkin
Api Microsoft Loghechkin
 
сервисы веб 2.0 в практике работы педагога Антонова Анна Александровна Кострома
сервисы веб 2.0 в практике работы педагога  Антонова Анна Александровна Костромасервисы веб 2.0 в практике работы педагога  Антонова Анна Александровна Кострома
сервисы веб 2.0 в практике работы педагога Антонова Анна Александровна Кострома
 
КРИ 2014: Расширение возможностей вашей игры с помощью Microsoft Azure
КРИ 2014: Расширение возможностей вашей игры с помощью Microsoft AzureКРИ 2014: Расширение возможностей вашей игры с помощью Microsoft Azure
КРИ 2014: Расширение возможностей вашей игры с помощью Microsoft Azure
 
Test
TestTest
Test
 
Microsoft reConnect
Microsoft reConnect Microsoft reConnect
Microsoft reConnect
 
Share point 2016 Что нового
Share point 2016 Что новогоShare point 2016 Что нового
Share point 2016 Что нового
 
Bootstrap 3. Адаптивная верстка для WordPress
Bootstrap 3. Адаптивная верстка для WordPressBootstrap 3. Адаптивная верстка для WordPress
Bootstrap 3. Адаптивная верстка для WordPress
 
Intro
IntroIntro
Intro
 
Техническое задание на портал
Техническое задание на порталТехническое задание на портал
Техническое задание на портал
 
Антон Валюх - Использование паттерна Mvvm в android
Антон Валюх - Использование паттерна Mvvm в androidАнтон Валюх - Использование паттерна Mvvm в android
Антон Валюх - Использование паттерна Mvvm в android
 
Presentation JavaME
Presentation JavaMEPresentation JavaME
Presentation JavaME
 
Qualium Systems – Introduction
Qualium Systems – IntroductionQualium Systems – Introduction
Qualium Systems – Introduction
 
Как мы делали оффлайн-карты под Windows Phone — Александр Волохин, 2ГИС
Как мы делали оффлайн-карты под Windows Phone — Александр Волохин, 2ГИСКак мы делали оффлайн-карты под Windows Phone — Александр Волохин, 2ГИС
Как мы делали оффлайн-карты под Windows Phone — Александр Волохин, 2ГИС
 

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...
 

aOS Moscow - R5 - Extend Microsoft graph to fit your business

  • 2. ◦ THANKS TO OUR SPONSORS 2 WebDiamond
  • 3. Привет! Меня зовут Виталий Жуков Я давно занимаюсь Office 365/SharePoint и мне есть что рассказать office365moscow.ru 3
  • 5. Windows 10 Device Management (Intune) + SecurityE5E1 E3 Microsoft 365 Phone System Audio Conferencing Advanced Threat Protection Cloud App Security Advanced eDiscovery Customer Lockbox Advanced Data Governance Service Encryption Mobile Device Management Mobile Application Management Windows Defender SmartScreen Conditional Access Information Protection Threat Protection
  • 10. Microsoft Graph. API https://graph.microsoft.com/{version}/{resource}/{id}/{query}?{parameters} https://graph.microsoft.com/1.0/users/v.zhukov@contoso.com/events Список событий пользователя https://graph.microsoft.com/1.0/me/joinedTeams Список групп Teams текущего пользователя https://graph.microsoft.com/1.0/users/v.zhukov@contoso.com/planner/tasks Задачи пользователя в Planner Формат запроса (GET|POST|PATCH|DELETE)
  • 12. Microsoft Graph. Приложения Приложение доступно в рамках одного тенанта Роли, Права, Политики Доступно как для Azure AD, так и для персональных Microsoft account Multi-tenant Single-tenant
  • 13. Microsoft Graph. Права {Resource}.{Action}.{Scope} AppCatalog.ReadWrite.All Чтение и запись во всех каталогах приложений Именование прав Bookings.Manage Чтение и запись сведений о встречах, компаниях, клиентах, службах и персонале Calendars.Read Чтение пользовательских календарей
  • 14. Microsoft Graph. Права Delegated Permissions Application Permissions Delegated permissions User privileges Application permissions Effective Permissions
  • 16. Microsoft Graph. Создание расширения { "@odata.type“: "microsoft.graph.openTypeExtension", "extensionName": "Com.VitalyZhukov.Social", "Facebook": "http://www.facebook.com/zhukovv", "Linkedin": "http://ru.linkedin.com/in/zhukovvitaly", "Twitter": "https://twitter.com/vzhukov86", "UpdateDate": "2019-07-20T00:00:00.000Z" } POST: https://graph.microsoft.com/v1.0/users/user@ms365.tech/extensions
  • 17. Microsoft Graph. Обновление расширения { "@odata.type“: "microsoft.graph.openTypeExtension", "extensionName": "Com.VitalyZhukov.Social", "Facebook": "http://www.facebook.com/zhukovv", "Linkedin": "http://ru.linkedin.com/in/zhukovvitaly", "Twitter": "https://twitter.com/vzhukov86", "UpdateDate": "2019-07-20T00:00:00.000Z" } PATCH: https://graph.microsoft.com/v1.0/users/user@ms365.tech/extensions/Com.VitalyZhukov.Social
  • 18. Microsoft Graph. Чтение расширения { "@odata.type“: "microsoft.graph.openTypeExtension", "extensionName": "Com.VitalyZhukov.Social", "Facebook": "http://www.facebook.com/zhukovv", "Linkedin": "http://ru.linkedin.com/in/zhukovvitaly", "Twitter": "https://twitter.com/vzhukov86", "UpdateDate": "2019-07-20T00:00:00.000Z" } GET: https://graph.microsoft.com/v1.0/users/user@ms365.tech/extensions/Com.VitalyZhukov.Social
  • 19. Microsoft Graph. Чтение расширения { "displayName": "Vitaly Zhukov", "surname": "Zhukov", "extensions": [{ "@odata.type": "#microsoft.graph.openTypeExtension", "extensionName": "Com.VitalyZhukov.Social", "Facebook": "http://www.facebook.com/zhukovv", "Linkedin": "http://ru.linkedin.com/in/zhukovvitaly", "Twitter": "https://twitter.com/vzhukov86", "UpdateDate@odata.type": "#DateTimeOffset", "UpdateDate": "2019-07-21T00:00:00Z", "id": "Com.VitalyZhukov.Social" }] } GET: https://graph.microsoft.com/v1.0/users/ ?$filter=surname eq 'Zhukov’ &$expand=extensions($filter=id eq 'Com.VitalyZhukov.Social')
  • 21. Graph. Создание расширения схемы { "id": "aosextensions", "description": "Demo extension", "targetTypes": ["User"], "owner" : "e41aa88d-385e-4973-9211-7f66bd8930bb", "properties": [ {"name": "ticketid", "type": "String"}, {"name": "trackid", "type": "Integer"} ] } POST: https://graph.microsoft.com/v1.0/schemaExtensions
  • 22. Graph. Активация расширения схемы { "status": "Available", "owner" : "e41aa88d-385e-4973-9211-7f66bd8930bb" } PATCH: https://graph.microsoft.com/v1.0/schemaExtensions/ext3doh72f4_aosextensions
  • 23. Graph. Редактирование расширения схемы { "displayName": "Vitaly Zhukov", "ext3doh72f4_aosextensions":{ "ticketid": "001", "trackid": 1 } } PATCH: https://graph.microsoft.com/v1.0/users/v.zhukov@ms365.tech
  • 24. Graph. Чтение расширения схемы { "id": "d7be6981-f700-4528-9180-9be5276f7a14", "ext3doh72f4_aosextensions": { "@odata.type": "#microsoft.graph.ComplexExtensionValue", "trackid": 1, "ticketid": "001" } } GET: https://graph.microsoft.com/v1.0/users/v.zhukov@ms365.tech ?$filter=surname eq 'Zhukov' &$select=ext3doh72f4_aosextensions
  • 26. Microsoft Graph. Права Delegated Permissions • Получение доступа к данным от имени пользователя • Web-приложения, приложения для мобильных девайсов Application Permissions • Получение доступа ко всем данным • Только для IT-администраторов
  • 27. Open Extension vs Schema Extension Open Extension • Нет типизации свойств • Не требует приложения • Не имеет статуса Schema Extension • Явная типизация и перечень свойств • Требуется приложение владелец • Статус расширения • InDevelopment • Active
  • 28. Microsoft Graph. Throttling HTTP 429 Too Many Requests • Повторный запрос только после времени, указанного в заголовке Retry-After • При массовых операциях, 429 статус может быть выдан на конкретную операцию, а не на весь batch