(azure+o365) identity presenter name position or role microsoft azure

45
(Azure+O365) Identity Presenter Name Position or role Microsoft Azure

Upload: marjory-cunningham

Post on 03-Jan-2016

232 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: (Azure+O365) Identity Presenter Name Position or role Microsoft Azure

(Azure+O365) Identity

Presenter NamePosition or role

Microsoft Azure

Page 2: (Azure+O365) Identity Presenter Name Position or role Microsoft Azure

Agenda• Why our cloud• Authentication 101, getting things done• How to use Office 365 and Azure on

your app(+ with access

control)

Page 3: (Azure+O365) Identity Presenter Name Position or role Microsoft Azure

A story about two organizations...

Page 5: (Azure+O365) Identity Presenter Name Position or role Microsoft Azure

A better cloud

From privateor hybrid and IaaSto full PaaS/SaaS

Page 6: (Azure+O365) Identity Presenter Name Position or role Microsoft Azure

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

Page 7: (Azure+O365) Identity Presenter Name Position or role Microsoft Azure

Your identity goes with you

PCs and devices

3rd party clouds/hosting

Azure AD

You

Page 8: (Azure+O365) Identity Presenter Name Position or role Microsoft Azure

How do we make all of that work?

• Enabling modern authentication protocols

• Using great building blocks on your apps

Page 9: (Azure+O365) Identity Presenter Name Position or role Microsoft Azure

Enabling modern authentication protocols

Page 10: (Azure+O365) Identity Presenter Name Position or role Microsoft Azure

Modern Authentication Protocols

Browser

Native app

Server app

Web applicatio

n

Web service

API

OAuth 2.0

OAuth 2.0

WS-Fed, SAML 2.0, OpenID

Connect

OAuth 2.0

Standard, http-based protocols for maximum platform reach

Page 11: (Azure+O365) Identity Presenter Name Position or role Microsoft Azure

Web Application

Browser

WS-Fed SAML 2.0 OpenID Connect

Modern Authentication Protocols

Page 12: (Azure+O365) Identity Presenter Name Position or role Microsoft Azure

Web API

Web API

Native App

OAuth 2.0OpenID Connect

OAuth 2.0OnBehalfOf

Modern Authentication Protocols

Page 13: (Azure+O365) Identity Presenter Name Position or role Microsoft Azure

Web APP

Web API

OAuth 2.0client_credentials

Modern Authentication Protocols

Page 14: (Azure+O365) Identity Presenter Name Position or role Microsoft Azure

Claims about the user

Object ID b3809430-6c28-4e43-870d-fa7d38636dcd

Claim Type Claim ValueUsage

Tenant ID 81aabdd2-3682-48fd-9efa-2cb2fcea8557

Security

Display

Subject

Name

First Name

Last Name

[email protected]

Frank

Miller

m70fSk8OdeYYyCYY6C3922lmZMz9JKCGR0P1

Page 15: (Azure+O365) Identity Presenter Name Position or role Microsoft Azure

• 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

Authentication libraries

Page 16: (Azure+O365) Identity Presenter Name Position or role Microsoft Azure

Enabling great building blocks

Page 17: (Azure+O365) Identity Presenter Name Position or role Microsoft Azure

• Provides identity and access management for the cloud

• Users, groups, applications and permissions

Building blocks: Azure Active Directory

Page 18: (Azure+O365) Identity Presenter Name Position or role Microsoft Azure

• 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

Building blocks: Graph API

Page 19: (Azure+O365) Identity Presenter Name Position or role Microsoft Azure

• 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 online and generate a Word document with a summary, saving it on SharePoint online

Building blocks: Office 365

Page 20: (Azure+O365) Identity Presenter Name Position or role Microsoft Azure

So how do we build it?

Page 21: (Azure+O365) Identity Presenter Name Position or role Microsoft Azure

For a typical Web Application

Page 22: (Azure+O365) Identity Presenter Name Position or role Microsoft Azure

Step 1: Visual Studio, file new project

Page 23: (Azure+O365) Identity Presenter Name Position or role Microsoft Azure

Step 2: Click “Change Authentication”

Page 24: (Azure+O365) Identity Presenter Name Position or role Microsoft Azure

Step 3: Configure organizational account

Page 25: (Azure+O365) Identity Presenter Name Position or role Microsoft Azure

What happens then:

Visual Studio configures the application permission settings for you on Azure Active Directory!

Visual StudioApp

permissionsAzure AD

Page 26: (Azure+O365) Identity Presenter Name Position or role Microsoft Azure

More complex scenario:

Mobile app -> mobile service -> O365

Page 27: (Azure+O365) Identity Presenter Name Position or role Microsoft Azure

Nick (the developer) registers two applications:• A mobile web service • A mobile client

Step 1: Register your apps on Azure AD

Page 28: (Azure+O365) Identity Presenter Name Position or role Microsoft Azure

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

Page 29: (Azure+O365) Identity Presenter Name Position or role Microsoft Azure

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

Page 30: (Azure+O365) Identity Presenter Name Position or role Microsoft Azure

And the web service is allowed to call SharePoint online and Graph API

Step 3: Set permissions

Page 31: (Azure+O365) Identity Presenter Name Position or role Microsoft Azure

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

Page 32: (Azure+O365) Identity Presenter Name Position or role Microsoft Azure

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?”

Page 33: (Azure+O365) Identity Presenter Name Position or role Microsoft Azure

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

Page 34: (Azure+O365) Identity Presenter Name Position or role Microsoft Azure

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?

Page 35: (Azure+O365) Identity Presenter Name Position or role Microsoft Azure

Implementation details

Let’s dive deeper into the Rabbit’s hole

Page 36: (Azure+O365) Identity Presenter Name Position or role Microsoft Azure

Active Directory Authentication Library (ADAL)string clientId = "[Enter client ID as obtained from Azure Portal]";

string authority = "https://login.windows.net/[your tenant name]";

string myURI = "[Enter App ID URI of your service]";

AuthenticationContext authContext = new AuthenticationContext(authority);

AuthenticationResult result = await authContext.AcquireTokenAsync(myURI, clientId);

Page 37: (Azure+O365) Identity Presenter Name Position or role Microsoft Azure

Graph API•RESTful interface to Azure Active Directory• Tenant Specific – queries are scoped to individual tenant

context• Programmatic access to directory objects such as Users,

Groups, Contacts, Tenant Information, Roles, Applications and Permissions• Access relationships: members, memberOf, manager,

directReports

•Requests use standard HTTP methods• GET, POST, PATCH, DELETE to create, read, update, and

delete• Response support JSON, XML, standard HTTP status

codes• Compatible with OData V3

•OAuth 2.0 Support• Both Client Credentials and Authorization Code flow

Page 38: (Azure+O365) Identity Presenter Name Position or role Microsoft Azure

https://graph.windows.net/contoso.com/users?api-version=2013-04-05&$filter=state eq ‘WA’

Graph URL

(static)

Specific entity type, such as users, groups, contacts, tenantDetails, roles, applications, etc.

Tenant of interest – can be tenant’s verified domain or objectId.

Optional Odata query arguments: $filter, $top

API version – “2013-04-05” is the 1.0 version

Graph API

Page 39: (Azure+O365) Identity Presenter Name Position or role Microsoft Azure

Office 365 REST APIs

•RESTful interface to Office on the cloud• File APIs for OneDrive for Business• Mail, Calendar and Contacts APIs on Exchange online• SharePoint online APIs

Example: GET ../_api/files(<file_path>)/downloadDownloads a file stored on SharePoint online / OneDrive for Business

•OAuth 2.0 Support

Page 40: (Azure+O365) Identity Presenter Name Position or role Microsoft Azure

Demo: Facilities app

Page 41: (Azure+O365) Identity Presenter Name Position or role Microsoft Azure

Application Model

Consent

Contoso

Azure AD

Facilities App settings+

Facilities Web Service settings

(multi tenant)

Azure AD

Woodgrove

Facilities App settings+

Facilities Web Service settings

Page 42: (Azure+O365) Identity Presenter Name Position or role Microsoft Azure

Authentication and Authorization to Graph API

Application

2. Return token

1. Request JWT token(pass input claims)

REST ServiceValidates token, processes request, returns data

3. HTTP Requestwith JWT Token

Azure Active Directory

Azure AD Authentication Endpoint (OAuth)

4. Return Response and Data

Azure AD

Author

izatio

n Chec

k

Page 43: (Azure+O365) Identity Presenter Name Position or role Microsoft Azure

Application Walkthrough’shttps://github.com/AzureADSamples

Some examples:WebApp-WebAPI-OAuth2-UserIdentity-DotNetWebApp-WebAPI-OpenIDConnect-DotNetWebApp-GraphAPI-PHPWebAPI-NodejsNativeClient-Xamarin-iOSNativeClient-iOS

Page 44: (Azure+O365) Identity Presenter Name Position or role Microsoft Azure

Labs on Graph APIhttps://github.com/AzureADSamples?query=Graph

WebApp-GraphAPI-DotNetWebApp-GraphAPI-PHPWebApp-GraphAPI-JavaConsoleApp-GraphAPI-DiffQuery-DotNetWindowsAzureAD-GraphAPI-Sample-PHPWindowsAzureAD-GraphAPI-Sample-OrgChart

Page 45: (Azure+O365) Identity Presenter Name Position or role Microsoft Azure

© 2014 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.