1. 29 Mars 2014, Paris, FranceLa Communauté Open Source Azure Française
2. GÉRER FACILEMENT LES IDENTITÉS DANS LE CLOUD
Jean-Luc Boucho, Infosys, Architecte, MVP Windows Azure
3. Agenda
Défis de la Gestion d’Identités sur le Web
Présentation de Windows Azure Active Directory
Windows Azure Active Directory et l’INFRA
Windows Azure Active Directory et le DEV
4. Question 1 : dans mon projet actuel, je gère les identités de mon application…
1. Nulle part, c’est une application anonyme
2. Sans rien faire, les utilisateurs sont déjà authentifiés sur le domaine Windows
3. Dans la base de données de l’application et avec ma propre authentification (j’ai développé une
fonction révolutionnaire de hachage du mot de passe)
4. Avec la couche ASP.NET (MemberShip provider…) comme Microsoft le recommande
5. Par externalisation dans un service / annuaire séparé et compatible HTTP, SAML, OAuth…
6. Par fédération: l’utilisateur a le choix du fournisseur d’identités (social / entreprise), mon cousin s’appelle
Vittorio
Question 2 : Qui connait AAD ?
Question 3 : dans 40 minutes, j’espère…
1. Boire un coup
2. Etre déjà parti !
3. Prendre mon PC et commencer à pratiquer AAD
Sondage !
5. Défis de la Gestion d’Identités sur le Web
// MODE ENTREPRISE
Je développe une nouvelle application métier dans le Cloud
1. Où mettre les identités ? Qui réalisera l’authentification ?
2. Comment connecter l’application Cloud à l’annuaire de l’entreprise ?
3. Comment supporter des utilisateurs externes à l’entreprise (partenaires, prestataires…) ?
L’IT prend en charge une application SaaS souscrite par une division métier
1. Comment gérer les identités ?
2. Quelle gouvernance possible (si un collaborateur quitte l’entreprise…) ?
// MODE STARTUP
Je développe une application Cloud grand public
1. Dois-je gérer moi-même les identités ?
2. Comment externaliser identités et authentification à des services tiers (Google, Facebook…) ?
3. Comment garantir la scalabilité de l’authentification en cas de succès ?
// MODE EDITEUR
Je développe une application SaaS multi-locataire
1. Comment gérer les identités par locataire ?
2. Comment connecter tel locataire à son annuaire déjà existant ?
3. Comment obtenir des informations détaillées sur l’utilisateur ?
+ SSO : Comment éviter à l’utilisateur de ressaisir login/mot de passe ?
6. Windows Azure Active Directory
De nombreuses
applications, un
référentiel
d'identité.
Gérer les
identités et les
accès aux
applications
Cloud.
Surveiller et
protéger l'accès
aux applications
d'entreprise.
Accès
personnalisé et
fonctionnalités
libre-service.
Windows Azure Active Directory PREMIUM :
Gestion de groupes, Rapports de sécurité étendus, Personnalisation
de la page d’accès aux applications, Authentification Multi-
Facteurs, Réinitialisation du mot de passe en self-service...
7. Windows Azure Active Directory
200 Milliards
D’authentifications
50 Millions
4,7 Milliards 420,000
2 minutes 1 seconde 0.7 seconde
14. AAD et le DEV
http://msdn.microsoft.com/en-us/library/windowsazure/dn518177.aspx
REST,
WS-
Federation,
OAuth,
SAML,
JWT…
Kerberos,
Windows
Integrated
Auth,
DNS,
X500
15. AAD et le DEV
Protocole Fonctionnalités Détails
WS-Federation 1.3 • Authentification dans une
application Web
• Format de token SAML 1.1
• Utilisé par Office 365
SAML 2.0 • Authentification dans une
application Web
• Format de token SAML 2.0
• Utilisé par Office 365
OAuth 2.0 • Authentification de Service à
Service
• Délégation d’accès
• Format de token JWT
REST/HTTP
Accès à l’Annuaire
(Graph API)
• Opérations CRUD (Create, Read,
Update, Delete) sur les objets et
relations dans l’annuaire
• Compatible avec OData V3
• Authentification avec OAuth
2.0
Authentification et identités basées sur les « Claims »
"http://schemas.microsoft.com/ws/2008/06/identity/claims/role" = "Admin“, …
16. Authentification dans une Application Web (SAML)
WIF : Windows Identity
Framework
Inclus dans .NET 4.5
Modèles de projets Visual Studio
API
System.Security.Claims
» ClaimsIdentity, ClaimsPrincipal…
STS
AAD ou ACS
Web.config
<httpModules>
<add name="WSFederation
AuthenticationModule"
type="System.IdentityModel.
Services.WSFederation
AuthenticationModule… "/>
…
http://msdn.microsoft.com/en-us/library/hh377151.aspx
17. Accès à l’Annuaire (OAuth + Graph API)
L’administrateur doit autoriser
l’application à accéder aux
données de l’annuaire
Rôles : SSO, RO, RW
Requêtes
CRUD, Différentielles
https://graphexplorer.cloudapp.
net/
Entités
Application, Contact, Device,
Group, Permission, Role, User, …
18. Authentification pour un Service (OAuth / JWT)
ADAL : Windows Azure AD
Authentication Library
Disponible pour: .NET,
Windows Store, Android…
Support OAuth pour Windows
Server 2012 R2 ADFS
Support du “Common
Endpoint”
http://msdn.microsoft.com/en-us/library/windowsazure/jj573266.aspx
20. VOUS AVEZ VU…
Windows Azure Active Directory : un service moderne pour les défis actuels
Un socle incontournable et ouvert : 600+ Application SaaS, fournisseurs d’identités tiers
Un service scalable et utilisé massivement : 1 million d’authentifications / 2 minutes
Deux options pour supporter le modèle hybride en entreprise : DirSync et ADFS
Le développement .NET pour exploiter les services AAD
21. POUR ALLER PLUS LOIN…
Authentification Multi-facteurs (MFA)
Fédération d’identité (ACS)
Droits d’accès à des documents (RMS)
How To: Build Claims-Aware ASP.NET MVC Web Application Using WIF:http://msdn.microsoft.com/en-us/library/hh291061.aspxBuilding My First Claims-Aware ASP.NET Web Application:http://msdn.microsoft.com/en-us/library/hh545401.aspx
*** How To: Build Claims-Aware ASP.NET MVC Web Application Using WIF:http://msdn.microsoft.com/en-us/library/hh291061.aspxVisual Studio 2012:To get “Identity and Access…“ menu at project level, install : http://visualstudiogallery.msdn.microsoft.com/e21bf653-dfe1-4d81-b3d3-795cb104066ehttp://www.windowsazure.com/en-us/documentation/articles/web-sites-business-application-solution-overview/*** Using the Graph API to Query Windows Azure AD:http://msdn.microsoft.com/en-us/library/hh974476.aspxhttp://msdn.microsoft.com/en-us/library/windowsazure/dn151791.aspxWCF Data Services 5.3:http://www.microsoft.com/en-us/download/details.aspx?id=35840Graph API helper:http://go.microsoft.com/fwlink/?LinkID=290812