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.
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.
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.
Ouvrez la solution dans Visual Studio (AppModelv2-WebApp-OpenIDConnect-DotNet.sln).
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.
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
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 oucommon
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 valeurfalse
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.