Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
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écharger le projet
Exécutez le projet avec Visual Studio 2019.
Conseil / Astuce
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.
Remarque
Enter_the_Supported_Account_Info_Here
Plus d’informations
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
Paquets NuGet du 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
}
}
);
}
Où Descriptif ClientIdID de l’application inscrite dans le portail Azure. AuthorityPoint 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.0pour le cloud public. Dans cette URL, {tenant} est le nom de votre locataire, votre ID de locataire oucommonpour une référence au point de terminaison commun. (Le point de terminaison commun est utilisé pour les applications multilocataires.)RedirectUriURL vers laquelle les utilisateurs sont dirigés après authentification auprès de la plateforme d’identités Microsoft. PostLogoutRedirectUriURL vers laquelle les utilisateurs sont envoyés après validation. ScopeListe des étendues demandées, séparées par des espaces. ResponseTypeDemande que la réponse de l’authentification contienne un code d’autorisation et un jeton d’ID. TokenValidationParametersListe de paramètres pour la validation du jeton. Dans ce cas, ValidateIssuera la valeurfalsepour indiquer qu’il peut accepter des connexions à partir de tout type de compte : personnel, professionnel ou scolaire.NotificationsListe de délégués qui peuvent être exécutés sur des messages OpenIdConnect.
Remarque
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 / Astuce
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.