Loupe

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 ), 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 :

image

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 :

image

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 :

image

Cliquez sur Create Project pour valider la création du projet.

Patientez pendant que Visual Studio active l’authentification :

image

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) :

image

Après la connexion, vous serez automatiquement redirigé vers l’applicatif, avec la bonne identité :

image

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… Smile !

Julien

Ces billets pourraient aussi vous intéresser

Vous nous direz ?!

Commentaires

comments powered by Disqus