SlideShare une entreprise Scribd logo
1  sur  84
An introduction to Microsoft Graph for
Developers
Part I - Getting started
Identity Developer Advisors
October 17th, 2019
Kalyan Krishna
Sr Program Manager-Identity Division
kalyankrishna1
NDA community efforts for developers
 New feature descriptions/ Group Sessions
 Great opportunity to learn what’s new and provide feedback to our development
plans.
 Typically Wed, 9AM PT - recorded for feedback collection.
 Next session, Nov 21st :
 An introduction to Microsoft Graph for Developers, Part 2 - Advanced topics
Agenda
 What is Microsoft Graph ?
 Why did we build Microsoft Graph ?
 Common Scenarios
 Developing applications for Microsoft Graph
 Permissions & Consent
 Common application topologies
 SDKs
 The app patterns
 Code walkthrough – Manage Users
 The Big Picture
 Q&A
PAGE 3
Identity and Security Collaborative Engineering
Some background questions …
PAGE 5
Identity and Security Collaborative Engineering
#1 How many of you are aware of Microsoft Graph?
A. I’ve never heard of it before
B. I’ve heard of it, but not sure what it is
C. I’m pretty sure I know what it is … but a refresher wouldn’t hurt …
D. I’ve built apps that use Microsoft Graph
PAGE 6
Identity and Security Collaborative Engineering
#2 Which Microsoft APIs does your app call (currently or planning to)?
a) Microsoft Graph
b) Azure AD Graph
c) Individual Office APIs (Outlook, OneNote, OneDrive, Excel, etc)
d) Azure Service/Resource Manager APIs
e) Other (Please Specify)
f) My app doesn’t call any Microsoft APIs
PAGE 7
Microsoft Graph: gateway to your data in the Microsoft cloud
Discovery
Service
AAD
OneDrive for Business
Outlook
https://api.office.com/discover
https://graph.windows.net/contoso.com/users
https://contoso-
https://outlook.office.com/api/v2.0/Me/Inbox
Too many SDKs, each
with own security,
messaging and data
format requirement.
scattered and
https://graph.windows.net/contoso.com/users
https://graph.windows.net/contoso.com/groups
https://apis.live.net/v5.0/me
https://contoso.sharepoint.com/_api/SP.UserProfiles.PeopleManager/GetMyProperties
https://graph.microsoft.com/v1.0/me/photo
https://outlook.office.com/api/v2.0/me/Messages
https://outlook.office.com/api/v2.0/me/Events
https://contoso-my.sharepoint.com/personal
/yina_contoso_com/_api/v2.0/drive
https://contoso.sharepoint.com/sites
/designCouncil/_api/v2./drive
https://api.onedrive.com/v1.0/drive
https://contoso.sharepoint.com/_api/search/query?Querytext='*'&Prop
erties='GraphQuery:actor(ME,action:1020,or(action:1020,action:1003
,action:1001,action:1024,action:1005,action:1037,action:1039,action
:1036)'&SelectProperties='Docid,Title
https://graph.microsoft.com
Operation Service endpoint
GET my profile https://graph.microsoft.com/v1.0/me
GET my mail https://graph.microsoft.com/v1.0/me/messages
GET my calendar https://graph.microsoft.com/v1.0/me/calendar
GET my contacts https://graph.microsoft.com/v1.0/me/contacts
GET my photo https://graph.microsoft.com/v1.0/me/photo/$value
GET my files https://graph.microsoft.com/v1.0/me/drive/root/children
GET my manager https://graph.microsoft.com/v1.0/me/manager
GET last user to modify file foo.txt https://graph.microsoft.com/v1.0/me/drive/root/children/foo.txt/lastModifiedByUser
GET users in my organization https://graph.microsoft.com/v1.0/users
GET group conversations https://graph.microsoft.com/v1.0/groups/<id>/conversations
GET people related to me https://graph.microsoft.com/beta/me/people
GET my tasks https://graph.microsoft.com/beta/me/tasks
GET my notes https://graph.microsoft.com/beta/me/notes/notebooks
GET files trending around me https://graph.microsoft.com/beta/me/insights/trending
Microsoft NDA Confidential
Identity and Security Collaborative Engineering
DELVE
Microsoft NDA Confidential
Identity and Security Collaborative Engineering
OFFICE.COM
5 steps
https://aka.ms/ge
Try it now..
Microsoft Graph Explorer – https://aka.ms/ge
Verify the
identity of the
End-User
Authentication
Authentication
Users
Apps
Authentication
APIs (Like Graph)
Authentication
APIs
APIs
Authorization
APIs
Authorization
Scope
Scope
extent or range of view,
outlook, application,
operation, effectiveness, etc
Source:
Dictionary.com
Applications
specify the range
of operation they
REQUIRE by
requesting a scope
REQUIRED Only – Never ask for more than the app implements
Applications
specify the range
of operation they
REQUIRE by
requesting a scope
InteractiveAuthenticationProvider authenticationProvider = new InteractiveAuthentica
tionProvider(app,
scopes: new string[] { "user.read", "Directory.Read.All", "user.readwrite.all" });
If it is a REQUEST, the request must be granted or denied
App requests a scope
User is presented a
Permission dialog
listing the scopes
As result we often
refer to scopes as
permissions
App receives, or not,
an Access Token to
use as a Bearer Token
when calling the API
We say the app has
be granted or denied
consent
eyJ0eXAiOiJKV1QiLCJub25jZSI6IkFRQUJBQUFBQUFDRWZleFh4amFtUWIzT2VHUT
RHdWd2STdUZ085c0NEWVc5SlVQMzRaUG1tak5ZRTd5XzJvMTRRbTYtRzBwcXFld
E9JaENadjNFTmtLdGkyZTJTUVJNTjZteWdIbmt2MW1UcFJNQXotbDhRcGlBQSIsIm
FsZyI6IlJTMjU2IiwieDV0IjoiLXN4TUpNTENJRFdNVFB2WnlKNnR4LUNEeHcwIiwia2l
kIjoiLXN4TUpNTENJRFdNVFB2WnlKNnR4LUNEeHcwIn0.eyJhdWQiOiJodHRwczovL2dy
YXBoLm1pY3Jvc29mdC5jb20iLCJpc3MiOiJodHRwczovL3N0cy53aW5kb3dzLm5ldC85NmM5YzY
2Ny1lMGQ2LTQzNzMtYmRlNi1iOTcwOTg5ODQ5NTAvIiwiaWF0IjoxNTUwNzI1NTQyLCJuYmYiOjE
1NTA3MjU1NDIsImV4cCI6MTU1MDcyOTQ0MiwiYWNjdCI6MCwiYWNyIjoiMSIsImFpbyI6IkFTUU
EyLzhLQUFBQWplbUJ5aC9yN29vZzJPZG5LcVc4NGViNU5TSm1adEV6dWcrajBwamhEY2M9IiwiY
W1yIjpbInB3ZCJdLCJhcHBfZGlzcGxheW5hbWUiOiJQZXJtaXNzaW9uRGVtbyIsImFwcGlkIjoiZWUx
ZjcyNGYtMmM3Ni00NjRjLTgyNTgtZDBhZDM1M2YzOGMzIiwiYXBwaWRhY3IiOiIwIiwiZGV2aWNl
aWQiOiI5YjI4ZTY1Zi05Yzc5LTQ4Y2QtYTA1OC01YmY3YWIyZWM1YzkiLCJmYW1pbHlfbmFtZSI6Il
JvYmVydHNvbiIsImdpdmVuX25hbWUiOiJSb2JiaWUiLCJpcGFkZHIiOiI1MC4zNS42NC4xODQiLCJ
uYW1lIjoiUm9iYmllIFJvYmVydHNvbiIsIm9pZCI6ImZkZDBkMGYwLTJiMTQtNDYxNC1hZTc2LWRjO
GZlNzZlYzI3MiIsInBsYXRmIjoiMyIsInB1aWQiOiIxMDAzM0ZGRkFFQThEMzM2Iiwic2NwIjoicHJvZ
mlsZSBvcGVuaWQgZW1haWwgVXNlci5SZWFkIiwic3ViIjoiYXh3c2JWTmVSc2V0bDFMYnp1bmtG
eWxtTlFfaUpPXy1sbTUyd25wcnBqYyIsInRpZCI6Ijk2YzljNjY3LWUwZDYtNDM3My1iZGU2LWI5Nz
A5ODk4NDk1MCIsInVuaXF1ZV9uYW1lIjoicnJAa3lsZXNzdGFnZS5vbm1pY3Jvc29mdC5jb20iLCJ1
cG4iOiJyckBreWxlc3N0YWdlLm9ubWljcm9zb2Z0LmNvbSIsInV0aSI6Imt5Zk11Y18zMjBxZ3FKOEF
scXhBQUEiLCJ2ZXIiOiIxLjAiLCJ4bXNfc3QiOnsic3ViIjoiam9rS0xYcG1CVXo5cDh0YWVzYnVuZmdz
RFhHYjFKZ0Q2NTJtMFV0bjNYcyJ9LCJ4bXNfdGNkdCI6MTUzNzMzNDc1NH0.LmNqF8hbd7Ep
vtKhiAJtbMPanCh6q0SAjgTgFUqP23Sn_m4A2hNfJwZYURpb040jun6JXK7zwFyHvI
E9vMU_veWqn-adrDcS7ATT44jAb-
chrCLxeT0kirc81xSSWh1vY3JEL0esR5zmCK_RiA0xZpOkf7fAASGlyxpUeIrGoFj66PNI
YG3GMuTQP7vye74X13m2z9txcKrGAYQHPvbaz_E2tFCJyc7rQtQNXqURoeTATTIVU
c4ZDxQYOhvaZ0ebGhsYewv5V4SwJjPWNboE2_PNiNNWLxAFqzm47oYQe34VS7JL
d8zjYbr375ojjNQfBDfQ2EeuuoA362BD9c1_NQ
xmlHttp.setRequestHeader('Authorization', 'Bearer ' + accessToken);
Permission Display String Description
User.Read Sign-in and read
user profile
Allows users to sign-in to the app, and allows the app to read the profile of
signed-in users. It also allows the app to read basic company information of
signed-in users.
User.ReadWrite Read and write
access to user
profile
Allows the app to read the signed-in user's full profile. It also allows the app to
update the signed-in user's profile information on their behalf.
User.ReadBasic.All Read all users'
basic profiles
Allows the app to read a basic set of profile properties of other users in your
organization on behalf of the signed-in user. This includes display name, first and
last name, email address, open extensions and photo. Also allows the app to read
the full profile of the signed-in user.
Permission Display String Description
User.Read Sign-in and read
user profile
Allows users to sign-in to the app, and allows the app to read the profile of
signed-in users. It also allows the app to read basic company information of
signed-in users.
User.ReadWrite Read and write
access to user
profile
Allows the app to read the signed-in user's full profile. It also allows the app to
update the signed-in user's profile information on their behalf.
User.ReadBasic.All Read all users'
basic profiles
Allows the app to read a basic set of profile properties of other users in your
organization on behalf of the signed-in user. This includes display name, first and
last name, email address, open extensions and photo. Also allows the app to read
the full profile of the signed-in user.
User.Read.All Read all users' full
profiles
Allows the app to read the full set of profile properties, reports, and managers of
other users in your organization, on behalf of the signed-in user.
User.ReadWrite.All Read and write all
users' full profiles
Allows the app to read and write the full set of profile properties, reports, and
managers of other users in your organization, on behalf of the signed-in user.
Also allows the app to create and delete users as well as reset user passwords on
behalf of the signed-in user.
Permission Display String Description
Admin
Consent
Required
User.Read Sign-in and read
user profile
Allows users to sign-in to the app, and allows the app to read the profile of
signed-in users. It also allows the app to read basic company information of
signed-in users.
No
User.ReadWrite Read and write
access to user
profile
Allows the app to read the signed-in user's full profile. It also allows the app to
update the signed-in user's profile information on their behalf.
No
User.ReadBasic.All Read all users'
basic profiles
Allows the app to read a basic set of profile properties of other users in your
organization on behalf of the signed-in user. This includes display name, first and
last name, email address, open extensions and photo. Also allows the app to read
the full profile of the signed-in user.
No
User.Read.All Read all users' full
profiles
Allows the app to read the full set of profile properties, reports, and managers of
other users in your organization, on behalf of the signed-in user.
Yes
User.ReadWrite.All Read and write all
users' full profiles
Allows the app to read and write the full set of profile properties, reports, and
managers of other users in your organization, on behalf of the signed-in user.
Also allows the app to create and delete users as well as reset user passwords on
behalf of the signed-in user.
Yes
Users can not grant consent
for a permission that requires
Admin consent
Admins can grant this consent
When running the app
Users can not grant consent
for a permission that requires
Admin consent
Admins can also consent for
all users in the organization
Applies to both consent User
and Admin permissions
When running the app
In the Azure Portal
Great choice for LOB apps
Developers should declare all permissions ahead of time
Users can consent for their data or admin can consent for all users Only admin can consent
Delegated
permissions
App
Permissions
App
permissions
Permission type: applicationPermission type: delegated
Get access on behalf of users Get access as a service
Effective permissionEffective permission
https://aka.ms/ConsentAndPermissions
Microsoft Graph
https://graph.microsoft.com/
Insights and relationships
Calendar
Personal
Contacts
Files Notes
Org
Contacts
NotesPeopleUsers ExcelTasksMailGroups
Data
XCode
Eclipse or
Android Studio
Visual Studio REST
Development
Environment
YOUR APP
Your choice of technology (.NET, JS, HTML, Ruby, etc.)
Microsoft Azure
Other hosting
(IIS, LAMP, etc.)
Solution
Authentication
and Authorization OpenID Connect and OAuth 2.0
https://aka.ms/identityplatform
https://aka.ms/AuthLab
access_tokenMSAL
YOUR APP
Microsoft
Graph
id_token
access_token refresh_token
Microsoft
Identity
platform
https://docs.microsoft.com/graph/sdks/sdks-overview
Fast and simple integration
Authentication libraries
 Secure access to users and data made
simple
 Microsoft’s world (Microsoft Graph, other APIs)
 Your own APIs
 MSAL - best in class auth libs
 Built for v2 endpoint, reach any audience
 Follows Microsoft Security Development Lifecycle
Fast and simple integration
Simplifying the developer platform
Your target
audience
Endpoint
MSALClient SDK
App registration
ADAL
Graph SDKs, samples and tooling
Graph SDKs
• Designed to simplify building high-quality,
efficient, and resilient applications that access
Microsoft Graph
• Available to be included in your projects via
GitHub and popular platform package managers
• The library contains models and request
builders that are generated from Microsoft
Graph metadata
Graph SDKs
• Provides support for common tasks such as
• Models and request builders for entities
• Paging through collections.
• Creating batch requests.
• More..
• Embedded support for
• Retry handling
• Secure redirects
• Payload compression
• More..
Improve your application's interactions with Graph,
without adding complexity
Microsoft Graph .NET Authentication Provider Library
 Microsoft Graph .NET authentication library provides a set of
OAuth scenario-centric authentication providers that implement
Microsoft.Graph.IAuthenticationProvider and uses Microsoft
Authentication Library (MSAL) under the hood to handle access
token acquisition and storage.
 Its still in prerelease, so , use the –prerelease flag in Nuget fetch
Install-Package Microsoft.Graph.Auth -PreRelease
https://docs.microsoft.com/graph/sdks/sdks-overview
Scenario: A Web app calling Graph
https://docs.microsoft.com/azure/active-directory/develop/scenario-web-app-call-api-overview
IConfidentialClientApplication confidentialClientApplication = ConfidentialClientApplic
ationBuilder
.Create(clientId)
.WithRedirectUri(redirectUri)
.WithClientSecret(clientSecret) // or .WithCertificate(certificate)
.Build();
AuthorizationCodeProvider authenticationProvider = new AuthorizationCodeProvider(confid
entialClientApplication, scopes);
GraphServiceClient graphServiceClient = new GraphServiceClient(authenticationProvider);
Scenario: Desktop app calling Graph
https://docs.microsoft.com/azure/active-directory/develop/scenario-desktop-overview
IPublicClientApplication publicClientApplication = PublicClientApplicationBuilder
.Create(clientId)
.WithTenantId(tenantID)
.Build();
InteractiveAuthenticationProvider authenticationProvider = new InteractiveAuthenticatio
nProvider(publicClientApplication, scopes);
GraphServiceClient graphServiceClient = new GraphServiceClient(authenticationProvider);
IntegratedWindowsAuthenticationProvider authenticationProvider = new IntegratedWindowsA
uthenticationProvider(publicClientApplication, scopes);
GraphServiceClient graphServiceClient = new GraphServiceClient(authenticationProvider);
Scenario: Web API calling Graph
https://docs.microsoft.com/azure/active-directory/develop/scenario-web-api-call-api-overview
IConfidentialClientApplication confidentialClientApplication = ConfidentialClientApplic
ationBuilder
.Create(clientId)
.WithRedirectUri(redirectUri)
.WithClientSecret(clientSecret)
.Build();
OnBehalfOfProvider authenticationProvider = new OnBehalfOfProvider(confidentialClientAp
plication, scopes);
GraphServiceClient graphServiceClient = new GraphServiceClient(authenticationProvider);
Scenario : Daemon app calling Graph
https://docs.microsoft.com/azure/active-directory/develop/scenario-daemon-call-api?tabs=dotnet
IConfidentialClientApplication confidentialClientApplication = ConfidentialClientApplic
ationBuilder
.Create(clientId)
.WithTenantId(tenantID)
.WithClientSecret(clientSecret)
.Build();
ClientCredentialProvider authenticationProvider = new ClientCredentialProvider(confiden
tialClientApplication);
GraphServiceClient graphServiceClient = new GraphServiceClient(authenticationProvider);
Scenario: Browserless app calling Graph
https://docs.microsoft.com/en-us/azure/active-directory/develop/v2-oauth2-device-code
IPublicClientApplication publicClientApplication = PublicClientApplicationBuilder
.Create(clientId)
.Build();
DeviceCodeProvider authenticationProvider = new DeviceCodeProvider(publicClientApplicat
ion, scopes);
GraphServiceClient graphServiceClient = new GraphServiceClient(authenticationProvider);
Scenario: Mobile application calling Graph
https://docs.microsoft.com/en-us/azure/active-directory/develop/scenario-mobile-overview
IPublicClientApplication publicClientApplication = PublicClientApplicationBuilder
.Create(clientId)
.Build();
InteractiveAuthenticationProvider authenticationProvider = new InteractiveAuthenticatio
nProvider(publicClientApplication, scopes);
GraphServiceClient graphServiceClient = new GraphServiceClient(authenticationProvider);
Office 365
Windows 10
Enterprise
Mobility + Security
Your tailored
experiences or
customizations
https://graph.microsoft.com
Microsoft Graph
Data Connect
Microsoft Graph
Office 365 Windows 10 Enterprise Mobility + Security
Microsoft Graph
REST APIs and Webhooks
Documents Conversations Portals Timeline
Extend Microsoft 365 experiences
Web
apps
Bots &
agents
Device
& native
Daemon
apps
Workflow
automation
Build your experience
Connectors
Microsoft Identity
Azure AI platformYour local data
Search
Insight
apps
1.Accessing data
2.Traversing data
3.Accessing insights
4.Work/School and Personal
Accounts
https://graph.microsoft.com/
your
Users, Groups, Organizations
Outlook
SharePoint
OneDrive
Teams
Planner
Excel
OneNote
Activities
Device Relay
Commands
Notifications
Azure AD
Intune
Identity Manager
Advanced Threat Analytics
Advanced Threat Protection
Mail, Calendar,
Contacts and Tasks
Sites and Lists
Drives and Files
Channels, Messages
Tasks and Plans
Spreadsheets
Notes, and more…
Identity Management
Access Control
Synchronization
Domains
Administrative Units
Applications and Devices
Advanced Threat Analytics
Advanced Threat Protection
Alerts
Policies
and more…
Office 365 Windows 10 Enterprise Mobility + Security
https://graph.microsoft.com
Dynamics 365
Business Central
Next Session
An introduction to Microsoft Graph for Developers
Part 2 - Advanced topics
Nov 21st 2019
Twitter
#MicrosoftGraph
GitHub
/MicrosoftGraph
StackOverflow
[MicrosoftGraph]
Submit new feature and service requests @ https://feedback.azure.com
https://aka.ms/o365devprogram
Microsoft Confidential
Engage with us!
Topic Feedback type Forum URL Who supports
All identity developer
topics (Auth libraries, MS
Graph, App Registration
portals)
Community-driven
developer Support for
Questions and Answers
Stack Overflow
https://stackoverflow.com/questions/tagged/azu
re-active-directory+or+microsoft-
graph+or+azure-ad-conditional-access
Supported by Microsoft and
community
Authentication Libraries –
ADAL, MSAL, Auth
Middleware
Library issues, bugs, open
source contributions
GitHub
https://docs.microsoft.com/azure/active-
directory/develop/active-directory-
authentication-libraries
Azure AD teams manage issues, bugs
and review/ approve contribution
Azure AD, MS
Graph, Libraries, App
Registration – Developer
Experiences
Feature requests,
suggestions for product
improvements
Azure Feedback
Azure Feedback for Authentication and also
AppRegFeedback@microsoft.com for portal
specific feedback. User Voice for Microsoft
Graph
Azure AD teams triage feature
requests
All identity developer
topics (Auth libraries, MS
Graph, App Registration
portals)
Discussion with other
MVPs and NDA
community
Yammer Identity
Developer Advisors
https://www.yammer.com/azureadvisors/#/threa
ds/inGroup?type=in_group&feedId=5800064
Engagement with Identity Advisors
and Microsoft product groups
Identity developer topics
for Auth
Delve deep into complex
identity related
development topics live Community Office Hours
azuread Twitter handle and the
Microsoft Tech community
Opportunity to make questions and
answers in real time to product teams
via live conference
All developer topics Assisted support for
developers
Customer Service and
Support
More information on support options:
https://aka.ms/devexhelpsupport
Direct 1:1 help from our support
engineering teams
References
and
Samples
• Microsoftidentityplatform(v2.0)overview
• MSAL.NETWiki
• MSAL.NETReferencedocumentation
• InstalltheMicrosoftGraphSDKs
• MicrosoftGraph.NETAuthenticationProviderLibrary
• ChooseaMicrosoftGraphauthenticationproviderbasedon
scenario
• MicrosoftGraphUservoice
• BestpracticesforworkingwithMicrosoftGraph
• MicrosoftGraphresources
• MicrosoftGraphTutorials
Thank you!
https://aka.ms/graph
PAGE 85
Developing applications for Microsoft Graph
What you’ll need to do to develop apps
App registration
Permissions
(Token validation)
Acquire token
(Authorization)
Token cache
serialization
Best practices
Scenario: Desktop app that calls web APIs
https://docs.microsoft.com/azure/active-directory/develop/scenario-desktop-overview
IPublicClientApplication publicClientApplication = PublicClientApplicationBuilder
.Create(clientId)
.WithTenantId(tenantID)
.Build();
UsernamePasswordProvider authenticationProvider = new UsernamePasswordProvider(publicCl
ientApplication, scopes);
GraphServiceClient graphServiceClient = new GraphServiceClient(authenticationProvider);
IPublicClientApplication publicClientApplication = PublicClientApplicationBuilder
.Create(clientId)
.WithTenantId(tenantID)
.Build();

Contenu connexe

Tendances

Mobile security part 1(Android Apps Pentesting)- Romansh yadav
Mobile security part 1(Android Apps Pentesting)- Romansh yadavMobile security part 1(Android Apps Pentesting)- Romansh yadav
Mobile security part 1(Android Apps Pentesting)- Romansh yadavRomansh Yadav
 
JPC2017 [D4] Microsoft 365 が実現するデジタル時代のセキュリティ
JPC2017 [D4] Microsoft 365 が実現するデジタル時代のセキュリティJPC2017 [D4] Microsoft 365 が実現するデジタル時代のセキュリティ
JPC2017 [D4] Microsoft 365 が実現するデジタル時代のセキュリティMPN Japan
 
Azure AD の SaaS アプリケーション認証への活用
Azure AD の SaaS アプリケーション認証への活用Azure AD の SaaS アプリケーション認証への活用
Azure AD の SaaS アプリケーション認証への活用Yusuke Kodama
 
Azure active directory によるデバイス管理の種類とトラブルシュート事例について
Azure active directory によるデバイス管理の種類とトラブルシュート事例についてAzure active directory によるデバイス管理の種類とトラブルシュート事例について
Azure active directory によるデバイス管理の種類とトラブルシュート事例についてShinya Yamaguchi
 
Azure AD B2C Webinar Series: Custom Policies Part 2 Policy Walkthrough
Azure AD B2C Webinar Series: Custom Policies Part 2 Policy WalkthroughAzure AD B2C Webinar Series: Custom Policies Part 2 Policy Walkthrough
Azure AD B2C Webinar Series: Custom Policies Part 2 Policy WalkthroughVinu Gunasekaran
 
Neat tricks to bypass CSRF-protection
Neat tricks to bypass CSRF-protectionNeat tricks to bypass CSRF-protection
Neat tricks to bypass CSRF-protectionMikhail Egorov
 
API Security Best Practices & Guidelines
API Security Best Practices & GuidelinesAPI Security Best Practices & Guidelines
API Security Best Practices & GuidelinesPrabath Siriwardena
 
Azure AD の新しいデバイス管理パターンを理解しよう
Azure AD の新しいデバイス管理パターンを理解しようAzure AD の新しいデバイス管理パターンを理解しよう
Azure AD の新しいデバイス管理パターンを理解しようYusuke Kodama
 
APIsecure 2023 - Android Applications and API Hacking, Gabrielle Botbol
APIsecure 2023 - Android Applications and API Hacking, Gabrielle BotbolAPIsecure 2023 - Android Applications and API Hacking, Gabrielle Botbol
APIsecure 2023 - Android Applications and API Hacking, Gabrielle Botbolapidays
 
XSS and CSRF with HTML5
XSS and CSRF with HTML5XSS and CSRF with HTML5
XSS and CSRF with HTML5Shreeraj Shah
 
Nullcon Goa 2016 - Automated Mobile Application Security Testing with Mobile ...
Nullcon Goa 2016 - Automated Mobile Application Security Testing with Mobile ...Nullcon Goa 2016 - Automated Mobile Application Security Testing with Mobile ...
Nullcon Goa 2016 - Automated Mobile Application Security Testing with Mobile ...Ajin Abraham
 
Azure AD B2C Webinar Series: Custom Policies Part 3 Troubleshooting
Azure AD B2C Webinar Series: Custom Policies Part 3 TroubleshootingAzure AD B2C Webinar Series: Custom Policies Part 3 Troubleshooting
Azure AD B2C Webinar Series: Custom Policies Part 3 TroubleshootingVinu Gunasekaran
 
Azure Blueprints - 企業で期待される背景と特徴、活用方法
Azure Blueprints - 企業で期待される背景と特徴、活用方法Azure Blueprints - 企業で期待される背景と特徴、活用方法
Azure Blueprints - 企業で期待される背景と特徴、活用方法Toru Makabe
 
BYOD_Policy_JP-1.0.pdf
BYOD_Policy_JP-1.0.pdfBYOD_Policy_JP-1.0.pdf
BYOD_Policy_JP-1.0.pdfHisaho Nakata
 
Azure AD DSドメインに仮想マシンを参加させる (トレノケ雲の会 mod1)
Azure AD DSドメインに仮想マシンを参加させる (トレノケ雲の会 mod1)Azure AD DSドメインに仮想マシンを参加させる (トレノケ雲の会 mod1)
Azure AD DSドメインに仮想マシンを参加させる (トレノケ雲の会 mod1)Trainocate Japan, Ltd.
 
Web Application Penetration Testing - 101
Web Application Penetration Testing - 101Web Application Penetration Testing - 101
Web Application Penetration Testing - 101Andrea Hauser
 
Cross Site Scripting - Web Defacement Techniques
Cross Site Scripting - Web Defacement TechniquesCross Site Scripting - Web Defacement Techniques
Cross Site Scripting - Web Defacement TechniquesRonan Dunne, CEH, SSCP
 

Tendances (20)

Mobile security part 1(Android Apps Pentesting)- Romansh yadav
Mobile security part 1(Android Apps Pentesting)- Romansh yadavMobile security part 1(Android Apps Pentesting)- Romansh yadav
Mobile security part 1(Android Apps Pentesting)- Romansh yadav
 
JPC2017 [D4] Microsoft 365 が実現するデジタル時代のセキュリティ
JPC2017 [D4] Microsoft 365 が実現するデジタル時代のセキュリティJPC2017 [D4] Microsoft 365 が実現するデジタル時代のセキュリティ
JPC2017 [D4] Microsoft 365 が実現するデジタル時代のセキュリティ
 
Microsoft Graph
Microsoft GraphMicrosoft Graph
Microsoft Graph
 
Azure AD の SaaS アプリケーション認証への活用
Azure AD の SaaS アプリケーション認証への活用Azure AD の SaaS アプリケーション認証への活用
Azure AD の SaaS アプリケーション認証への活用
 
Azure active directory によるデバイス管理の種類とトラブルシュート事例について
Azure active directory によるデバイス管理の種類とトラブルシュート事例についてAzure active directory によるデバイス管理の種類とトラブルシュート事例について
Azure active directory によるデバイス管理の種類とトラブルシュート事例について
 
Azure AD B2C Webinar Series: Custom Policies Part 2 Policy Walkthrough
Azure AD B2C Webinar Series: Custom Policies Part 2 Policy WalkthroughAzure AD B2C Webinar Series: Custom Policies Part 2 Policy Walkthrough
Azure AD B2C Webinar Series: Custom Policies Part 2 Policy Walkthrough
 
Neat tricks to bypass CSRF-protection
Neat tricks to bypass CSRF-protectionNeat tricks to bypass CSRF-protection
Neat tricks to bypass CSRF-protection
 
API Security Best Practices & Guidelines
API Security Best Practices & GuidelinesAPI Security Best Practices & Guidelines
API Security Best Practices & Guidelines
 
Azure AD の新しいデバイス管理パターンを理解しよう
Azure AD の新しいデバイス管理パターンを理解しようAzure AD の新しいデバイス管理パターンを理解しよう
Azure AD の新しいデバイス管理パターンを理解しよう
 
APIsecure 2023 - Android Applications and API Hacking, Gabrielle Botbol
APIsecure 2023 - Android Applications and API Hacking, Gabrielle BotbolAPIsecure 2023 - Android Applications and API Hacking, Gabrielle Botbol
APIsecure 2023 - Android Applications and API Hacking, Gabrielle Botbol
 
XSS - Attacks & Defense
XSS - Attacks & DefenseXSS - Attacks & Defense
XSS - Attacks & Defense
 
XSS and CSRF with HTML5
XSS and CSRF with HTML5XSS and CSRF with HTML5
XSS and CSRF with HTML5
 
Nullcon Goa 2016 - Automated Mobile Application Security Testing with Mobile ...
Nullcon Goa 2016 - Automated Mobile Application Security Testing with Mobile ...Nullcon Goa 2016 - Automated Mobile Application Security Testing with Mobile ...
Nullcon Goa 2016 - Automated Mobile Application Security Testing with Mobile ...
 
Azure AD B2C Webinar Series: Custom Policies Part 3 Troubleshooting
Azure AD B2C Webinar Series: Custom Policies Part 3 TroubleshootingAzure AD B2C Webinar Series: Custom Policies Part 3 Troubleshooting
Azure AD B2C Webinar Series: Custom Policies Part 3 Troubleshooting
 
Azure Blueprints - 企業で期待される背景と特徴、活用方法
Azure Blueprints - 企業で期待される背景と特徴、活用方法Azure Blueprints - 企業で期待される背景と特徴、活用方法
Azure Blueprints - 企業で期待される背景と特徴、活用方法
 
BYOD_Policy_JP-1.0.pdf
BYOD_Policy_JP-1.0.pdfBYOD_Policy_JP-1.0.pdf
BYOD_Policy_JP-1.0.pdf
 
Azure AD DSドメインに仮想マシンを参加させる (トレノケ雲の会 mod1)
Azure AD DSドメインに仮想マシンを参加させる (トレノケ雲の会 mod1)Azure AD DSドメインに仮想マシンを参加させる (トレノケ雲の会 mod1)
Azure AD DSドメインに仮想マシンを参加させる (トレノケ雲の会 mod1)
 
Android Pentesting
Android PentestingAndroid Pentesting
Android Pentesting
 
Web Application Penetration Testing - 101
Web Application Penetration Testing - 101Web Application Penetration Testing - 101
Web Application Penetration Testing - 101
 
Cross Site Scripting - Web Defacement Techniques
Cross Site Scripting - Web Defacement TechniquesCross Site Scripting - Web Defacement Techniques
Cross Site Scripting - Web Defacement Techniques
 

Similaire à Microsoft identity platform developer community call-October 2019

Microsoft graph and power platform champ
Microsoft graph and power platform   champMicrosoft graph and power platform   champ
Microsoft graph and power platform champKumton Suttiraksiri
 
WSO2 App Manager: Managing Application Lifecycles Across Your Enterprise
WSO2 App Manager: Managing Application Lifecycles Across Your EnterpriseWSO2 App Manager: Managing Application Lifecycles Across Your Enterprise
WSO2 App Manager: Managing Application Lifecycles Across Your EnterpriseWSO2
 
FourSquare and Facebook Graph Integrated Mobile Application
FourSquare and Facebook Graph Integrated Mobile ApplicationFourSquare and Facebook Graph Integrated Mobile Application
FourSquare and Facebook Graph Integrated Mobile ApplicationMike Taylor
 
Microsoft Graph API - A Single Stop For Your Cloud Solution
Microsoft Graph API - A Single Stop For Your Cloud SolutionMicrosoft Graph API - A Single Stop For Your Cloud Solution
Microsoft Graph API - A Single Stop For Your Cloud SolutionDipti Chhatrapati
 
Doddanna_B_Java_Android_Trnd_EC_70%
Doddanna_B_Java_Android_Trnd_EC_70%Doddanna_B_Java_Android_Trnd_EC_70%
Doddanna_B_Java_Android_Trnd_EC_70%Doddanna B
 
CoLabora March 2022 - Improve security posture by implementing new Azure AD ...
CoLabora March 2022 -  Improve security posture by implementing new Azure AD ...CoLabora March 2022 -  Improve security posture by implementing new Azure AD ...
CoLabora March 2022 - Improve security posture by implementing new Azure AD ...Peter Selch Dahl
 
Managing enterprise applications, permissions, and consent in Azure Active Di...
Managing enterprise applications, permissions, and consent in Azure Active Di...Managing enterprise applications, permissions, and consent in Azure Active Di...
Managing enterprise applications, permissions, and consent in Azure Active Di...CoLaboraDK
 
Managing enterprise applications, permissions, and consent in Azure Active Di...
Managing enterprise applications, permissions, and consent in Azure Active Di...Managing enterprise applications, permissions, and consent in Azure Active Di...
Managing enterprise applications, permissions, and consent in Azure Active Di...Peter Selch Dahl
 
Granite state #spug The #microsoftGraph and #SPFx on steroids with #AzureFunc...
Granite state #spug The #microsoftGraph and #SPFx on steroids with #AzureFunc...Granite state #spug The #microsoftGraph and #SPFx on steroids with #AzureFunc...
Granite state #spug The #microsoftGraph and #SPFx on steroids with #AzureFunc...Vincent Biret
 
#SPSToronto The SharePoint Framework and the Microsoft Graph on steroids with...
#SPSToronto The SharePoint Framework and the Microsoft Graph on steroids with...#SPSToronto The SharePoint Framework and the Microsoft Graph on steroids with...
#SPSToronto The SharePoint Framework and the Microsoft Graph on steroids with...Vincent Biret
 
Microsoft Graph community call - April, 2018
Microsoft Graph community call - April, 2018Microsoft Graph community call - April, 2018
Microsoft Graph community call - April, 2018Microsoft 365 Developer
 
Integrate Business Apps with Facebook, Twitter, and LinkedIn
Integrate Business Apps with Facebook, Twitter, and LinkedInIntegrate Business Apps with Facebook, Twitter, and LinkedIn
Integrate Business Apps with Facebook, Twitter, and LinkedInSalesforce Developers
 
Implement Authorization in your Apps with Microsoft identity platform-June 2020
Implement Authorization in your Apps with Microsoft identity platform-June 2020Implement Authorization in your Apps with Microsoft identity platform-June 2020
Implement Authorization in your Apps with Microsoft identity platform-June 2020Microsoft 365 Developer
 
#SPSottawa The SharePoint Framework and The Microsoft Graph on steroids with ...
#SPSottawa The SharePoint Framework and The Microsoft Graph on steroids with ...#SPSottawa The SharePoint Framework and The Microsoft Graph on steroids with ...
#SPSottawa The SharePoint Framework and The Microsoft Graph on steroids with ...Vincent Biret
 
Add End User Sign-in, User Management, and Security to Your Mobile and Web Ap...
Add End User Sign-in, User Management, and Security to Your Mobile and Web Ap...Add End User Sign-in, User Management, and Security to Your Mobile and Web Ap...
Add End User Sign-in, User Management, and Security to Your Mobile and Web Ap...Amazon Web Services
 
Developing share point solutions with the microsoft graph
Developing share point solutions with the microsoft graphDeveloping share point solutions with the microsoft graph
Developing share point solutions with the microsoft graphFernando Leitzelar, MBA, PMP
 
Optimizing your job apply pages with the LinkedIn profile API
Optimizing your job apply pages with the LinkedIn profile APIOptimizing your job apply pages with the LinkedIn profile API
Optimizing your job apply pages with the LinkedIn profile APIIvo Brett
 

Similaire à Microsoft identity platform developer community call-October 2019 (20)

Microsoft graph and power platform champ
Microsoft graph and power platform   champMicrosoft graph and power platform   champ
Microsoft graph and power platform champ
 
WSO2 App Manager: Managing Application Lifecycles Across Your Enterprise
WSO2 App Manager: Managing Application Lifecycles Across Your EnterpriseWSO2 App Manager: Managing Application Lifecycles Across Your Enterprise
WSO2 App Manager: Managing Application Lifecycles Across Your Enterprise
 
FourSquare and Facebook Graph Integrated Mobile Application
FourSquare and Facebook Graph Integrated Mobile ApplicationFourSquare and Facebook Graph Integrated Mobile Application
FourSquare and Facebook Graph Integrated Mobile Application
 
Microsoft Graph API - A Single Stop For Your Cloud Solution
Microsoft Graph API - A Single Stop For Your Cloud SolutionMicrosoft Graph API - A Single Stop For Your Cloud Solution
Microsoft Graph API - A Single Stop For Your Cloud Solution
 
Doddanna_B_Java_Android_Trnd_EC_70%
Doddanna_B_Java_Android_Trnd_EC_70%Doddanna_B_Java_Android_Trnd_EC_70%
Doddanna_B_Java_Android_Trnd_EC_70%
 
CoLabora March 2022 - Improve security posture by implementing new Azure AD ...
CoLabora March 2022 -  Improve security posture by implementing new Azure AD ...CoLabora March 2022 -  Improve security posture by implementing new Azure AD ...
CoLabora March 2022 - Improve security posture by implementing new Azure AD ...
 
Managing enterprise applications, permissions, and consent in Azure Active Di...
Managing enterprise applications, permissions, and consent in Azure Active Di...Managing enterprise applications, permissions, and consent in Azure Active Di...
Managing enterprise applications, permissions, and consent in Azure Active Di...
 
Managing enterprise applications, permissions, and consent in Azure Active Di...
Managing enterprise applications, permissions, and consent in Azure Active Di...Managing enterprise applications, permissions, and consent in Azure Active Di...
Managing enterprise applications, permissions, and consent in Azure Active Di...
 
Mobile testing android
Mobile testing   androidMobile testing   android
Mobile testing android
 
Granite state #spug The #microsoftGraph and #SPFx on steroids with #AzureFunc...
Granite state #spug The #microsoftGraph and #SPFx on steroids with #AzureFunc...Granite state #spug The #microsoftGraph and #SPFx on steroids with #AzureFunc...
Granite state #spug The #microsoftGraph and #SPFx on steroids with #AzureFunc...
 
#SPSToronto The SharePoint Framework and the Microsoft Graph on steroids with...
#SPSToronto The SharePoint Framework and the Microsoft Graph on steroids with...#SPSToronto The SharePoint Framework and the Microsoft Graph on steroids with...
#SPSToronto The SharePoint Framework and the Microsoft Graph on steroids with...
 
Microsoft Graph community call - April, 2018
Microsoft Graph community call - April, 2018Microsoft Graph community call - April, 2018
Microsoft Graph community call - April, 2018
 
Eldhose_Resume
Eldhose_ResumeEldhose_Resume
Eldhose_Resume
 
jtmcv
jtmcvjtmcv
jtmcv
 
Integrate Business Apps with Facebook, Twitter, and LinkedIn
Integrate Business Apps with Facebook, Twitter, and LinkedInIntegrate Business Apps with Facebook, Twitter, and LinkedIn
Integrate Business Apps with Facebook, Twitter, and LinkedIn
 
Implement Authorization in your Apps with Microsoft identity platform-June 2020
Implement Authorization in your Apps with Microsoft identity platform-June 2020Implement Authorization in your Apps with Microsoft identity platform-June 2020
Implement Authorization in your Apps with Microsoft identity platform-June 2020
 
#SPSottawa The SharePoint Framework and The Microsoft Graph on steroids with ...
#SPSottawa The SharePoint Framework and The Microsoft Graph on steroids with ...#SPSottawa The SharePoint Framework and The Microsoft Graph on steroids with ...
#SPSottawa The SharePoint Framework and The Microsoft Graph on steroids with ...
 
Add End User Sign-in, User Management, and Security to Your Mobile and Web Ap...
Add End User Sign-in, User Management, and Security to Your Mobile and Web Ap...Add End User Sign-in, User Management, and Security to Your Mobile and Web Ap...
Add End User Sign-in, User Management, and Security to Your Mobile and Web Ap...
 
Developing share point solutions with the microsoft graph
Developing share point solutions with the microsoft graphDeveloping share point solutions with the microsoft graph
Developing share point solutions with the microsoft graph
 
Optimizing your job apply pages with the LinkedIn profile API
Optimizing your job apply pages with the LinkedIn profile APIOptimizing your job apply pages with the LinkedIn profile API
Optimizing your job apply pages with the LinkedIn profile API
 

Plus de Microsoft 365 Developer

Change Notifications in Azure Event Hubs-April 2021
Change Notifications in Azure Event Hubs-April 2021Change Notifications in Azure Event Hubs-April 2021
Change Notifications in Azure Event Hubs-April 2021Microsoft 365 Developer
 
Microsoft Teams community call-August 2020
Microsoft Teams community call-August 2020Microsoft Teams community call-August 2020
Microsoft Teams community call-August 2020Microsoft 365 Developer
 
Decentralized Identities-July 2020 community call
Decentralized Identities-July 2020 community callDecentralized Identities-July 2020 community call
Decentralized Identities-July 2020 community callMicrosoft 365 Developer
 
Microsoft identity platform community call-May 2020
Microsoft identity platform community call-May 2020Microsoft identity platform community call-May 2020
Microsoft identity platform community call-May 2020Microsoft 365 Developer
 
Health team collaboration pitch deck partner
Health team collaboration pitch deck partnerHealth team collaboration pitch deck partner
Health team collaboration pitch deck partnerMicrosoft 365 Developer
 
Teams healthcare partner webinar ansuman partner
Teams healthcare partner webinar   ansuman partnerTeams healthcare partner webinar   ansuman partner
Teams healthcare partner webinar ansuman partnerMicrosoft 365 Developer
 
Teams healthcare partner webinar virtual visits partner
Teams healthcare partner webinar   virtual visits partnerTeams healthcare partner webinar   virtual visits partner
Teams healthcare partner webinar virtual visits partnerMicrosoft 365 Developer
 
Teams healthcare partner webinar srini partner
Teams healthcare partner webinar   srini partnerTeams healthcare partner webinar   srini partner
Teams healthcare partner webinar srini partnerMicrosoft 365 Developer
 
Teams healthcare partner webinar paul partner
Teams healthcare partner webinar   paul  partnerTeams healthcare partner webinar   paul  partner
Teams healthcare partner webinar paul partnerMicrosoft 365 Developer
 
Teams healthcare partner webinar keren partner
Teams healthcare partner webinar   keren partnerTeams healthcare partner webinar   keren partner
Teams healthcare partner webinar keren partnerMicrosoft 365 Developer
 
Teams healthcare partner webinar daniel partner
Teams healthcare partner webinar   daniel partnerTeams healthcare partner webinar   daniel partner
Teams healthcare partner webinar daniel partnerMicrosoft 365 Developer
 
Teams healthcare partner webinar andrew partner
Teams healthcare partner webinar   andrew partnerTeams healthcare partner webinar   andrew partner
Teams healthcare partner webinar andrew partnerMicrosoft 365 Developer
 
Security and compliance for healthcare pitch deck partner
Security and compliance for healthcare pitch deck partnerSecurity and compliance for healthcare pitch deck partner
Security and compliance for healthcare pitch deck partnerMicrosoft 365 Developer
 
Community call: Develop multi tenant apps with the Microsoft identity platform
Community call: Develop multi tenant apps with the Microsoft identity platformCommunity call: Develop multi tenant apps with the Microsoft identity platform
Community call: Develop multi tenant apps with the Microsoft identity platformMicrosoft 365 Developer
 
Microsoft Graph developer community call-March 2020
Microsoft Graph developer community call-March 2020Microsoft Graph developer community call-March 2020
Microsoft Graph developer community call-March 2020Microsoft 365 Developer
 

Plus de Microsoft 365 Developer (20)

Change Notifications in Azure Event Hubs-April 2021
Change Notifications in Azure Event Hubs-April 2021Change Notifications in Azure Event Hubs-April 2021
Change Notifications in Azure Event Hubs-April 2021
 
Power Apps community call - August 2020
Power Apps community call - August 2020Power Apps community call - August 2020
Power Apps community call - August 2020
 
Microsoft Teams community call-August 2020
Microsoft Teams community call-August 2020Microsoft Teams community call-August 2020
Microsoft Teams community call-August 2020
 
Decentralized Identities-July 2020 community call
Decentralized Identities-July 2020 community callDecentralized Identities-July 2020 community call
Decentralized Identities-July 2020 community call
 
Power Apps community call-June 2020
Power Apps community call-June 2020Power Apps community call-June 2020
Power Apps community call-June 2020
 
Office Add-ins community call-June 2020
Office Add-ins community call-June 2020Office Add-ins community call-June 2020
Office Add-ins community call-June 2020
 
Microsoft identity platform community call-May 2020
Microsoft identity platform community call-May 2020Microsoft identity platform community call-May 2020
Microsoft identity platform community call-May 2020
 
Power Apps community call - May 2020
Power Apps community call - May 2020Power Apps community call - May 2020
Power Apps community call - May 2020
 
Health team collaboration pitch deck partner
Health team collaboration pitch deck partnerHealth team collaboration pitch deck partner
Health team collaboration pitch deck partner
 
Teams healthcare partner webinar ansuman partner
Teams healthcare partner webinar   ansuman partnerTeams healthcare partner webinar   ansuman partner
Teams healthcare partner webinar ansuman partner
 
Teams healthcare partner webinar virtual visits partner
Teams healthcare partner webinar   virtual visits partnerTeams healthcare partner webinar   virtual visits partner
Teams healthcare partner webinar virtual visits partner
 
Teams healthcare partner webinar srini partner
Teams healthcare partner webinar   srini partnerTeams healthcare partner webinar   srini partner
Teams healthcare partner webinar srini partner
 
Teams healthcare partner webinar paul partner
Teams healthcare partner webinar   paul  partnerTeams healthcare partner webinar   paul  partner
Teams healthcare partner webinar paul partner
 
Teams healthcare partner webinar keren partner
Teams healthcare partner webinar   keren partnerTeams healthcare partner webinar   keren partner
Teams healthcare partner webinar keren partner
 
Teams healthcare partner webinar daniel partner
Teams healthcare partner webinar   daniel partnerTeams healthcare partner webinar   daniel partner
Teams healthcare partner webinar daniel partner
 
Teams healthcare partner webinar andrew partner
Teams healthcare partner webinar   andrew partnerTeams healthcare partner webinar   andrew partner
Teams healthcare partner webinar andrew partner
 
Security and compliance for healthcare pitch deck partner
Security and compliance for healthcare pitch deck partnerSecurity and compliance for healthcare pitch deck partner
Security and compliance for healthcare pitch deck partner
 
Power Apps community call_April 2020
Power Apps community call_April 2020Power Apps community call_April 2020
Power Apps community call_April 2020
 
Community call: Develop multi tenant apps with the Microsoft identity platform
Community call: Develop multi tenant apps with the Microsoft identity platformCommunity call: Develop multi tenant apps with the Microsoft identity platform
Community call: Develop multi tenant apps with the Microsoft identity platform
 
Microsoft Graph developer community call-March 2020
Microsoft Graph developer community call-March 2020Microsoft Graph developer community call-March 2020
Microsoft Graph developer community call-March 2020
 

Dernier

Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 

Dernier (20)

Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 

Microsoft identity platform developer community call-October 2019

  • 1. An introduction to Microsoft Graph for Developers Part I - Getting started Identity Developer Advisors October 17th, 2019 Kalyan Krishna Sr Program Manager-Identity Division kalyankrishna1
  • 2. NDA community efforts for developers  New feature descriptions/ Group Sessions  Great opportunity to learn what’s new and provide feedback to our development plans.  Typically Wed, 9AM PT - recorded for feedback collection.  Next session, Nov 21st :  An introduction to Microsoft Graph for Developers, Part 2 - Advanced topics
  • 3.
  • 4. Agenda  What is Microsoft Graph ?  Why did we build Microsoft Graph ?  Common Scenarios  Developing applications for Microsoft Graph  Permissions & Consent  Common application topologies  SDKs  The app patterns  Code walkthrough – Manage Users  The Big Picture  Q&A PAGE 3
  • 5. Identity and Security Collaborative Engineering Some background questions … PAGE 5
  • 6. Identity and Security Collaborative Engineering #1 How many of you are aware of Microsoft Graph? A. I’ve never heard of it before B. I’ve heard of it, but not sure what it is C. I’m pretty sure I know what it is … but a refresher wouldn’t hurt … D. I’ve built apps that use Microsoft Graph PAGE 6
  • 7. Identity and Security Collaborative Engineering #2 Which Microsoft APIs does your app call (currently or planning to)? a) Microsoft Graph b) Azure AD Graph c) Individual Office APIs (Outlook, OneNote, OneDrive, Excel, etc) d) Azure Service/Resource Manager APIs e) Other (Please Specify) f) My app doesn’t call any Microsoft APIs PAGE 7
  • 8.
  • 9. Microsoft Graph: gateway to your data in the Microsoft cloud
  • 10.
  • 13. https://graph.microsoft.com Operation Service endpoint GET my profile https://graph.microsoft.com/v1.0/me GET my mail https://graph.microsoft.com/v1.0/me/messages GET my calendar https://graph.microsoft.com/v1.0/me/calendar GET my contacts https://graph.microsoft.com/v1.0/me/contacts GET my photo https://graph.microsoft.com/v1.0/me/photo/$value GET my files https://graph.microsoft.com/v1.0/me/drive/root/children GET my manager https://graph.microsoft.com/v1.0/me/manager GET last user to modify file foo.txt https://graph.microsoft.com/v1.0/me/drive/root/children/foo.txt/lastModifiedByUser GET users in my organization https://graph.microsoft.com/v1.0/users GET group conversations https://graph.microsoft.com/v1.0/groups/<id>/conversations GET people related to me https://graph.microsoft.com/beta/me/people GET my tasks https://graph.microsoft.com/beta/me/tasks GET my notes https://graph.microsoft.com/beta/me/notes/notebooks GET files trending around me https://graph.microsoft.com/beta/me/insights/trending
  • 14.
  • 15.
  • 16.
  • 17. Microsoft NDA Confidential Identity and Security Collaborative Engineering DELVE
  • 18. Microsoft NDA Confidential Identity and Security Collaborative Engineering OFFICE.COM
  • 19.
  • 21.
  • 22. Try it now.. Microsoft Graph Explorer – https://aka.ms/ge
  • 23.
  • 24.
  • 25.
  • 26.
  • 27. Verify the identity of the End-User Authentication
  • 33. Scope extent or range of view, outlook, application, operation, effectiveness, etc Source: Dictionary.com
  • 34. Applications specify the range of operation they REQUIRE by requesting a scope REQUIRED Only – Never ask for more than the app implements
  • 35. Applications specify the range of operation they REQUIRE by requesting a scope
  • 36. InteractiveAuthenticationProvider authenticationProvider = new InteractiveAuthentica tionProvider(app, scopes: new string[] { "user.read", "Directory.Read.All", "user.readwrite.all" });
  • 37. If it is a REQUEST, the request must be granted or denied
  • 38. App requests a scope User is presented a Permission dialog listing the scopes As result we often refer to scopes as permissions
  • 39. App receives, or not, an Access Token to use as a Bearer Token when calling the API We say the app has be granted or denied consent eyJ0eXAiOiJKV1QiLCJub25jZSI6IkFRQUJBQUFBQUFDRWZleFh4amFtUWIzT2VHUT RHdWd2STdUZ085c0NEWVc5SlVQMzRaUG1tak5ZRTd5XzJvMTRRbTYtRzBwcXFld E9JaENadjNFTmtLdGkyZTJTUVJNTjZteWdIbmt2MW1UcFJNQXotbDhRcGlBQSIsIm FsZyI6IlJTMjU2IiwieDV0IjoiLXN4TUpNTENJRFdNVFB2WnlKNnR4LUNEeHcwIiwia2l kIjoiLXN4TUpNTENJRFdNVFB2WnlKNnR4LUNEeHcwIn0.eyJhdWQiOiJodHRwczovL2dy YXBoLm1pY3Jvc29mdC5jb20iLCJpc3MiOiJodHRwczovL3N0cy53aW5kb3dzLm5ldC85NmM5YzY 2Ny1lMGQ2LTQzNzMtYmRlNi1iOTcwOTg5ODQ5NTAvIiwiaWF0IjoxNTUwNzI1NTQyLCJuYmYiOjE 1NTA3MjU1NDIsImV4cCI6MTU1MDcyOTQ0MiwiYWNjdCI6MCwiYWNyIjoiMSIsImFpbyI6IkFTUU EyLzhLQUFBQWplbUJ5aC9yN29vZzJPZG5LcVc4NGViNU5TSm1adEV6dWcrajBwamhEY2M9IiwiY W1yIjpbInB3ZCJdLCJhcHBfZGlzcGxheW5hbWUiOiJQZXJtaXNzaW9uRGVtbyIsImFwcGlkIjoiZWUx ZjcyNGYtMmM3Ni00NjRjLTgyNTgtZDBhZDM1M2YzOGMzIiwiYXBwaWRhY3IiOiIwIiwiZGV2aWNl aWQiOiI5YjI4ZTY1Zi05Yzc5LTQ4Y2QtYTA1OC01YmY3YWIyZWM1YzkiLCJmYW1pbHlfbmFtZSI6Il JvYmVydHNvbiIsImdpdmVuX25hbWUiOiJSb2JiaWUiLCJpcGFkZHIiOiI1MC4zNS42NC4xODQiLCJ uYW1lIjoiUm9iYmllIFJvYmVydHNvbiIsIm9pZCI6ImZkZDBkMGYwLTJiMTQtNDYxNC1hZTc2LWRjO GZlNzZlYzI3MiIsInBsYXRmIjoiMyIsInB1aWQiOiIxMDAzM0ZGRkFFQThEMzM2Iiwic2NwIjoicHJvZ mlsZSBvcGVuaWQgZW1haWwgVXNlci5SZWFkIiwic3ViIjoiYXh3c2JWTmVSc2V0bDFMYnp1bmtG eWxtTlFfaUpPXy1sbTUyd25wcnBqYyIsInRpZCI6Ijk2YzljNjY3LWUwZDYtNDM3My1iZGU2LWI5Nz A5ODk4NDk1MCIsInVuaXF1ZV9uYW1lIjoicnJAa3lsZXNzdGFnZS5vbm1pY3Jvc29mdC5jb20iLCJ1 cG4iOiJyckBreWxlc3N0YWdlLm9ubWljcm9zb2Z0LmNvbSIsInV0aSI6Imt5Zk11Y18zMjBxZ3FKOEF scXhBQUEiLCJ2ZXIiOiIxLjAiLCJ4bXNfc3QiOnsic3ViIjoiam9rS0xYcG1CVXo5cDh0YWVzYnVuZmdz RFhHYjFKZ0Q2NTJtMFV0bjNYcyJ9LCJ4bXNfdGNkdCI6MTUzNzMzNDc1NH0.LmNqF8hbd7Ep vtKhiAJtbMPanCh6q0SAjgTgFUqP23Sn_m4A2hNfJwZYURpb040jun6JXK7zwFyHvI E9vMU_veWqn-adrDcS7ATT44jAb- chrCLxeT0kirc81xSSWh1vY3JEL0esR5zmCK_RiA0xZpOkf7fAASGlyxpUeIrGoFj66PNI YG3GMuTQP7vye74X13m2z9txcKrGAYQHPvbaz_E2tFCJyc7rQtQNXqURoeTATTIVU c4ZDxQYOhvaZ0ebGhsYewv5V4SwJjPWNboE2_PNiNNWLxAFqzm47oYQe34VS7JL d8zjYbr375ojjNQfBDfQ2EeuuoA362BD9c1_NQ
  • 41.
  • 42. Permission Display String Description User.Read Sign-in and read user profile Allows users to sign-in to the app, and allows the app to read the profile of signed-in users. It also allows the app to read basic company information of signed-in users. User.ReadWrite Read and write access to user profile Allows the app to read the signed-in user's full profile. It also allows the app to update the signed-in user's profile information on their behalf. User.ReadBasic.All Read all users' basic profiles Allows the app to read a basic set of profile properties of other users in your organization on behalf of the signed-in user. This includes display name, first and last name, email address, open extensions and photo. Also allows the app to read the full profile of the signed-in user.
  • 43. Permission Display String Description User.Read Sign-in and read user profile Allows users to sign-in to the app, and allows the app to read the profile of signed-in users. It also allows the app to read basic company information of signed-in users. User.ReadWrite Read and write access to user profile Allows the app to read the signed-in user's full profile. It also allows the app to update the signed-in user's profile information on their behalf. User.ReadBasic.All Read all users' basic profiles Allows the app to read a basic set of profile properties of other users in your organization on behalf of the signed-in user. This includes display name, first and last name, email address, open extensions and photo. Also allows the app to read the full profile of the signed-in user. User.Read.All Read all users' full profiles Allows the app to read the full set of profile properties, reports, and managers of other users in your organization, on behalf of the signed-in user. User.ReadWrite.All Read and write all users' full profiles Allows the app to read and write the full set of profile properties, reports, and managers of other users in your organization, on behalf of the signed-in user. Also allows the app to create and delete users as well as reset user passwords on behalf of the signed-in user.
  • 44. Permission Display String Description Admin Consent Required User.Read Sign-in and read user profile Allows users to sign-in to the app, and allows the app to read the profile of signed-in users. It also allows the app to read basic company information of signed-in users. No User.ReadWrite Read and write access to user profile Allows the app to read the signed-in user's full profile. It also allows the app to update the signed-in user's profile information on their behalf. No User.ReadBasic.All Read all users' basic profiles Allows the app to read a basic set of profile properties of other users in your organization on behalf of the signed-in user. This includes display name, first and last name, email address, open extensions and photo. Also allows the app to read the full profile of the signed-in user. No User.Read.All Read all users' full profiles Allows the app to read the full set of profile properties, reports, and managers of other users in your organization, on behalf of the signed-in user. Yes User.ReadWrite.All Read and write all users' full profiles Allows the app to read and write the full set of profile properties, reports, and managers of other users in your organization, on behalf of the signed-in user. Also allows the app to create and delete users as well as reset user passwords on behalf of the signed-in user. Yes
  • 45. Users can not grant consent for a permission that requires Admin consent Admins can grant this consent When running the app
  • 46. Users can not grant consent for a permission that requires Admin consent
  • 47. Admins can also consent for all users in the organization Applies to both consent User and Admin permissions When running the app In the Azure Portal Great choice for LOB apps Developers should declare all permissions ahead of time
  • 48. Users can consent for their data or admin can consent for all users Only admin can consent Delegated permissions App Permissions App permissions Permission type: applicationPermission type: delegated Get access on behalf of users Get access as a service Effective permissionEffective permission https://aka.ms/ConsentAndPermissions
  • 49.
  • 50.
  • 51. Microsoft Graph https://graph.microsoft.com/ Insights and relationships Calendar Personal Contacts Files Notes Org Contacts NotesPeopleUsers ExcelTasksMailGroups Data XCode Eclipse or Android Studio Visual Studio REST Development Environment YOUR APP Your choice of technology (.NET, JS, HTML, Ruby, etc.) Microsoft Azure Other hosting (IIS, LAMP, etc.) Solution Authentication and Authorization OpenID Connect and OAuth 2.0
  • 55.
  • 56. Fast and simple integration Authentication libraries  Secure access to users and data made simple  Microsoft’s world (Microsoft Graph, other APIs)  Your own APIs  MSAL - best in class auth libs  Built for v2 endpoint, reach any audience  Follows Microsoft Security Development Lifecycle
  • 57. Fast and simple integration Simplifying the developer platform Your target audience Endpoint MSALClient SDK App registration ADAL
  • 58. Graph SDKs, samples and tooling
  • 59. Graph SDKs • Designed to simplify building high-quality, efficient, and resilient applications that access Microsoft Graph • Available to be included in your projects via GitHub and popular platform package managers • The library contains models and request builders that are generated from Microsoft Graph metadata
  • 60. Graph SDKs • Provides support for common tasks such as • Models and request builders for entities • Paging through collections. • Creating batch requests. • More.. • Embedded support for • Retry handling • Secure redirects • Payload compression • More.. Improve your application's interactions with Graph, without adding complexity
  • 61. Microsoft Graph .NET Authentication Provider Library  Microsoft Graph .NET authentication library provides a set of OAuth scenario-centric authentication providers that implement Microsoft.Graph.IAuthenticationProvider and uses Microsoft Authentication Library (MSAL) under the hood to handle access token acquisition and storage.  Its still in prerelease, so , use the –prerelease flag in Nuget fetch Install-Package Microsoft.Graph.Auth -PreRelease
  • 63. Scenario: A Web app calling Graph https://docs.microsoft.com/azure/active-directory/develop/scenario-web-app-call-api-overview IConfidentialClientApplication confidentialClientApplication = ConfidentialClientApplic ationBuilder .Create(clientId) .WithRedirectUri(redirectUri) .WithClientSecret(clientSecret) // or .WithCertificate(certificate) .Build(); AuthorizationCodeProvider authenticationProvider = new AuthorizationCodeProvider(confid entialClientApplication, scopes); GraphServiceClient graphServiceClient = new GraphServiceClient(authenticationProvider);
  • 64. Scenario: Desktop app calling Graph https://docs.microsoft.com/azure/active-directory/develop/scenario-desktop-overview IPublicClientApplication publicClientApplication = PublicClientApplicationBuilder .Create(clientId) .WithTenantId(tenantID) .Build(); InteractiveAuthenticationProvider authenticationProvider = new InteractiveAuthenticatio nProvider(publicClientApplication, scopes); GraphServiceClient graphServiceClient = new GraphServiceClient(authenticationProvider); IntegratedWindowsAuthenticationProvider authenticationProvider = new IntegratedWindowsA uthenticationProvider(publicClientApplication, scopes); GraphServiceClient graphServiceClient = new GraphServiceClient(authenticationProvider);
  • 65. Scenario: Web API calling Graph https://docs.microsoft.com/azure/active-directory/develop/scenario-web-api-call-api-overview IConfidentialClientApplication confidentialClientApplication = ConfidentialClientApplic ationBuilder .Create(clientId) .WithRedirectUri(redirectUri) .WithClientSecret(clientSecret) .Build(); OnBehalfOfProvider authenticationProvider = new OnBehalfOfProvider(confidentialClientAp plication, scopes); GraphServiceClient graphServiceClient = new GraphServiceClient(authenticationProvider);
  • 66. Scenario : Daemon app calling Graph https://docs.microsoft.com/azure/active-directory/develop/scenario-daemon-call-api?tabs=dotnet IConfidentialClientApplication confidentialClientApplication = ConfidentialClientApplic ationBuilder .Create(clientId) .WithTenantId(tenantID) .WithClientSecret(clientSecret) .Build(); ClientCredentialProvider authenticationProvider = new ClientCredentialProvider(confiden tialClientApplication); GraphServiceClient graphServiceClient = new GraphServiceClient(authenticationProvider);
  • 67. Scenario: Browserless app calling Graph https://docs.microsoft.com/en-us/azure/active-directory/develop/v2-oauth2-device-code IPublicClientApplication publicClientApplication = PublicClientApplicationBuilder .Create(clientId) .Build(); DeviceCodeProvider authenticationProvider = new DeviceCodeProvider(publicClientApplicat ion, scopes); GraphServiceClient graphServiceClient = new GraphServiceClient(authenticationProvider);
  • 68. Scenario: Mobile application calling Graph https://docs.microsoft.com/en-us/azure/active-directory/develop/scenario-mobile-overview IPublicClientApplication publicClientApplication = PublicClientApplicationBuilder .Create(clientId) .Build(); InteractiveAuthenticationProvider authenticationProvider = new InteractiveAuthenticatio nProvider(publicClientApplication, scopes); GraphServiceClient graphServiceClient = new GraphServiceClient(authenticationProvider);
  • 69.
  • 70.
  • 71.
  • 72. Office 365 Windows 10 Enterprise Mobility + Security Your tailored experiences or customizations https://graph.microsoft.com
  • 73. Microsoft Graph Data Connect Microsoft Graph Office 365 Windows 10 Enterprise Mobility + Security Microsoft Graph REST APIs and Webhooks Documents Conversations Portals Timeline Extend Microsoft 365 experiences Web apps Bots & agents Device & native Daemon apps Workflow automation Build your experience Connectors Microsoft Identity Azure AI platformYour local data Search Insight apps
  • 74. 1.Accessing data 2.Traversing data 3.Accessing insights 4.Work/School and Personal Accounts https://graph.microsoft.com/
  • 75. your Users, Groups, Organizations Outlook SharePoint OneDrive Teams Planner Excel OneNote Activities Device Relay Commands Notifications Azure AD Intune Identity Manager Advanced Threat Analytics Advanced Threat Protection Mail, Calendar, Contacts and Tasks Sites and Lists Drives and Files Channels, Messages Tasks and Plans Spreadsheets Notes, and more… Identity Management Access Control Synchronization Domains Administrative Units Applications and Devices Advanced Threat Analytics Advanced Threat Protection Alerts Policies and more… Office 365 Windows 10 Enterprise Mobility + Security https://graph.microsoft.com Dynamics 365 Business Central
  • 76.
  • 77. Next Session An introduction to Microsoft Graph for Developers Part 2 - Advanced topics Nov 21st 2019
  • 80. Microsoft Confidential Engage with us! Topic Feedback type Forum URL Who supports All identity developer topics (Auth libraries, MS Graph, App Registration portals) Community-driven developer Support for Questions and Answers Stack Overflow https://stackoverflow.com/questions/tagged/azu re-active-directory+or+microsoft- graph+or+azure-ad-conditional-access Supported by Microsoft and community Authentication Libraries – ADAL, MSAL, Auth Middleware Library issues, bugs, open source contributions GitHub https://docs.microsoft.com/azure/active- directory/develop/active-directory- authentication-libraries Azure AD teams manage issues, bugs and review/ approve contribution Azure AD, MS Graph, Libraries, App Registration – Developer Experiences Feature requests, suggestions for product improvements Azure Feedback Azure Feedback for Authentication and also AppRegFeedback@microsoft.com for portal specific feedback. User Voice for Microsoft Graph Azure AD teams triage feature requests All identity developer topics (Auth libraries, MS Graph, App Registration portals) Discussion with other MVPs and NDA community Yammer Identity Developer Advisors https://www.yammer.com/azureadvisors/#/threa ds/inGroup?type=in_group&feedId=5800064 Engagement with Identity Advisors and Microsoft product groups Identity developer topics for Auth Delve deep into complex identity related development topics live Community Office Hours azuread Twitter handle and the Microsoft Tech community Opportunity to make questions and answers in real time to product teams via live conference All developer topics Assisted support for developers Customer Service and Support More information on support options: https://aka.ms/devexhelpsupport Direct 1:1 help from our support engineering teams
  • 81. References and Samples • Microsoftidentityplatform(v2.0)overview • MSAL.NETWiki • MSAL.NETReferencedocumentation • InstalltheMicrosoftGraphSDKs • MicrosoftGraph.NETAuthenticationProviderLibrary • ChooseaMicrosoftGraphauthenticationproviderbasedon scenario • MicrosoftGraphUservoice • BestpracticesforworkingwithMicrosoftGraph • MicrosoftGraphresources • MicrosoftGraphTutorials
  • 82. Thank you! https://aka.ms/graph PAGE 85 Developing applications for Microsoft Graph
  • 83. What you’ll need to do to develop apps App registration Permissions (Token validation) Acquire token (Authorization) Token cache serialization Best practices
  • 84. Scenario: Desktop app that calls web APIs https://docs.microsoft.com/azure/active-directory/develop/scenario-desktop-overview IPublicClientApplication publicClientApplication = PublicClientApplicationBuilder .Create(clientId) .WithTenantId(tenantID) .Build(); UsernamePasswordProvider authenticationProvider = new UsernamePasswordProvider(publicCl ientApplication, scopes); GraphServiceClient graphServiceClient = new GraphServiceClient(authenticationProvider); IPublicClientApplication publicClientApplication = PublicClientApplicationBuilder .Create(clientId) .WithTenantId(tenantID) .Build();

Notes de l'éditeur

  1. With Microsoft Graph, apps and services can leverage this incredibly rich data set from M365 thanks to the Microsoft Graph service, which directs the calls to the right source so developer don’t need to know where exactly the data lives. Graph also aggregates calls for efficiency and performance, and allows the developer to easily traverse the graph of data. This way, it’s easy to build an app that – for example – based on a security alert in a tenant, can traverse the graph to see which users might be affected, and for each user, which devices and documents might be affected – thus making it easy to connect data from across many services to solve for real business scenarios. And some of these scenarios include : building apps for identity-centric scenarios - where users, and other AAD-centric and directory data is at the center – for example, like pulling in who is someone's manager or what organization they are in. Devs can build apps with richer content – Access deep insights generated from usage patterns, such as trending documents, best team meeting times, or who people typically work with. Devs can also build apps with deep insights based on machine learning algorithms that power some of the Graph APIs. And finally devs can build apps with real time updates of the data – for businesses that run in real time. Developers can respond to changes in Microsoft Graph data in real time. For example, reschedule a meeting based on responses, notify others when a file is modified, or continue a process after it's been approved. We’re super excited to make Microsoft Graph the gateway to data and intelligence in Microsoft 365 and give developers a unified programmability model to take advantage of the tremendous amount of data in Office 365, Enterprise Mobility + Security, and Windows 10. And we’ve also recently added Dynamics 365 Business Central data in Microsoft Graph.
  2. Demos with graph explorer: Prep: Navigate to https://http://aka.ms/ge Sign in and consent if prompted In the txt box type the requests bellow to showcase the API Click GO or press enter to execute the request and see the API call results. Demo Intro: This is a web application built for showcasing requests and responses of Microsoft Graph hosted under graph.microsoft.com. I’m logged in to this application using my credentials and I will show you how using this single endpoint I can access data across services in Office 365 and Azure. Requests: /ME Talking point: graph.microsoft.com is an API that aggregates information across services. Starting with the user, I can make request to get my profile using the shortcut /me. This requests goes and gets my basic profile information from Azure AD, my picture from Exchange and my extended profile from SharePoint, like my interests and skills https://graph.microsoft.com/v1.0/me https://graph.microsoft.com/v1.0/me/userPhoto https://graph.microsoft.com/v1.0/me?$select=skills /USERS Talking point: in a similar fashion I can get the same information for other users in my organization, including organizational structure https://graph.microsoft.com/v1.0/me/manager https://graph.microsoft.com/v1.0/me/directReports https://graph.microsoft.com/v1.0/me/memberOf https://graph.microsoft.com/v1.0/users https://graph.microsoft.com/v1.0/users?$filter=Department eq ‘Extensibility’ https://graph.microsoft.com/v1.0/users/kkrishna@microsoft.com https://graph.microsoft.com/v1.0/users/kkrishna@microsoft.com/manager /MESSAGES and /EVENTS Talking point: using the same endpoint I can get access to my messages and calendar from Exchange https://graph.microsoft.com/v1.0/me/messages?$top=5 https://graph.microsoft.com/v1.0/me/messages?$skip=5&$orderBy=DateTimeCreated https://graph.microsoft.com/v1.0/me/messages?$search=”from:dan” --- Use CTRL+F to use browser search to find Dan https://graph.microsoft.com/v1.0/me/events https://graph.microsoft.com/v1.0/me/events?$top5 /FILES Talking point: and files from OneDrive for Business. Furthermore, I can navigate to a particular file and see the profile of the last person who modified it https://graph.microsoft.com/v1.0/me/drive/root/children https://graph.microsoft.com/v1.0/me/drive/root/children/file.txt https://graph.microsoft.com/v1.0/me/drive/items/<id> https://graph.microsoft.com/v1.0/me/drive/items/<id>/lastModifiedByUser https://graph.microsoft.com/v1.0/kkrishna@microsoft.com/drive/root https://graph.microsoft.com/v1.0/kkrishna@microsoft.com/drive/items/<id>/lastModifiedByUser/manager /GROUPS Talking point: Microsoft Graph is also the API front for Office 365 Groups, where users can collaborate and have conversations, shared calendar and shared files. Using graph.microsoft.com is the way to go to access all of the group’s information, for both management and content. Information groups is coming from multiple services, including AAD, SharePoint and Exchange and growing to OneNote and others. https://graph.microsoft.com/v1.0/groups https://graph.microsoft.com/v1.0/groups?$filter=groupType eq ‘Unified’ https://graph.microsoft.com/v1.0/groups/<id> – Select a unified group on ID https://graph.microsoft.com/v1.0/groups /<id>/members https://graph.microsoft.com/v1.0/groups/<id>/drive/root/children https://graph.microsoft.com/v1.0/groups/<id>/conversations https://graph.microsoft.com/v1.0/groups/<id>/events /TRENDINGAROUND and /PEOPLE Talking point: Now, I think you have all heard about our intelligent services and the insight and relationships that we calculate based on user activity in the service. Microsoft Graph exposes those APIs as well. Here is where we take all of the data across Office 365 services and the signals collected based on user’s activity, and combine them and process them through a whole bunch of machine learning, relevance and ranking algorithms that return inferred and calculated insights and relationships between entities. These relationships between people, content and interactions that occur across Office 365. https://graph.microsoft.com/beta/me/people https://graph.microsoft.com/beta/me/trendingAround /WORKBOOK – EXCEL API Talking point: Do you need to calculate, analyze, automate, report on or manage data in your app? Well, look no further at building these capabilities yourself – using the new Excel REST API, you have the power and simplicity of Excel at your fingertips (or a few simple HTTP calls) for all of your app’s calculation needs. https://graph.microsoft.com/v1.0/me/drive/root:/bool.xlsx:/workbook/worksheets('Sheet1') PATCH https://graph.microsoft.com/v1.0/me/drive/root:/bool.xlsx:/workbook/worksheets('Sheet1')/range(address='A1:A6')/format/fill { color: "#FF0000" }      
  3. You protect your business and your customer. When your app asks for all the permissions you make your app a target. If it gets compromised then your own name is at stake.
  4. Microsoft Build 2017
  5. Microsoft Tech Summit FY17
  6. Why libraries? Goal not OAuth2 expert, Goal awesome apps, tax You have choices – Microsoft open standards – lots open source choices Advantages – common tasks few lines of code, SSO, take care CA – MDM / MAM If you are on ADAL, not only supported, invested update UPDATE ADAL – better SSO
  7. 1 – one portal, all apps – converged, backfilled – “app is an app” 2 – ADAL not deprecated – debated color 3 – v2 endpoint – now issues v1 tokens 4 - ADFS
  8. One more way of looking at what Microsoft Graph has to offer is by looking at the resources is exposes These services and the suite of products behind them, have core entities that drive user productivity and the one of the first steps on my journey to serve you as a developer is to expose these core entities in a coherent and consistent form so that you can interact with them and use them in your tailored solutions.
  9. NOTE: Prevent you from using extensions to solve real customer problems
  10. 80