Nous aborderons différentes façons de sécuriser votre application ainsi que vos données sous .NET Core. Au menu? La nouvelle API Data Protection, nous verrons quel en est sa philosophie. J'introduirais également le nouveau mécanisme d'authentification avec ASP.NET Core Identity et les autorisations avec ASP.NET Core authorization
1. Introduction à la sécurité dans
ASP.NET Core
Anthony Giretti
Développeur sénior ASP.NET chez Spiria
anthony.giretti@gmail.com
http://anthonygiretti.com
2. La sécurité
• Le mécanisme d’authentification
• Les autorisations
• La protection des données
• SSL et Https
• Anti-Request Forgery
• Prévention des attaques XSS
• Autorisation /rejet des requêtes Cross-Origin
3. La sécurité
L’authentification avec ASP.NET Core Identity
• Introduction à ASP.NET Core Identity
Système d’abonnement permettant d’ajouter des fonctionnalités de
connexion à son application en utilisant un nom d’utilisateur et un mot de
passe ou utiliser un fournisseur de connexion tel que Facebook,
Compatible avec SQL Server, Azure Storage Table
4. La sécurité
L’authentification avec ASP.NET Core Identity
• Exemple avec les comptes utilisateurs individuels
ASP.NET Core Identity fortement couplé avec EntityFramework (package
Microsoft.AspNetCore.Identity.EntityFrameworkCore)
14. La sécurité
L’authentification avec ASP.NET Core Identity
(Démo sur mon pc)
• Tutoriel complet ici :
https://docs.asp.net/en/latest/security/authentication/i
dentity.html
15. La sécurité
L’authentification avec ASP.NET Core Identity
• Features associées :
Authentification avec Facebook, Google et autres fournisseurs externes
(https://docs.asp.net/en/latest/security/authentication/sociallogins.html)
Support de OAuth 2.0
(https://docs.asp.net/en/latest/security/authentication/oauth2.html)
Confirmation de compte et récupération de mot de passe sécurisée
(https://docs.asp.net/en/latest/security/authentication/accconfirm.html)
Authentification par SMS
(https://docs.asp.net/en/latest/security/authentication/2fa.html)
16. La sécurité
L’authentification sans ASP.NET Core Identity
Utilisation des Cookies classiques (via HttpContext.Request.Cookies)
Utilisation des Cookies Middleware
Claim-based (cf : WIF)
Permettent de sérialiser les informations d’utilisateur (Principal) et d’encrypter dans un cookie
Capable via des évènements de valider son intégrité
De recréer le Principal et de l’assigner à l’objet User de HttpContext
21. La sécurité
L’authentification sans ASP.NET Core Identity
• Gestionnaire d’évènement, exemple en vas de modification d’une
information de l’utilisateur principal courant.
22. La sécurité
L’authentification sans ASP.NET Core Identity
(Démo sur mon pc)
• Tutoriel complet ici :
https://docs.asp.net/en/latest/security/authentication/c
ookie.html
23. La sécurité
Les autorisations avec ASP.NET Core
• Introduction aux autorisations :
On retrouve les attributs AuthorizeAttribute et AllowAnonymousAttribute
On les retrouve dans le namespace Microsoft.AspNetCore.Authorization
Simple Authorization
Role based Authorization
Claims-Based Authorization
Custom Policy-Based Authorization
29. La sécurité
Les autorisations avec ASP.NET Core
• Pour aller plus loin….
Il est possible de créer des policies plus élaborées
Il est aussi possible de créer ses propres Handlers
(https://docs.asp.net/en/latest/security/authorization/policies.html)
30. La sécurité
La protection des données avec .NET Core
• Introduction :
Toute nouvelle feature de .NET Core
Propose 3 manières de protéger ses données
Data Protection (cryptage à vocation non durable basée sur une clé et un lifetime défini, réversible)
Hashing (encodage irréversible, recommandé pour les mots de passes)
Encryption (cryptage à vocation durable, réversible)
31. La sécurité
La protection des données avec .NET Core
• Configuration du Data Protection :
Dépendance au namespace Microsoft.AspNetCore.DataProtection
33. La sécurité
La protection des données avec .NET Core
• Implémentation d’une classe statique de :
Dépendance au namespace Microsoft.Cryptography.KeyDerivation
34. La sécurité
La protection des données avec .NET Core
• Introduction à la nouvelle librairie d’encryption
Basée sur 2 nouvelle interface : IAuthenticatedEncryptor et
IAuthenticatedEncryptorDescriptor
Description ici : https://docs.asp.net/en/latest/security/data-
protection/extensibility/core-crypto.html
35. Merci! C’était :
Introduction à la sécurité dans
ASP.NET Core
Anthony Giretti
Développeur sénior ASP.NET chez Spiria
anthony.giretti@gmail.com
http://anthonygiretti.com
Code source de cette présentation : https://github.com/AnthonyGiretti/aspnetcoresecurity