Using Windows Azure for Solving Identity Management Challenges

38
Using Windows Azure for Solving Identity Management Challenges Michael S. Collier

description

 

Transcript of Using Windows Azure for Solving Identity Management Challenges

Page 1: Using Windows Azure for Solving Identity Management Challenges

Using Windows Azure for Solving Identity Management Challenges

Michael S. Collier

Page 2: Using Windows Azure for Solving Identity Management Challenges

Michael S. Collier

• Principal Cloud Architect, Aditi

[email protected]• @MichaelCollier• www.MichaelSCollier.com

Page 3: Using Windows Azure for Solving Identity Management Challenges

Platinum Sponsors

Gold Sponsors

Page 4: Using Windows Azure for Solving Identity Management Challenges
Page 5: Using Windows Azure for Solving Identity Management Challenges

What We’re Talking About

• Identity - Current State and in The Cloud• Windows Azure solutions• Mobile Services• Access Control Service (ACS)• Windows Azure Active Directory

6

Page 6: Using Windows Azure for Solving Identity Management Challenges

Who Are You?

• Personalization• Business Rules• Functionality / Features

7

Page 7: Using Windows Azure for Solving Identity Management Challenges

8

Traditional Identity Management

• IT Pro – controls the known world• Developers – blissfully ignorant?

ADSQL

My Enterprise

LOB App

Page 8: Using Windows Azure for Solving Identity Management Challenges

Cloud . . . A New Challenge

• Move the application & data• Islands of identity• Outside of “traditional” IT world• External users / partners• BYOD

• Developers ignorant no more• Developers + IT Pros

9

Page 9: Using Windows Azure for Solving Identity Management Challenges

10

Windows Azure Options

Mobile Services

Active DirectoryAccess Control Service

(ACS)

Server Active Directory

AD w/ DirSync

Page 10: Using Windows Azure for Solving Identity Management Challenges

11

Mobile Services

• Goal – easily build cloud-powered mobile apps

• Built-in support for multiple social identity providers

private async System.Threading.Tasks.Task Authenticate(){ while (user == null) { string message; try { user = await App.MobileService.LoginAsync(MobileServiceAuthenticationProvider.Twitter); message = string.Format("You are now logged in - {0}", user.UserId); CurrentUser.Text = "Welcome, " + App.MobileService.CurrentUser.UserId; } catch (InvalidOperationException) { message = "You must log in. Login Required"; }

var dialog = new MessageDialog(message); dialog.Commands.Add(new UICommand("OK")); await dialog.ShowAsync(); }}

FacebookGoogleMicrosoftAccountTwitter

Page 11: Using Windows Azure for Solving Identity Management Challenges

Mobile Services

12

Page 12: Using Windows Azure for Solving Identity Management Challenges

Authentication

• Microsoft Account, Facebook, Twitter, and Google

• OAuth• Does not use Windows Azure ACS

Page 13: Using Windows Azure for Solving Identity Management Challenges

Authentication

• Microsoft Account – Use the Live SDK• Tight integration with Windows Live services

Page 14: Using Windows Azure for Solving Identity Management Challenges

More Mobile Services?

• Programming Windows Azure Mobile Services• Jason Farrell• Wednesday at 10:30am• Portia

15

Page 15: Using Windows Azure for Solving Identity Management Challenges

Access Control Service (ACS)

• Federated identity/authentication service• Google, Microsoft Account, Yahoo!, ADFS v2• Bring your own membership

• Claims-based authorization• Browser based (302 redirect)• Focus on your app

16

Page 16: Using Windows Azure for Solving Identity Management Challenges

DEMO TIME!!!Access Control Service (ACS)

Page 17: Using Windows Azure for Solving Identity Management Challenges

ACS Tips

• Enrich claims w/ a ClaimsAuthenticationManager

• Update WIF settings in web.config in OnStart()

• Web Farm Ready Cookies• Web Sites and Cloud Services• DPAPI not supported in Windows Azure

• Provide sign-out link for identity providers• Azure co-admin can’t admin ACS namespace31

Page 18: Using Windows Azure for Solving Identity Management Challenges

Windows Azure Active Directory

• Internet scale, multi-tenant directory service

• Directory store for Office 365

• Extend Windows Server AD to the cloud

• Directory & identity services w/o need for Windows Server AD

32

Active Directory

O365 Account Portal

Intune Account Portal

Windows Azure Mgmt Portal

Azure AD PowerShell cmdlets

Page 19: Using Windows Azure for Solving Identity Management Challenges

Windows Azure Active Directory

• Multi-tenant “directory-as-a-service”• NOT a cloud version of Windows Server AD

33

Image Source: http://technet.microsoft.com/en-us/library/jj573650.aspx

Page 20: Using Windows Azure for Solving Identity Management Challenges

Windows Azure Active Directory

34

Windows Azure Management Portal

REST API

SAML-P

O-Auth

WS-Federation

Integration / Management Endpoints

Windows Azure Active Directory

Page 21: Using Windows Azure for Solving Identity Management Challenges

Windows Azure Active Directory

35

Integration / Management Endpoints

Page 22: Using Windows Azure for Solving Identity Management Challenges

Windows Azure Active Directory

• What’s in the directory?• Everything is an object• Types: User, Group, Role, Application, Device, etc.

36

Page 23: Using Windows Azure for Solving Identity Management Challenges

WAAD Graph Response<?xml version="1.0" encoding="utf-8"?><feed xml:base="https://graph.windows.net/collierdemo.onmicrosoft.com/" xmlns="http://www.w3.org/2005/Atom" xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices" xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata" xmlns:georss="http://www.georss.org/georss" xmlns:gml="http://www.opengis.net/gml"><id>https://graph.windows.net/11271159-abc8-4e0e-b3c2-c2a0858a036b/directoryObjects/$/Microsoft.WindowsAzure.ActiveDirectory.User</id> <title type="text">Microsoft.WindowsAzure.ActiveDirectory.User</title> <updated>2013-03-21T00:58:34Z</updated> <link rel="self" title="Microsoft.WindowsAzure.ActiveDirectory.User" href="Microsoft.WindowsAzure.ActiveDirectory.User" /> <entry> <id>https://graph.windows.net/11271159-abc8-4e0e-b3c2-c2a0858a036b/directoryObjects/23dc9514-64ec-4c94-8f03-4edf9016b2a6</id> <category term="Microsoft.WindowsAzure.ActiveDirectory.User" scheme="http://schemas.microsoft.com/ado/2007/08/dataservices/scheme" /> <link rel="edit" title="User" href="directoryObjects/23dc9514-64ec-4c94-8f03-4edf9016b2a6/Microsoft.WindowsAzure.ActiveDirectory.User" /> <link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/manager" type="application/atom+xml;type=entry" title="manager" href="directoryObjects/23dc9514-64ec-4c94-8f03-4edf9016b2a6/Microsoft.WindowsAzure.ActiveDirectory.User/manager" /> <link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/directReports" type="application/atom+xml;type=feed" title="directReports" href="directoryObjects/23dc9514-64ec-4c94-8f03-4edf9016b2a6/Microsoft.WindowsAzure.ActiveDirectory.User/directReports" /> <link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/members" type="application/atom+xml;type=feed" title="members" href="directoryObjects/23dc9514-64ec-4c94-8f03-4edf9016b2a6/Microsoft.WindowsAzure.ActiveDirectory.User/members" /> <link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/memberOf" type="application/atom+xml;type=feed" title="memberOf" href="directoryObjects/23dc9514-64ec-4c94-8f03-4edf9016b2a6/Microsoft.WindowsAzure.ActiveDirectory.User/memberOf" /> <link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/permissions" type="application/atom+xml;type=feed" title="permissions" href="directoryObjects/23dc9514-64ec-4c94-8f03-4edf9016b2a6/Microsoft.WindowsAzure.ActiveDirectory.User/permissions" />

37

Page 24: Using Windows Azure for Solving Identity Management Challenges

WAAD Graph Response

38

<link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/edit-media/thumbnailPhoto" title="thumbnailPhoto" href="directoryObjects/23dc9514-64ec-4c94-8f03-4edf9016b2a6/Microsoft.WindowsAzure.ActiveDirectory.User/thumbnailPhoto" /> <m:action metadata="https://graph.windows.net/michaelcollier.onmicrosoft.com/$metadata#DirectoryDataService.assignLicense" title="assignLicense" target="https://graph.windows.net/collierdemo.onmicrosoft.com/directoryObjects/23dc9514-64ec-4c94-8f03-4edf9016b2a6/Microsoft.WindowsAzure.ActiveDirectory.User/assignLicense" /> <content type="application/xml"> <m:properties> <d:objectType>User</d:objectType> <d:objectId>23dc9514-64ec-4c94-8f03-4edf9016b2a6</d:objectId> <d:accountEnabled m:type="Edm.Boolean">true</d:accountEnabled> <d:assignedLicenses m:type="Collection(Microsoft.WindowsAzure.ActiveDirectory.AssignedLicense)" /> <d:assignedPlans m:type="Collection(Microsoft.WindowsAzure.ActiveDirectory.AssignedPlan)" /> <d:city m:null="true" /> <d:displayName>Michael Collier</d:displayName> <d:givenName>Michael</d:givenName> <d:mailNickname>michael</d:mailNickname> <d:mobile>+1 6142883146</d:mobile> <d:otherMails m:type="Collection(Edm.String)"> <d:element>[email protected]</d:element> </d:otherMails> <d:userPrincipalName>[email protected]</d:userPrincipalName> </m:properties> </content> </entry></feed>

* Some elements removed for readability.

Page 25: Using Windows Azure for Solving Identity Management Challenges

39

Graph API Helpers

• REST interface for WAAD• Graph Explorer: https://graphexplorer.cloudapp.net

/• AAD Helper: http

://code.msdn.microsoft.com/Windows-Azure-AD-Graph-API-a8c72e18

• Active Directory Authentication Library (ADAL)• https://www.nuget.org/packages/System.IdentityModel.

Clients.ActiveDirectory/

• http://www.cloudidentity.com/blog/2013/08/02/aal-becomes-adal-active-directory-authentication-library/

• Formerly Azure Authentication Library (AAL)

Page 26: Using Windows Azure for Solving Identity Management Challenges

WAAD Authentication

• Authentication for cloud-based & native apps

• Permissions• SSO, Read Data, Read & Write Data• Applies to the APPLICATION, not the user

40

Page 27: Using Windows Azure for Solving Identity Management Challenges

DEMO TIME!!!Windows Azure AD – Single Sign-On, Web API, and Windows

Store

Page 28: Using Windows Azure for Solving Identity Management Challenges

WAAD and the Enterprise

59

ADSQL

My Enterprise

LOB App

Page 29: Using Windows Azure for Solving Identity Management Challenges

WAAD and the Enterprise

60

• Passwords sync every 2 minutes

• Users sync every 3 hours

My Enterprise

Dir

Syn

c

LOB App

SQL

Page 30: Using Windows Azure for Solving Identity Management Challenges

Where Does the Authentication Happen?

61

Portal PowerShell/ Directory GRAPH

DirSync w/Cloud identities

DirSync w/Password

Sync

DirSync w/SSO

Target customer segment

• Small • Small to Medium • Small/Medium • Small/Medium • Medium/Large

Scenario supported

• Least • Least • Some limitation • Some limitations • Most

Directory Source of Authority

• Cloud • Cloud • On-premises • On-premises • On-premises

Hardware requirements

• No additional hardware required

• No additional hardware required

• Windows Server OS for DirSync appliance

• Windows Server OS for DirSync appliance

• DirSync appliance• ADFS (or other

STS) deployment

IDP • Cloud • Cloud • Cloud • Cloud • On-premises

User login experience

• Disjoint username and password• Enter

credentials twice

• Disjoint username and password• Enter

credentials twice

• Same username, disjoint password• Enter

credentials twice

• Same username and password for on-prem and cloud• Enter

credentials twice

• Same username and password for on-prem and cloud• Login once if on-

premises

Complexity • Low • Medium • Low • Low • HighTable Source: Microsoft Office 365 Directory and Access Management with Windows Azure Active Directory, Ross Adams & Jono Luk – TechEd NA 2013

Page 31: Using Windows Azure for Solving Identity Management Challenges

DEMO TIME!!!Windows Azure Active Directory w/ DirSync

Page 32: Using Windows Azure for Solving Identity Management Challenges

Going Further with Windows Azure AD

• Multitenant applications• Leverage identity from other WAAD tenants• http://

www.windowsazure.com/en-us/develop/net/tutorials/multitenant-apps-for-active-directory/

• Phone 2FA (Multi-Factor Authentication)• Additional administrative users• Username/pwd + text message code

63

Page 33: Using Windows Azure for Solving Identity Management Challenges

Summary

• Developers, Architects, & IT Pros work together• Mobile Services• Quickly add Identity Providers via portal config and code

• ACS• Federated identity authentication• Claims-based authorization

• Windows Azure AD• “Extends” Windows Server AD to the cloud• Query via REST graph API

64

Page 34: Using Windows Azure for Solving Identity Management Challenges

65

Helpful Resources

• Mobile Services• Handling Expired Tokens -

http://www.thejoyofcode.com/Handling_expired_tokens_in_your_application_Day_11_.aspx • Carlos Figueira’s Blog - http://blogs.msdn.com/b/carlosfigueira/

• ACS• Cheat Sheet – http://bit.ly/ACSCheatSheet • How To’s – http://bit.ly/ACSHowTo• Tips – http://bit.ly/HYhxjY

• Azure Active Directory• “Microsoft Office 365 Directory and Access Management with Windows Azure Active

Directory”, Ross Adams & Jono Luk – TechEd NA 2013• “Deep Dive into the Windows Azure Active Directory Graph API: Data Model, Schema,

Query, and More”, Edward Wu – TechEd NA 2013• Securing a Windows Store App and REST API using Windows Azure AD - http://

msdn.microsoft.com/en-us/library/windowsazure/dn169448.aspx

• Vittorio Bertocci’s Blog - http://www.cloudidentity.com/blog/

Page 35: Using Windows Azure for Solving Identity Management Challenges

Q &

A

Ask your questions

Page 36: Using Windows Azure for Solving Identity Management Challenges

Thank You!

• Michael S. Collier• Principal Cloud Architect, Aditi

[email protected]• @MichaelCollier• www.MichaelSCollier.com

Page 37: Using Windows Azure for Solving Identity Management Challenges
Page 38: Using Windows Azure for Solving Identity Management Challenges

August 11th – 13th 2014Same Place, Same Time