Cette page vous a-t-elle été utile ?
Votre avis sur ce contenu est important. N'hésitez pas à nous faire part de vos commentaires.
Vous avez d'autres commentaires ?
1500 caractères restants
MSDN Library

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

Publication: mai 2011

Mis à jour: juin 2015

S'applique à: Azure

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

Pour exécuter cet exemple, vous aurez 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 (http://www.asp.net/mvc/mvc3)

  4. Kit de développement logiciel Windows Identity Foundation

Pour plus d'informations, consultez Configuration requise pour le service de contrôle d'accès (ACS) (http://go.microsoft.com/fwlink/?LinkId=221065).

La configuration ACS nécessaire 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.

  1. Accédez au Portail de gestion Microsoft Azure (https://manage.WindowsAzure.com), ouvrez une session, puis cliquez sur Active Directory. (Conseil de dépannage : « 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 la façon d'obtenir les clés requises pour Facebook, consultez Configuration de Facebook en tant que fournisseur d'identité (http://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 Access Control Service, cliquez sur le lien Applications de partie de confiance dans la page principale, sélectionnez Ajouter, puis entrez les informations suivantes dans le formulaire :

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

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

    • Dans le champ URL de renvoi, entrez http://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. Votre application de partie de confiance étant configurée, vous devez maintenant créer les règles qui déterminent les revendications qu'ACS émettra pour 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. Vérifiez que Facebook, Yahoo! et sont sélectionnés et cliquez sur Générer.

  9. Avec ACS configuré, ouvrez Visual Studio.

L'exemple de solution Visual Studio comporte une application en ligne de commande appelée ConfigureSample qui utilise le service de gestion ACS et les programmes d'assistance courants définis dans la bibliothèque de classes Common. Cette application peut servir à configurer votre espace de noms Access Control en vue d'une utilisation avec cet exemple.

  1. Mettez à jour la bibliothèque de classe Common avec les informations relatives à votre espace de noms Access Control. Ouvrez SamplesConfiguration.cs et entrez les informations suivantes :

    • ServiceNamespace : 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 : 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 la façon d'obtenir ces clés, consultez Configuration de Facebook en tant que fournisseur d'identité (http://go.microsoft.com/fwlink/?LinkId=221151).

  3. Exécutez l'application ConfigureSample dans Visual Studio pour configurer ACS pour exécuter cet exemple.

  1. Ouvrez l'exemple qui se trouve 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 http://localhost:64000/

    noteRemarque
    La barre oblique de fin est importante car elle est alignée avec 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 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 de ressources 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 reviendrez à la page d'accueil et vos informations utilisateur seront affichées dans l'angle supérieur droit (notez que ne fournira 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.

Ajouts de la communauté

Afficher:
© 2015 Microsoft