introduction à la sécurité dans asp.net core

Post on 15-Jan-2017

253 Views

Category:

Technology

1 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Introduction à la sécurité dans ASP.NET Core

Anthony GirettiDéveloppeur sénior ASP.NET chez Spiria

anthony.giretti@gmail.comhttp://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 Spiriaanthony.giretti@gmail.comhttp://anthonygiretti.com

Code source de cette présentation : https://github.com/AnthonyGiretti/aspnetcoresecurity

top related