Identity (Azure+O365)
Mostafa Elzoghbi
Sr. Technical Evangelist @ Microsoft
@MostafaElzoghbi
Agenda
 Why our cloud
 Authentication 101,
getting things done
 How to use Office 365
and Azure on your
app
(+ with access control)
A story about two organizations...
Video
A better cloud
From private
or hybrid and IaaS
to full PaaS/SaaS
Azure + o365
• Fully flexible: Private, on premises,
hybrid or cloud
• The power of o365: Leverage Office,
SharePoint and Exchange Online as
your application building blocks
• Identity is the glue that makes all of
that possible
Your identity goes with you
3rd party clouds/hosting
Azure AD
You
Enabling modern
authentication protocols
Using great building blocks on
your apps
How do we make all of that work?
Enabling modern
authentication protocols
Modern Authentication Protocols
OAuth 2.0
OAuth 2.0
WS-Fed, SAML 2.0,
OpenID Connect
OAuth 2.0
Claims about the user
Object ID b3809430-6c28-4e43-870d-fa7d38636dcd
Tenant ID 81aabdd2-3682-48fd-9efa-2cb2fcea8557
Security
Display
Subject
Name
First Name
Last Name
frank@contoso.com
Frank
Miller
m70fSk8OdeYYyCYY6C3922lmZMz9JKCGR0P1
Authentication
libraries
 Good news: You don’t need to know these
things in details
 Libraries such as Azure Active Directory
Authentication Library do all the plumbing
for you
Enabling great building
blocks
Building blocks: Azure Active Directory
 Provides identity and access management for the cloud
 Users, groups, applications and permissions
Building blocks: Graph API
 REST API for Azure Active Directory
 Allows programmatic access to users, groups,
applications and permissions
Example: Nick creates a PowerShell script that provisions the
required permissions for his application to an Azure tenant
 The best Office productivity tools, available online
 Includes REST APIs you can use from your applications
 Seamless integration with Azure Active Directory
Example: An application can automatically scan e-mails from Exchange and
generate a Word document with a summary, saving it on SharePoint Online
Building blocks: Office 365
So how do we build it?
For a typical Web Application
Step 1: Visual Studio, file new project
Step 2: Click “Change Authentication”
Step 3: Configure organizational account
What happens then:
Visual Studio configures the application permission
settings for you on Azure Active Directory!
Visual Studio
App
permissions
Azure AD
More complex scenario:
Mobile app -> mobile service -> O365
Nick (the developer) registers two applications:
• A mobile web service
• A mobile client
Step 1: Register your apps on Azure AD
AD needs to know which web service the “MobileServices”
app is actually referring to.
Step 2: Map the AD app to the actual web service
The client app must be allowed to call the web service.
It is also allowed to logon to Azure Active Directory (by default)
Step 3: Set permissions
And the web service is allowed to call SharePoint online and
Graph API
Step 3: Set permissions
Nick can make his app multi tenant, so James from Contoso
Inc. could use it in his organization if the permissions were set
correctly
Step 4 (optional): Making an app multi tenant
Woodgrove Contoso
Step 5: User logs on to the app
A user logs on to
the app for the first
time. Consent is
presented. This is
basically saying:
“This is what the app
will do, are you ok
with it?”
Step 5: User logs on to the app
If the user is the
global admin for the
Azure tenant, the
consent asks if the
admin wants to
grant permissions
for the app across
all users of that
organization.
admin
Go to app access panel:
http://myapps.microsoft.com/
 Where users see apps they have access to
 Includes apps they’ve consented to
 Users can revoke consented apps
Step 6 (optional): What if I change my mind later?
Demo: Azure AD (AAD) and
Application Registration
Application Walkthrough’s
 https://github.com/AzureADSamples
 Some examples:
 WebApp-WebAPI-OAuth2-UserIdentity-DotNet
 WebApp-WebAPI-OpenIDConnect-DotNet
 WebApp-GraphAPI-PHP
 WebAPI-Nodejs
 NativeClient-Xamarin-iOS
 NativeClient-iOS
Labs on Graph API
https://github.com/AzureADSamples?query=Graph
WebApp-GraphAPI-DotNet
WebApp-GraphAPI-PHP
WebApp-GraphAPI-Java
ConsoleApp-GraphAPI-DiffQuery-DotNet
WindowsAzureAD-GraphAPI-Sample-PHP
WindowsAzureAD-GraphAPI-Sample-OrgChart
 Got Questions ?
 Post your questions to:
 Stack Overflow Forums
 MSDN Forums
 Twitter: @MostafaElzoghbi
Get started
Visit azure.microsoft.com
Identity and o365 on Azure

Identity and o365 on Azure

  • 1.
    Identity (Azure+O365) Mostafa Elzoghbi Sr.Technical Evangelist @ Microsoft @MostafaElzoghbi
  • 2.
    Agenda  Why ourcloud  Authentication 101, getting things done  How to use Office 365 and Azure on your app (+ with access control)
  • 3.
    A story abouttwo organizations...
  • 4.
  • 5.
    A better cloud Fromprivate or hybrid and IaaS to full PaaS/SaaS
  • 6.
    Azure + o365 •Fully flexible: Private, on premises, hybrid or cloud • The power of o365: Leverage Office, SharePoint and Exchange Online as your application building blocks • Identity is the glue that makes all of that possible
  • 7.
    Your identity goeswith you 3rd party clouds/hosting Azure AD You
  • 8.
    Enabling modern authentication protocols Usinggreat building blocks on your apps How do we make all of that work?
  • 9.
  • 10.
    Modern Authentication Protocols OAuth2.0 OAuth 2.0 WS-Fed, SAML 2.0, OpenID Connect OAuth 2.0
  • 11.
    Claims about theuser Object ID b3809430-6c28-4e43-870d-fa7d38636dcd Tenant ID 81aabdd2-3682-48fd-9efa-2cb2fcea8557 Security Display Subject Name First Name Last Name frank@contoso.com Frank Miller m70fSk8OdeYYyCYY6C3922lmZMz9JKCGR0P1
  • 12.
    Authentication libraries  Good news:You don’t need to know these things in details  Libraries such as Azure Active Directory Authentication Library do all the plumbing for you
  • 13.
  • 14.
    Building blocks: AzureActive Directory  Provides identity and access management for the cloud  Users, groups, applications and permissions
  • 15.
    Building blocks: GraphAPI  REST API for Azure Active Directory  Allows programmatic access to users, groups, applications and permissions Example: Nick creates a PowerShell script that provisions the required permissions for his application to an Azure tenant
  • 16.
     The bestOffice productivity tools, available online  Includes REST APIs you can use from your applications  Seamless integration with Azure Active Directory Example: An application can automatically scan e-mails from Exchange and generate a Word document with a summary, saving it on SharePoint Online Building blocks: Office 365
  • 17.
    So how dowe build it?
  • 18.
    For a typicalWeb Application
  • 19.
    Step 1: VisualStudio, file new project
  • 20.
    Step 2: Click“Change Authentication”
  • 21.
    Step 3: Configureorganizational account
  • 22.
    What happens then: VisualStudio configures the application permission settings for you on Azure Active Directory! Visual Studio App permissions Azure AD
  • 23.
    More complex scenario: Mobileapp -> mobile service -> O365
  • 24.
    Nick (the developer)registers two applications: • A mobile web service • A mobile client Step 1: Register your apps on Azure AD
  • 25.
    AD needs toknow which web service the “MobileServices” app is actually referring to. Step 2: Map the AD app to the actual web service
  • 26.
    The client appmust be allowed to call the web service. It is also allowed to logon to Azure Active Directory (by default) Step 3: Set permissions
  • 27.
    And the webservice is allowed to call SharePoint online and Graph API Step 3: Set permissions
  • 28.
    Nick can makehis app multi tenant, so James from Contoso Inc. could use it in his organization if the permissions were set correctly Step 4 (optional): Making an app multi tenant Woodgrove Contoso
  • 29.
    Step 5: Userlogs on to the app A user logs on to the app for the first time. Consent is presented. This is basically saying: “This is what the app will do, are you ok with it?”
  • 30.
    Step 5: Userlogs on to the app If the user is the global admin for the Azure tenant, the consent asks if the admin wants to grant permissions for the app across all users of that organization. admin
  • 31.
    Go to appaccess panel: http://myapps.microsoft.com/  Where users see apps they have access to  Includes apps they’ve consented to  Users can revoke consented apps Step 6 (optional): What if I change my mind later?
  • 32.
    Demo: Azure AD(AAD) and Application Registration
  • 33.
    Application Walkthrough’s  https://github.com/AzureADSamples Some examples:  WebApp-WebAPI-OAuth2-UserIdentity-DotNet  WebApp-WebAPI-OpenIDConnect-DotNet  WebApp-GraphAPI-PHP  WebAPI-Nodejs  NativeClient-Xamarin-iOS  NativeClient-iOS
  • 34.
    Labs on GraphAPI https://github.com/AzureADSamples?query=Graph WebApp-GraphAPI-DotNet WebApp-GraphAPI-PHP WebApp-GraphAPI-Java ConsoleApp-GraphAPI-DiffQuery-DotNet WindowsAzureAD-GraphAPI-Sample-PHP WindowsAzureAD-GraphAPI-Sample-OrgChart
  • 35.
     Got Questions?  Post your questions to:  Stack Overflow Forums  MSDN Forums  Twitter: @MostafaElzoghbi
  • 36.

Editor's Notes

  • #2 Mostafa Elzoghbi @MostafaElzoghbi www.MostafaElzoghbi
  • #12 Speaker note: The goal is not doing a deep dive on authentication protocols but present options and a high level view of what to use when
  • #17 [click] Example
  • #18 [click] Example