introduction à la sécurité dans asp.net core
TRANSCRIPT
Introduction à la sécurité dans ASP.NET Core
Anthony GirettiDéveloppeur sénior ASP.NET chez Spiria
[email protected]://anthonygiretti.com
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
La sécuritéL’authentification avec ASP.NET Core Identity
• Introduction à ASP.NET Core IdentitySystè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
La sécuritéL’authentification avec ASP.NET Core Identity
• Exemple avec les comptes utilisateurs individuelsASP.NET Core Identity fortement couplé avec
EntityFramework (package Microsoft.AspNetCore.Identity.EntityFrameworkCore)
La sécuritéL’authentification avec ASP.NET Core Identity
La sécuritéL’authentification avec ASP.NET Core Identity
• Configuration du service
La sécuritéL’authentification avec ASP.NET Core Identity
• Activation du service
La sécuritéL’authentification avec ASP.NET Core Identity
• Instanciation dans un controlleur
La sécuritéL’authentification avec ASP.NET Core Identity
• Création d’un utilisateur
La sécuritéL’authentification avec ASP.NET Core Identity
• Authentification d’un utilisateur
La sécuritéL’authentification avec ASP.NET Core Identity
• LogOff
La sécuritéL’authentification avec ASP.NET Core Identity
La sécuritéL’authentification avec ASP.NET Core Identity
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/identity.html
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)
La sécuritéL’authentification sans ASP.NET Core Identity
Utilisation des Cookies classiques (via HttpContext.Request.Cookies)
Utilisation des Cookies MiddlewareClaim-based (cf : WIF)Permettent de sérialiser les informations d’utilisateur (Principal) et
d’encrypter dans un cookieCapable via des évènements de valider son intégritéDe recréer le Principal et de l’assigner à l’objet User de HttpContext
La sécuritéL’authentification sans ASP.NET Core Identity
• Configuration
La sécuritéL’authentification sans ASP.NET Core Identity
• Exemple de login
La sécuritéL’authentification sans ASP.NET Core Identity
• Exemple de page nécessitant d’être authentifié
La sécuritéL’authentification sans ASP.NET Core Identity
• LogOff
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.
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/cookie.html
La sécuritéLes autorisations avec ASP.NET Core
• Introduction aux autorisations :On retrouve les attributs AuthorizeAttribute et AllowAnonymousAttributeOn les retrouve dans le namespace Microsoft.AspNetCore.Authorization
Simple Authorization Role based Authorization Claims-Based Authorization Custom Policy-Based Authorization
La sécuritéLes autorisations avec ASP.NET Core
• Reprenons l’exemple avec les cookies
La sécuritéLes autorisations avec ASP.NET Core
• Les autorisations simples
La sécuritéLes autorisations avec ASP.NET Core
• Les autorisations basées sur des rôles
La sécuritéLes autorisations avec ASP.NET Core
• Configuration des autorisation basées sur les claims
La sécuritéLes autorisations avec ASP.NET Core
• Exemple
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)
La sécuritéLa protection des données avec .NET Core
• Introduction :Toute nouvelle feature de .NET CorePropose 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)
La sécuritéLa protection des données avec .NET Core
• Configuration du Data Protection :Dépendance au namespace Microsoft.AspNetCore.DataProtection
La sécuritéLa protection des données avec .NET Core
• Exemple d’utilisation du Data Protection
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
La sécuritéLa protection des données avec .NET Core
• Introduction à la nouvelle librairie d’encryptionBasée sur 2 nouvelle interface : IAuthenticatedEncryptor
et IAuthenticatedEncryptorDescriptorDescription ici :
https://docs.asp.net/en/latest/security/data-protection/extensibility/core-crypto.html
Merci! C’était :Introduction à la sécurité dans
ASP.NET CoreAnthony Giretti
Développeur sénior ASP.NET chez [email protected]://anthonygiretti.com
Code source de cette présentation : https://github.com/AnthonyGiretti/aspnetcoresecurity