Démarrage rapide : Application web ASP.NET qui connecte des utilisateurs Microsoft Entra

Bienvenue ! Ce n’est probablement pas la page que vous attendiez. Pendant que nous travaillons sur un correctif, ce lien devrait vous permettre d’accéder au bon article :

Démarrage rapide : Ajouter la connexion avec Microsoft à une application web ASP.NET

Nous vous prions de nous excuser pour le désagrément et nous vous remercions de votre patience.

Dans ce démarrage rapide, vous allez télécharger et exécuter un exemple de code qui montre comment une application web ASP.NET peut connecter des utilisateurs avec des comptes Microsoft Entra.

Étape 1 : Configurer votre application dans le portail Azure

Pour que l’exemple de code de ce guide de démarrage rapide fonctionne, entrez https://localhost:44368/pour URI de redirection.

Already configured Votre application est configurée avec cet attribut.

Étape 2 : Téléchargez le projet

Exécutez le projet avec Visual Studio 2019.

Conseil

Pour éviter les erreurs dues à des limitations de longueur de chemin dans Windows, nous vous recommandons d’extraire l’archive ou de cloner le référentiel dans un répertoire près de la racine de votre lecteur.

Étape 3 : Votre application est configurée et prête à être exécutée

Nous avons configuré votre projet avec les valeurs des propriétés de votre application.

  1. Extrayez le fichier .zip dans un dossier local proche du dossier racine. Par exemple, extrayez-le dans C:\Azure-Samples.

    Nous vous recommandons d’extraire l’archive dans un répertoire près de la racine de votre lecteur pour éviter les erreurs dues à des limitations de longueur de chemin sur Windows.

  2. Ouvrez la solution dans Visual Studio (AppModelv2-WebApp-OpenIDConnect-DotNet.sln).

  3. Selon la version de Visual Studio, vous devrez peut-être cliquer avec le bouton droit sur le projet >AppModelv2-WebApp-OpenIDConnect-DotNet, puis sélectionner Restaurer les packages NuGet.

  4. Ouvrez la console du Gestionnaire de package en sélectionnant Afficher>Autres fenêtres>Console du Gestionnaire de package. Exécutez ensuite Update-Package Microsoft.CodeDom.Providers.DotNetCompilerPlatform -r.

Notes

Enter_the_Supported_Account_Info_Here

Informations complémentaires

Cette section offre une vue d’ensemble du code requis pour connecter les utilisateurs. Cette vue d’ensemble peut être utile pour comprendre comment le code fonctionne, quels sont les principaux arguments et comment ajouter une connexion à une application ASP.NET existante.

Fonctionnement de l’exemple

Diagram of the interaction between the web browser, the web app, and the Microsoft identity platform in the sample app.

Packages NuGet de l’intergiciel (middleware) OWIN

Vous pouvez configurer le pipeline d’authentification avec une authentification basée sur les cookies en utilisant OpenID Connect dans ASP.NET avec des packages du middleware OWIN. Vous pouvez installer ces packages en exécutant les commandes suivantes dans la console du Gestionnaire de package au sein de Visual Studio :

Install-Package Microsoft.Owin.Security.OpenIdConnect
Install-Package Microsoft.Owin.Security.Cookies
Install-Package Microsoft.Owin.Host.SystemWeb

Classe de démarrage OWIN

Le middleware OWIN utilise une classe de démarrage qui s’exécute lors du démarrage du processus d’hébergement. Dans ce guide de démarrage rapide, le fichier startup.cs se trouve dans le dossier racine. Le code suivant montre les paramètres qu’utilise ce guide de démarrage rapide :

public void Configuration(IAppBuilder app)
{
    app.SetDefaultSignInAsAuthenticationType(CookieAuthenticationDefaults.AuthenticationType);

    app.UseCookieAuthentication(new CookieAuthenticationOptions());
    app.UseOpenIdConnectAuthentication(
        new OpenIdConnectAuthenticationOptions
        {
            // Sets the client ID, authority, and redirect URI as obtained from Web.config
            ClientId = clientId,
            Authority = authority,
            RedirectUri = redirectUri,
            // PostLogoutRedirectUri is the page that users will be redirected to after sign-out. In this case, it's using the home page
            PostLogoutRedirectUri = redirectUri,
            Scope = OpenIdConnectScope.OpenIdProfile,
            // ResponseType is set to request the code id_token, which contains basic information about the signed-in user
            ResponseType = OpenIdConnectResponseType.CodeIdToken,
            // ValidateIssuer set to false to allow personal and work accounts from any organization to sign in to your application
            // To only allow users from a single organization, set ValidateIssuer to true and the 'tenant' setting in Web.> config to the tenant name
            // To allow users from only a list of specific organizations, set ValidateIssuer to true and use the ValidIssuers parameter
            TokenValidationParameters = new TokenValidationParameters()
            {
                ValidateIssuer = false // Simplification (see note below)
            },
            // OpenIdConnectAuthenticationNotifications configures OWIN to send notification of failed authentications to > the OnAuthenticationFailed method
            Notifications = new OpenIdConnectAuthenticationNotifications
            {
                AuthenticationFailed = OnAuthenticationFailed
            }
        }
    );
}
Where Description
ClientId ID de l’application inscrite dans le portail Azure.
Authority Point de terminaison du service d’émission de jeton de sécurité (STS) pour l’utilisateur à authentifier. Il s’agit généralement de https://login.microsoftonline.com/{tenant}/v2.0 pour le cloud public. Dans cette URL, {tenant} est le nom de votre locataire, votre ID de locataire ou common pour une référence au point de terminaison commun. (Le point de terminaison commun est utilisé pour les applications multilocataires.)
RedirectUri URL vers laquelle les utilisateurs sont dirigés après authentification auprès de la plateforme d’identités Microsoft.
PostLogoutRedirectUri URL vers laquelle les utilisateurs sont envoyés après validation.
Scope Liste des étendues demandées, séparées par des espaces.
ResponseType Demande que la réponse de l’authentification contienne un code d’autorisation et un jeton d’ID.
TokenValidationParameters Liste de paramètres pour la validation du jeton. Dans ce cas, ValidateIssuer a la valeur false pour indiquer qu’il peut accepter des connexions à partir de tout type de compte : personnel, professionnel ou scolaire.
Notifications Liste de délégués qui peuvent être exécutés sur des messages OpenIdConnect.

Notes

Le paramètre ValidateIssuer = false est une simplification destinée aux seules fins de ce guide de démarrage rapide. Dans les applications réelles, validez l’émetteur. Pour savoir comment procéder, consultez les exemples.

Demande d’authentification

Vous pouvez forcer un utilisateur à se connecter en effectuant une demande d’authentification dans votre contrôleur :

public void SignIn()
{
    if (!Request.IsAuthenticated)
    {
        HttpContext.GetOwinContext().Authentication.Challenge(
            new AuthenticationProperties{ RedirectUri = "/" },
            OpenIdConnectAuthenticationDefaults.AuthenticationType);
    }
}

Conseil

La demande d’une demande d’authentification avec cette méthode est facultative. Normalement, vous l’utilisez quand vous souhaitez qu’une vue soit accessible par des utilisateurs à la fois authentifiés et non authentifiés. Vous pouvez également protéger les contrôleurs à l’aide de la méthode décrite dans la section suivante.

Attribut pour protéger un contrôleur ou les actions d’un contrôleur

Vous pouvez protéger un contrôleur ou les actions d’un contrôleur en utilisant l’attribut [Authorize]. Cet attribut limite l’accès au contrôleur ou aux actions en autorisant uniquement les utilisateurs authentifiés à accéder aux actions dans le contrôleur. Une demande d’authentification se produit alors automatiquement quand un utilisateur non authentifié tente d’accéder à l’une des actions ou à l’un des contrôleurs décorés par l’attribut [Authorize].

Aide et support

Si vous avez besoin d’aide, si vous souhaitez signaler un problème ou si vous voulez en savoir plus sur vos options de support, consultez Aide et support pour les développeurs.

Étapes suivantes

Pour apprendre à créer, étape par étape, des applications et des fonctionnalités, et pour obtenir une explication complète de ce démarrage rapide, essayez le tutoriel ASP.NET.