web-dev-qa-db-fra.com

Comment implémenter machineKey dans ASP.NET Core 2.0

Dans ASP.NET (non principal), j'ajouterais normalement une clé machine au fichier web.config pour pouvoir exécuter certaines fonctions sur une machine locale au lieu du serveur, de sorte que les opérations de base de données/de rappel utiliseraient la même clé. Par exemple

<system.web>
  <machineKey validationKey="*********" 
              decryptionKey="*********" 
              validation="HMACSHA256" 
              decryption="AES" />
</system.web>

Quelqu'un peut-il nous dire comment cela peut être fait dans ASP.NET Core 2.0?

11
pathDongle

Vous devez utiliser DataProtection APis now:

La pile de protection des données ASP.NET Core fournit une API cryptographique simple et facile à utiliser que les développeurs peuvent utiliser pour protéger les données, y compris la gestion et la rotation des clés.

Vous pouvez trouver des échantillons dans le répertoire officiel DataProtection .

Soit dit en passant, la même approche fonctionne avec ASP.NET: Remplacement de <machineKey> dans ASP.NET


Le système de protection des données repose sur deux concepts fondamentaux: un fournisseur de protection des données (représenté par l'interface IDataProtectionProvider), utilisé pour créer un protecteur de données (représenté par l'interface IDataProtector) par la méthode CreateProtector. Le protecteur de données est utilisé pour chiffrer et déchiffrer des données.

Pour enregistrer IDataProtectionProvider dans DI, utilisez la méthode .AddDataProtection

public void ConfigureServices(IServiceCollection services)
{
    // Adds data protection services
    services.AddDataProtection();
    ...
}
11
Set

Pour les applications héritées où vous souhaitez créer vos applications ASP.NET Core basées sur une application ASP.NET classique chargée de générer les cookies d'authentification, il existe une bibliothèque open source permettant de les utiliser dans votre ASP. Application .NET Core. Les développeurs ont utilisé l'implémentation de référence .NET Framework pour créer leur propre logique de chiffrement/déchiffrement basée sur Machinekey. Voir https://github.com/synercoder/FormsAuthentication

0
Carl in 't Veld