Partager via


Exemple de code : ASP.NET page de connexion personnalisée MVC 3

Mise à jour : 19 juin 2015

S’applique à : Azure

Cet exemple montre comment créer une page de découverte de domaine d’accueil ou de connexion personnalisée dans une application MVC3 ASP.NET qui utilise Microsoft Azure Active Directory Access Control (également appelée service Access Control ou ACS). Le code de cet exemple se trouve dans le sous-répertoire MVC3CustomSignInPage (C#\Websites\MVC3CustomSignInPage) du package d’exemples de code Microsoft Azure Active Directory Access Control (ACS).

Prérequis

Pour exécuter cet exemple, vous avez besoin des éléments suivants :

  1. Un compte dans le Portail Azure et un espace de noms Access Control.

  2. Visual Studio 2010 (n’importe quelle version)

  3. ASP .NET MVC3 (https://www.asp.net/mvc/mvc3)

  4. Kit de développement logiciel Windows Identity Foundation SDK

Pour plus d’informations, consultez les prérequis ACS (https://go.microsoft.com/fwlink/?LinkId=221065).

Configuration de l'exemple

La configuration ACS requise pour cet exemple peut être effectuée à l’aide du portail de gestion ACS ou du service de gestion ACS. Cette rubrique décrit les deux options.

Option 1 : Configuration de l’exemple via le portail de gestion ACS

Pour configurer l'exemple dans le portail de gestion ACS

  1. Accédez au portail de gestion Microsoft Azure (https://manage.WindowsAzure.com), connectez-vous, puis cliquez sur Active Directory. (Conseil de résolution des problèmes : l’élément « Active Directory » est manquant ou non disponible)

  2. Pour créer un espace de noms Access Control, cliquez sur Nouveau, Services d'application, Access Control, puis cliquez sur Création rapide. (Ou cliquez sur Espaces de noms Access Control avant de cliquer sur Nouveau.)

  3. Pour gérer un espace de noms Access Control, sélectionnez l'espace de noms, puis cliquez sur Gérer. (Ou cliquez sur Espaces de noms Access Control, sélectionnez l'espace de noms, puis cliquez sur Gérer.)

    Cette action a pour effet d'ouvrir le portail de gestion ACS.

  4. Pour établir des relations avec les fournisseurs d'identité, cliquez sur Fournisseurs d'identité, puis sélectionnez les fournisseurs d'identité que vous souhaitez utiliser, par exemple Google, Yahoo! et Facebook. Pour plus d’informations sur l’obtention des clés requises pour Facebook, consultez Guide pratique pour configurer Facebook en tant que fournisseur d’identité (https://go.microsoft.com/fwlink/?LinkId=221151). Ensuite, cliquez sur le lien Accueil dans le menu de navigation de gauche de la page pour revenir à la page principale.

  5. Pour inscrire votre application auprès d’ACS, dans le portail de gestion des services Access Control, cliquez sur le lien applications de partie de confiance situé sur la page principale, sélectionnez Ajouter et entrez les informations suivantes dans le formulaire :

    • Dans le champ Nom, entrez ASPNET MVC3 personnalisé.

    • Dans le champ Domaine , entrez https://localhost:64000/

    • Dans le champ URL de retour , entrez https://localhost:64000/Account/SignIn

    • Dans le champ Format du jeton, sélectionnez SAML 2.0.

    • Dans la section Fournisseurs d'identité, sélectionnez Facebook, Google, Windows Live ID et Yahoo!.

    • Dans le champ Signature de jetons, sélectionnez Utiliser un certificat d'espace de noms de service (standard).

  6. Cliquez sur Enregistrer et revenez à la page principale.

  7. Une fois votre application de partie de confiance configurée, il est maintenant temps de créer les règles qui déterminent les revendications émises par ACS à votre application. Dans cet exemple, nous allons passer toutes les revendications émises par le fournisseur d'identité. Pour créer cette règle, cliquez sur Groupes de règles dans la page principale, puis sur le groupe de règles Groupe de règles par défaut pour ASPNET MVC3 personnalisé.

  8. En bas de la page, cliquez sur le lien Générer. Assurez-vous que Facebook, Yahoo et sont sélectionnés, puis cliquez sur Générer.

  9. Une fois ACS configuré, ouvrez Visual Studio.

Option 2 : Configuration de l’exemple à l’aide du service de gestion ACS

L’exemple de solution Visual Studio a une application de ligne de commande appelée ConfigureSample qui utilise le service de gestion ACS et les assistances courantes définies dans la bibliothèque de classes commune. Cette application peut être utilisée pour configurer votre espace de noms Access Control à utiliser avec cet exemple.

Pour configurer l’exemple à l’aide du service de gestion ACS

  1. Mettez à jour la bibliothèque de classes commune avec des informations sur votre espace de noms Access Control. Ouvrez SamplesConfiguration.cs et entrez les informations suivantes :

    • ServiceNamespace : il s’agit de l’espace de noms utilisé avec ACS.

    • ManagementServiceIdentityName : nom du compte de service de gestion.

    • ManagementServiceIdentityKey : mot de passe associé au compte de service de gestion.

    • AcsHostUrl : il s’agit du nom d’hôte d’ACS.

  2. Dans le projet ConfigureSample, ouvrez Program.cs et entrez les informations suivantes :

    1. applicationId : ID d'application de votre application Facebook.

    2. applicationSecret : clé secrète d'application de votre application Facebook.

    Pour plus d’informations sur l’obtention de ces clés, reportez-vous à How To: Configure Facebook as an Identity Provider (https://go.microsoft.com/fwlink/?LinkId=221151).

  3. Exécutez l’application ConfigureSample dans Visual Studio, qui configure ACS pour exécuter cet exemple.

Exécution de l'exemple

Exécution de l'exemple

  1. Ouvrez l’exemple situé dans Websites\MVC3CustomSignInPage\MVC3CustomSignInPage.sln dans Visual Studio.

  2. Pour ajouter ACS comme référence STS, cliquez avec le bouton droit sur MVCCustomSignInPage et sélectionnez Ajouter une référence STS dans le menu contextuel.

  3. Dans la boîte de dialogue, entrez la racine de l'application web dans le champ URI d'application et cliquez sur Suivant. Pour cet exemple, cette valeur est https://localhost:64000/

    Notes

    La barre oblique de fin est importante, car elle s’aligne sur les valeurs que vous avez entrées dans ACS pour votre partie de confiance. L'Assistant affiche un avertissement indiquant que votre site n'utilise pas le protocole SSL. Acceptez cet avertissement en cliquant sur le bouton Oui, mais n'oubliez pas qu'un site web de production doit presque toujours utiliser le protocole SSL pour ces types de scénarios.

  4. Dans la fenêtre suivante, sélectionnez la case d’option Utiliser un STS existant et entrez l’URI des métadonnées WS-Federation publiées par votre espace de noms Access Control. Cet URI se trouve dans le portail sous Intégration d'applications. Si votre espace de noms Access Control est mvc3samples, l’URI est https:// mvc3samples.accesscontrol.windows.net/FederationMetadata/2007-06/FederationMetadata.xml. Après avoir entré cette valeur, cliquez sur Suivant.

  5. Comme votre site web ne nécessite pas de jetons chiffrés, cliquez sur Suivant dans les boîtes de dialogue restantes, puis cliquez sur Terminer.

  6. Votre application est maintenant configurée pour utiliser ACS avec la protection des ressources de couverture ASP .NET. Nous devons désactiver cette protection pour pouvoir utiliser notre propre page de connexion personnalisée avec des filtres d'authentification MVC3 plus détaillés. Dans le fichier web.config, sous configuration, supprimez le paramètre suivant :

    <location path="FederationMetadata">
       <system.web>
         <authorization>
           <allow users="*" />
         </authorization>
       </system.web>
    </location>
    
  7. Sous system.web, supprimez le paramètre suivant :

    <authorization>
         <deny users="?" />
       </authorization>
    

    Ces deux paramètres étant supprimés, ASP.NET n'effectue aucune authentification ou autorisation en notre nom.

  8. Appuyez sur F5 dans Visual Studio pour exécuter l’application. Votre navigateur affiche la page principale de l'application.

  9. Cliquez sur le lien Se connecter dans l'angle supérieur droit et sélectionnez un fournisseur d'identité dans la liste qui s'affiche. Après l’authentification, vous revenez à la page d’accueil et vos informations utilisateur s’affichent dans le coin supérieur droit (notez que vous ne fournirez pas de nom d’utilisateur).

  10. Cliquez sur Se déconecter pour vous déconnecter. Les cookies de cession sont effacés et vous revenez à la page principale.

  11. Cliquez sur le lien Annuaire. Comme vous n'êtes plus authentifié, vous êtes invité à sélectionner un fournisseur d'identité pour accéder à la page Annuaire.

Cela est dû au fait que la page Annuaire (Index dans DirectoryController) est protégée par RequireAuthenticationAttribute. Une fois que vous avez sélectionné un fournisseur d'identité et que vous vous êtes authentifié, vous êtes redirigé vers la page Annuaire.