using windows azure for solving identity management challenges

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

Upload: michael-collier

Post on 12-Nov-2014

3.957 views

Category:

Technology


1 download

DESCRIPTION

 

TRANSCRIPT

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