Quoi de neuf pour l’authentification ASPNET dans Visual Studio 2013 - Partie 3
Introduction
Comme évoqué dans mes deux précédents posts (ici et là), Visual Studio 2013 apporte pas mal de nouveautés en terme d’authentification.
Aujourd’hui, je vous propose de nous intéresser à l’authentification à l’aide de comptes organisationnels. Visual Studio 2013 propose un nouvel assistant pour configurer simplement des authentifications via Active Directory, Office 365, ADFS, dans le Cloud ou on premise. Dans ce billet, je baserai ma démonstration sur un tenant Office 365.
Configuration de l’authentification dans Visual Studio
Commencez par créer un nouveau projet d’application web dans Visual Studio. Dans l’assistant qui s’ouvre, choisissez de changer de mode d’authentification par défaut (Individual User Accounts) pour utiliser le type Organizational Accounts :
Il est possible de choisir entre 3 types d’authentifications basées sur des comptes d’organisations :
- Cloud – Single Organization : cette option permet à votre application d’utiliser un tenant Windows Azure Active Directory pour l’authentification (par exemple Office 365)
- Cloud – Multiple Organizations : cette option offre la possibilité d’utiliser plusieurs tenants Windows Azure Active Directory pour l’authentification
- On Premises : si vous ne souhaitez pas utiliser Windows Azure Active Directory, mais plutôt un AD sur Windows Server ou ADFS, dans votre entreprise
Dans le cas présent, je choisi la première option. Il suffit de rentrer l’adresse du domaine, Visual Studio se chargera de faire toute la configuration nécessaire à la mise en place de l’authentification :
L’option Access Level vous propose de choisir entre 3 options :
- Single Sign On : vous utilisez le tenant AD que pour de l’authentification
- Single Sign On, Read directory data : vous utilisez le tenant AD pour l’authentification et pour de la lecture seule de données dans l’AD
- Single Sign On, Read and write directory data : vous utilisez le tenant AD pour l’authentification et pour de la lecture / écriture de données dans l’AD
Lorsque vous validez en cliquant sur OK, Visual Studio vous demande de vous authentifier à l’aide d’un compte sur le domaine que vous lui avez fourni. Si tout se passe bien, vous devez revenir à l’écran de création du projet et le domaine choisi devrait être indiqué comme ci-dessous :
Cliquez sur Create Project pour valider la création du projet.
Patientez pendant que Visual Studio active l’authentification :
Fichier Web.config
Une fois l’opération terminée, vous pouvez ouvrir le fichier Web.config du projet qui a été créé. Toute la configuration Windows Identity Foundation a été faite pour vous, et référence bien le domaine que vous avez indiqué :
<system.identityModel> <identityConfiguration> <issuerNameRegistry type="AuthO365.Utils.SingleTenantIssuerNameRegistry, AuthO365" /> <audienceUris> <add value="https://corioland.onmicrosoft.com/AuthO365" /> </audienceUris> <securityTokenHandlers> <add type="System.IdentityModel.Services.Tokens.MachineKeySessionSecurityTokenHandler, System.IdentityModel.Services, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" /> <remove type="System.IdentityModel.Tokens.SessionSecurityTokenHandler, System.IdentityModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" /> </securityTokenHandlers> <certificateValidation certificateValidationMode="None" /> </identityConfiguration> </system.identityModel>
<system.webServer> <modules> <add name="WSFederationAuthenticationModule" type="System.IdentityModel.Services.WSFederationAuthenticationModule, System.IdentityModel.Services, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" preCondition="managedHandler" /> <add name="SessionAuthenticationModule" type="System.IdentityModel.Services.SessionAuthenticationModule, System.IdentityModel.Services, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" preCondition="managedHandler" /> </modules> </system.webServer> <system.identityModel.services> <federationConfiguration> <cookieHandler requireSsl="true" /> <wsFederation passiveRedirectEnabled="true" issuer="https://login.windows.net/corioland.onmicrosoft.com/wsfed" realm="https://corioland.onmicrosoft.com/AuthO365" requireHttps="true" /> </federationConfiguration> </system.identityModel.services>
Test de l’authentification
Il ne reste qu’à lancer l’application et tester l’authentification. Comme vous pourrez le constater, vous êtes automatiquement redirigé vers la page de connexion du tenant que vous utilisé (ici office 365) :
Après la connexion, vous serez automatiquement redirigé vers l’applicatif, avec la bonne identité :
Et voilà ! En quelques clics, votre application ASP.NET MVC est capable d’utiliser votre Active Directory, online ou pas, pour gérer l’authentification des utilisateurs.
A bientôt pour de nouvelles aventures… !
Julien
Commentaires