Je tente de configurer la protection des données dans mes applications Web Azure. Par conséquent, lorsque je permute entre la mise en scène et la production, tout le monde ne se déconnecte pas. Je suis bloqué sur crypter les clés avec un certificat auto-signé dans Azure.API ASP.Net Core Data Protection dans Azure Web App
Ma question est très liée à: ASP.Net Core Data Protection API in a Clustered Environment Cependant, la réponse sur cela ne fonctionne pas pour moi comme je l'avais déjà arrivé jusqu'ici.
Mon code fonctionne parfaitement bien quand je le lance localement avec un certificat installé à mon machince, mais quand je déploie mon application Web Azure, il l'habitude de commencer et jette juste une erreur générique:
Unhandled Exception: System.Security.Cryptography.CryptographicException: Exception of type 'System.Security.Cryptography.CryptographicException' was thrown.
Pour configurer ma protection des données, je suis en utilisant le code suivant dans ConfigureServices:
// Add data protection
var storageAccount = CloudStorageAccount.Parse(Configuration["BlobStorage:ConnectionString"]);
var client = storageAccount.CreateCloudBlobClient();
var container = client.GetContainerReference(Configuration["DataProtection:ContainerName"]);
container.CreateIfNotExistsAsync().Wait();
services.AddDataProtection()
.SetApplicationName(Configuration["DataProtection:ApplicationName"])
.PersistKeysToAzureBlobStorage(container, Configuration["DataProtection:BlobName"]);
.ProtectKeysWithDpapiNG($"CERTIFICATE=HashId:{Configuration["Authentication:SingingCertThumbprint"]}",
DpapiNGProtectionDescriptorFlags.None);
le certificat que je utilise est auto-signé et je l'ai téléchargé sur Azure à travers la section des certificats SSL sur l'application web (cependant, comme suggéré sur d'autres messages, j'ai également essayé un certificat de confiance - pas de chance). J'utilise le paramètre de l'application WEBSITE_LOAD_CERTIFICATES dans mon application Web Azure, donc ce n'est pas le problème non plus.
A noter également, si je retire
.ProtectKeysWithDpapiNG($"CERTIFICATE=HashId:{Configuration["Authentication:SingingCertThumbprint"]}",
DpapiNGProtectionDescriptorFlags.None);
Ensuite, l'application Web démarre et fonctionne très bien. Mais maintenant mes clés sont évidemment stockées non cryptées.
Toute aide serait très appréciée, merci.
Merci pour la réponse. Cela me rend un peu plus heureux d'entendre que je ne suis pas le seul à avoir ce problème alors .. J'ai essayé ProtectKeysWithDpapi et je peux confirmer que cela fonctionne. Cependant, j'ai besoin de plusieurs serveurs pour regarder ces données .. Donc, cela ne fonctionne pas vraiment comme une solution pour moi (d'où la raison pour laquelle je voulais utiliser le certificat). – MitchellNZ
Je vous suggère de signaler ce problème sur le site de commentaires Azure. https://feedback.azure.com – Amor