Événement
Championnats du monde Power BI DataViz
14 févr., 16 h - 31 mars, 16 h
Avec 4 chances d’entrer, vous pourriez gagner un package de conférence et le rendre à la Live Grand Finale à Las Vegas
En savoir plusCe navigateur n’est plus pris en charge.
Effectuez une mise à niveau vers Microsoft Edge pour tirer parti des dernières fonctionnalités, des mises à jour de sécurité et du support technique.
Par Mike Rousos
L’authentification est le processus de détermination de l’identité d’un utilisateur. L’autorisation est le processus consistant à déterminer si un utilisateur a accès à une ressource. Dans ASP.NET Core, l’authentification est gérée par le service d’authentification, IAuthenticationService, qui est utilisé par l’intergiciel (middleware) d’authentification. Le service d’authentification utilise des gestionnaires d’authentification inscrits pour effectuer des actions liées à l’authentification. Voici des exemples d’actions liées à l’authentification :
Les gestionnaires d’authentification inscrits et leurs options de configuration sont appelés « schémas ».
Les schémas d’authentification sont spécifiés en inscrivant les services d’authentification dans Program.cs
:
AuthenticationBuilder.AddScheme
directement.Par exemple, le code suivant inscrit les services et les gestionnaires d’authentification pour les schémas d’authentification de cookie et de porteur JWT :
builder.Services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
.AddJwtBearer(JwtBearerDefaults.AuthenticationScheme,
options => builder.Configuration.Bind("JwtSettings", options))
.AddCookie(CookieAuthenticationDefaults.AuthenticationScheme,
options => builder.Configuration.Bind("CookieSettings", options));
Le paramètre AddAuthentication
de JwtBearerDefaults.AuthenticationScheme est le nom du schéma à utiliser par défaut quand un schéma spécifique n’est pas demandé.
Si plusieurs schémas sont utilisés, les stratégies d’autorisation (ou les attributs d’autorisation) peuvent spécifier le ou les schémas d’authentification dont elles dépendent pour authentifier l’utilisateur. Dans l’exemple ci-dessus, le schéma d’authentification cookie peut être utilisé en spécifiant son nom (CookieAuthenticationDefaults.AuthenticationScheme par défaut, bien qu’un autre nom puisse être fourni lors de l’appel de AddCookie
).
Dans certains cas, l’appel à AddAuthentication
est effectué automatiquement par d’autres méthodes d’extension. Par exemple, lors de l’utilisation de ASP.NET Core Identity, AddAuthentication
est appelé en interne.
L’intergiciel d’authentification est ajouté dans Program.cs
en appelant UseAuthentication. L’appel de UseAuthentication
inscrit le middleware qui utilise les schémas d’authentification précédemment inscrits. Appelez UseAuthentication
avant tout middleware dépendant de l’authentification des utilisateurs.
L’authentification doit fournir le ClaimsPrincipal pour que l’automatiquement puisse prendre des décisions d’autorisation en fonction de celui-ci. Il existe plusieurs approches des schémas d’authentification pour sélectionner le gestionnaire d’authentification responsable de la génération de l’ensemble correct de revendications :
Lorsqu'un seul schéma d'authentification est enregistré, il devient le schéma par défaut. Si plusieurs schémas sont enregistrés et que le schéma par défaut n’est pas spécifié, un schéma doit être spécifié dans l’attribut d’autorisation ; sinon, l’erreur suivante est levée :
InvalidOperationException : Aucun authenticationScheme n’a été spécifié et aucun DefaultAuthenticateScheme n’a été trouvé. Les schémas par défaut peuvent être définis en utilisant AddAuthentication(string defaultScheme) ou AddAuthentication(Action<options_authentification> configureOptions).
Lorsqu'un seul schéma d'authentification est enregistré, le schéma d’authentification unique :
DefaultScheme
dans AddAuthentication(IServiceCollection) ou AddAuthenticationCore(IServiceCollection).Pour désactiver automatiquement l’utilisation du schéma d’authentification unique en tant que DefaultScheme
, appelez AppContext.SetSwitch("Microsoft.AspNetCore.Authentication.SuppressAutoDefaultScheme")
.
Le schéma d’authentification peut sélectionner le gestionnaire d’authentification responsable de la génération de l’ensemble correct de revendications. Pour plus d’informations, consultez Autoriser avec un schéma spécifique.
Un schéma d’authentification est un nom qui correspond à :
Les schémas sont utiles comme mécanisme pour faire référence au comportement d’authentification, de demande et d’interdiction du gestionnaire associé. Par exemple, une stratégie d’autorisation peut utiliser des noms de schéma pour spécifier le ou les schémas d’authentification à utiliser pour authentifier l’utilisateur. Lors de la configuration de l’authentification, il est courant de spécifier le schéma d’authentification par défaut. Le schéma par défaut est utilisé sauf si une ressource demande un schéma spécifique. Il est également possible de :
Un gestionnaire d’authentification :
En fonction de la configuration du schéma d’authentification et du contexte de la demande entrante, les gestionnaires d’authentification :
RemoteAuthenticationHandler<TOptions> est la classe pour l’authentification qui nécessite une étape d’authentification à distance. Une fois l’étape d’authentification distante terminée, le gestionnaire revient au CallbackPath
défini par le gestionnaire. Le gestionnaire termine l’étape d’authentification en utilisant les informations passées au chemin du rappel de HandleRemoteAuthenticateAsync. OAuth 2.0 et OIDC utilisent tous deux ce modèle. JWT et les cookies ne l’utilisent pas, car ils peuvent utiliser directement l’en-tête du porteur et le cookie pour s’authentifier. Dans ce cas, le fournisseur hébergé à distance :
L’action d’authentification d’un schéma d’authentification est chargée de construire l’identité de l’utilisateur en fonction du contexte de demande. Elle retourne un AuthenticateResult indiquant si l’authentification a réussi et, le cas échéant, l’identité de l’utilisateur dans un ticket d’authentification. Consultez AuthenticateAsync. Voici des exemples d’authentification :
Une demande d’authentification est appelée par l’autorisation quand un utilisateur non authentifié demande un point de terminaison qui nécessite une authentification. Une demande d’authentification est émise, par exemple quand un utilisateur anonyme demande une ressource restreinte ou suit un lien de connexion. L’autorisation appelle une demande en utilisant le ou les schémas d’authentification spécifiés, ou le schéma par défaut si aucun schéma n’est spécifié. Consultez ChallengeAsync. Voici des exemples de demande d’authentification :
www-authenticate: bearer
.Une action de demande doit indiquer à l’utilisateur quel mécanisme d’authentification utiliser pour accéder à la ressource demandée.
Une action d’interdiction d’un schéma d’authentification est appelée par l’autorisation quand un utilisateur authentifié tente d’accéder à une ressource à laquelle il n’est pas autorisé à accéder. Consultez ForbidAsync. Voici des exemples d’interdiction d’authentification :
Une action d’interdiction peut indiquer à l’utilisateur que :
Consultez les liens suivants pour connaître les différences entre la demande et l’interdiction :
ASP.NET Core n’a pas de solution intégrée pour l’authentification multilocataire. Bien qu’il soit possible pour les clients d’en écrire une en utilisant les fonctionnalités intégrées, nous vous recommandons de considérer Orchard Core, ABP Framework ou Finbuckle.MultiTenant pour l’authentification multilocataire.
Orchard Core est :
Consultez la source d’Orchard Core pour obtenir un exemple de fournisseurs d’authentification par locataire.
ABP Framework prend en charge différents modèles d’architecture, notamment la modularité, les microservices, la conception pilotée par le domaine et le multilocataire. Consultez la source d’ABP Framework sur GitHub.
Finbuckle.MultiTenant :
Par Mike Rousos
L’authentification est le processus de détermination de l’identité d’un utilisateur. L’autorisation est le processus consistant à déterminer si un utilisateur a accès à une ressource. Dans ASP.NET Core, l’authentification est gérée par le service d’authentification, IAuthenticationService, qui est utilisé par l’intergiciel (middleware) d’authentification. Le service d’authentification utilise des gestionnaires d’authentification inscrits pour effectuer des actions liées à l’authentification. Voici des exemples d’actions liées à l’authentification :
Les gestionnaires d’authentification inscrits et leurs options de configuration sont appelés « schémas ».
Les schémas d’authentification sont spécifiés en inscrivant les services d’authentification dans Program.cs
:
AuthenticationBuilder.AddScheme
directement.Par exemple, le code suivant inscrit les services et les gestionnaires d’authentification pour les schémas d’authentification de cookie et de porteur JWT :
builder.Services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
.AddJwtBearer(JwtBearerDefaults.AuthenticationScheme,
options => builder.Configuration.Bind("JwtSettings", options))
.AddCookie(CookieAuthenticationDefaults.AuthenticationScheme,
options => builder.Configuration.Bind("CookieSettings", options));
Le paramètre AddAuthentication
de JwtBearerDefaults.AuthenticationScheme est le nom du schéma à utiliser par défaut quand un schéma spécifique n’est pas demandé.
Si plusieurs schémas sont utilisés, les stratégies d’autorisation (ou les attributs d’autorisation) peuvent spécifier le ou les schémas d’authentification dont elles dépendent pour authentifier l’utilisateur. Dans l’exemple ci-dessus, le schéma d’authentification cookie peut être utilisé en spécifiant son nom (CookieAuthenticationDefaults.AuthenticationScheme par défaut, bien qu’un autre nom puisse être fourni lors de l’appel de AddCookie
).
Dans certains cas, l’appel à AddAuthentication
est effectué automatiquement par d’autres méthodes d’extension. Par exemple, lors de l’utilisation de ASP.NET Core Identity, AddAuthentication
est appelé en interne.
L’intergiciel d’authentification est ajouté dans Program.cs
en appelant UseAuthentication. L’appel de UseAuthentication
inscrit le middleware qui utilise les schémas d’authentification précédemment inscrits. Appelez UseAuthentication
avant tout middleware dépendant de l’authentification des utilisateurs.
L’authentification doit fournir le ClaimsPrincipal pour que l’automatiquement puisse prendre des décisions d’autorisation en fonction de celui-ci. Il existe plusieurs approches des schémas d’authentification pour sélectionner le gestionnaire d’authentification responsable de la génération de l’ensemble correct de revendications :
Il n’y a pas de détection automatique des schémas. Si le schéma par défaut n’est pas spécifié, le schéma doit être spécifié dans l’attribut d’autorisation ; sinon, l’erreur suivante est levée :
InvalidOperationException : Aucun authenticationScheme n’a été spécifié et aucun DefaultAuthenticateScheme n’a été trouvé. Les schémas par défaut peuvent être définis en utilisant AddAuthentication(string defaultScheme) ou AddAuthentication(Action<options_authentification> configureOptions).
Le schéma d’authentification peut sélectionner le gestionnaire d’authentification responsable de la génération de l’ensemble correct de revendications. Pour plus d’informations, consultez Autoriser avec un schéma spécifique.
Un schéma d’authentification est un nom qui correspond à :
Les schémas sont utiles comme mécanisme pour faire référence au comportement d’authentification, de demande et d’interdiction du gestionnaire associé. Par exemple, une stratégie d’autorisation peut utiliser des noms de schéma pour spécifier le ou les schémas d’authentification à utiliser pour authentifier l’utilisateur. Lors de la configuration de l’authentification, il est courant de spécifier le schéma d’authentification par défaut. Le schéma par défaut est utilisé sauf si une ressource demande un schéma spécifique. Il est également possible de :
Un gestionnaire d’authentification :
En fonction de la configuration du schéma d’authentification et du contexte de la demande entrante, les gestionnaires d’authentification :
RemoteAuthenticationHandler<TOptions> est la classe pour l’authentification qui nécessite une étape d’authentification à distance. Une fois l’étape d’authentification distante terminée, le gestionnaire revient au CallbackPath
défini par le gestionnaire. Le gestionnaire termine l’étape d’authentification en utilisant les informations passées au chemin du rappel de HandleRemoteAuthenticateAsync. OAuth 2.0 et OIDC utilisent tous deux ce modèle. JWT et les cookies ne l’utilisent pas, car ils peuvent utiliser directement l’en-tête du porteur et le cookie pour s’authentifier. Dans ce cas, le fournisseur hébergé à distance :
L’action d’authentification d’un schéma d’authentification est chargée de construire l’identité de l’utilisateur en fonction du contexte de demande. Elle retourne un AuthenticateResult indiquant si l’authentification a réussi et, le cas échéant, l’identité de l’utilisateur dans un ticket d’authentification. Consultez AuthenticateAsync. Voici des exemples d’authentification :
Une demande d’authentification est appelée par l’autorisation quand un utilisateur non authentifié demande un point de terminaison qui nécessite une authentification. Une demande d’authentification est émise, par exemple quand un utilisateur anonyme demande une ressource restreinte ou suit un lien de connexion. L’autorisation appelle une demande en utilisant le ou les schémas d’authentification spécifiés, ou le schéma par défaut si aucun schéma n’est spécifié. Consultez ChallengeAsync. Voici des exemples de demande d’authentification :
www-authenticate: bearer
.Une action de demande doit indiquer à l’utilisateur quel mécanisme d’authentification utiliser pour accéder à la ressource demandée.
Une action d’interdiction d’un schéma d’authentification est appelée par l’autorisation quand un utilisateur authentifié tente d’accéder à une ressource à laquelle il n’est pas autorisé à accéder. Consultez ForbidAsync. Voici des exemples d’interdiction d’authentification :
Une action d’interdiction peut indiquer à l’utilisateur que :
Consultez les liens suivants pour connaître les différences entre la demande et l’interdiction :
ASP.NET Core n’a pas de solution intégrée pour l’authentification multilocataire. Bien qu’il soit possible pour les clients d’en écrire une en utilisant les fonctionnalités intégrées, nous vous recommandons de considérer Orchard Core ou ABP Framework pour l’authentification multilocataire.
Orchard Core est :
Consultez la source d’Orchard Core pour obtenir un exemple de fournisseurs d’authentification par locataire.
ABP Framework prend en charge différents modèles d’architecture, notamment la modularité, les microservices, la conception pilotée par le domaine et le multilocataire. Consultez la source d’ABP Framework sur GitHub.
Par Mike Rousos
L’authentification est le processus de détermination de l’identité d’un utilisateur. L’autorisation est le processus consistant à déterminer si un utilisateur a accès à une ressource. Dans ASP.NET Core, l’authentification est gérée par le service d’authentification, IAuthenticationService, qui est utilisé par l’intergiciel (middleware) d’authentification. Le service d’authentification utilise des gestionnaires d’authentification inscrits pour effectuer des actions liées à l’authentification. Voici des exemples d’actions liées à l’authentification :
Les gestionnaires d’authentification inscrits et leurs options de configuration sont appelés « schémas ».
Les schémas d’authentification sont spécifiés en inscrivant les services d’authentification dans Startup.ConfigureServices
:
AuthenticationBuilder.AddScheme
directement.Par exemple, le code suivant inscrit les services et les gestionnaires d’authentification pour les schémas d’authentification de cookie et de porteur JWT :
services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
.AddJwtBearer(JwtBearerDefaults.AuthenticationScheme,
options => Configuration.Bind("JwtSettings", options))
.AddCookie(CookieAuthenticationDefaults.AuthenticationScheme,
options => Configuration.Bind("CookieSettings", options));
Le paramètre AddAuthentication
de JwtBearerDefaults.AuthenticationScheme est le nom du schéma à utiliser par défaut quand un schéma spécifique n’est pas demandé.
Si plusieurs schémas sont utilisés, les stratégies d’autorisation (ou les attributs d’autorisation) peuvent spécifier le ou les schémas d’authentification dont elles dépendent pour authentifier l’utilisateur. Dans l’exemple ci-dessus, le schéma d’authentification cookie peut être utilisé en spécifiant son nom (CookieAuthenticationDefaults.AuthenticationScheme par défaut, bien qu’un autre nom puisse être fourni lors de l’appel de AddCookie
).
Dans certains cas, l’appel à AddAuthentication
est effectué automatiquement par d’autres méthodes d’extension. Par exemple, lors de l’utilisation de ASP.NET Core Identity, AddAuthentication
est appelé en interne.
L’intergiciel d’authentification est ajouté dans Startup.Configure
en appelant UseAuthentication. L’appel de UseAuthentication
inscrit le middleware qui utilise les schémas d’authentification précédemment inscrits. Appelez UseAuthentication
avant tout middleware dépendant de l’authentification des utilisateurs. Lors de l’utilisation du routage de point de terminaison, l’appel à UseAuthentication
doit être :
L’authentification doit fournir le ClaimsPrincipal pour que l’automatiquement puisse prendre des décisions d’autorisation en fonction de celui-ci. Il existe plusieurs approches des schémas d’authentification pour sélectionner le gestionnaire d’authentification responsable de la génération de l’ensemble correct de revendications :
Il n’y a pas de détection automatique des schémas. Si le schéma par défaut n’est pas spécifié, le schéma doit être spécifié dans l’attribut d’autorisation ; sinon, l’erreur suivante est levée :
InvalidOperationException : Aucun authenticationScheme n’a été spécifié et aucun DefaultAuthenticateScheme n’a été trouvé. Les schémas par défaut peuvent être définis en utilisant AddAuthentication(string defaultScheme) ou AddAuthentication(Action<options_authentification> configureOptions).
Le schéma d’authentification peut sélectionner le gestionnaire d’authentification responsable de la génération de l’ensemble correct de revendications. Pour plus d’informations, consultez Autoriser avec un schéma spécifique.
Un schéma d’authentification est un nom qui correspond à :
Les schémas sont utiles comme mécanisme pour faire référence au comportement d’authentification, de demande et d’interdiction du gestionnaire associé. Par exemple, une stratégie d’autorisation peut utiliser des noms de schéma pour spécifier le ou les schémas d’authentification à utiliser pour authentifier l’utilisateur. Lors de la configuration de l’authentification, il est courant de spécifier le schéma d’authentification par défaut. Le schéma par défaut est utilisé sauf si une ressource demande un schéma spécifique. Il est également possible de :
Un gestionnaire d’authentification :
En fonction de la configuration du schéma d’authentification et du contexte de la demande entrante, les gestionnaires d’authentification :
RemoteAuthenticationHandler<TOptions> est la classe pour l’authentification qui nécessite une étape d’authentification à distance. Une fois l’étape d’authentification distante terminée, le gestionnaire revient au CallbackPath
défini par le gestionnaire. Le gestionnaire termine l’étape d’authentification en utilisant les informations passées au chemin du rappel de HandleRemoteAuthenticateAsync. OAuth 2.0 et OIDC utilisent tous deux ce modèle. JWT et les cookies ne l’utilisent pas, car ils peuvent utiliser directement l’en-tête du porteur et le cookie pour s’authentifier. Dans ce cas, le fournisseur hébergé à distance :
L’action d’authentification d’un schéma d’authentification est chargée de construire l’identité de l’utilisateur en fonction du contexte de demande. Elle retourne un AuthenticateResult indiquant si l’authentification a réussi et, le cas échéant, l’identité de l’utilisateur dans un ticket d’authentification. Consultez AuthenticateAsync. Voici des exemples d’authentification :
Une demande d’authentification est appelée par l’autorisation quand un utilisateur non authentifié demande un point de terminaison qui nécessite une authentification. Une demande d’authentification est émise, par exemple quand un utilisateur anonyme demande une ressource restreinte ou suit un lien de connexion. L’autorisation appelle une demande en utilisant le ou les schémas d’authentification spécifiés, ou le schéma par défaut si aucun schéma n’est spécifié. Consultez ChallengeAsync. Voici des exemples de demande d’authentification :
www-authenticate: bearer
.Une action de demande doit indiquer à l’utilisateur quel mécanisme d’authentification utiliser pour accéder à la ressource demandée.
Une action d’interdiction d’un schéma d’authentification est appelée par l’autorisation quand un utilisateur authentifié tente d’accéder à une ressource à laquelle il n’est pas autorisé à accéder. Consultez ForbidAsync. Voici des exemples d’interdiction d’authentification :
Une action d’interdiction peut indiquer à l’utilisateur que :
Consultez les liens suivants pour connaître les différences entre la demande et l’interdiction :
Le framework ASP.NET Core n’a pas de solution intégrée pour l’authentification multilocataire. Bien qu’il soit possible pour les clients d’écrire une application avec une authentification multilocataire, nous vous recommandons d’utiliser un des frameworks d’application ASP.NET Core suivants qui prennent en charge l’authentification multilocataire :
Orchard Core. Consultez la source d’Orchard Core pour obtenir un exemple de fournisseurs d’authentification par locataire.
ABP Framework prend en charge différents modèles d’architecture, notamment la modularité, les microservices, la conception pilotée par le domaine et le multilocataire. Consultez la source d’ABP Framework sur GitHub.
Commentaires sur ASP.NET Core
ASP.NET Core est un projet open source. Sélectionnez un lien pour fournir des commentaires :
Événement
Championnats du monde Power BI DataViz
14 févr., 16 h - 31 mars, 16 h
Avec 4 chances d’entrer, vous pourriez gagner un package de conférence et le rendre à la Live Grand Finale à Las Vegas
En savoir plus