Защита данных ASP.NET Core - невозможно использовать общий ключ при защите сертификатом - PullRequest
0 голосов
/ 29 мая 2019

У меня есть два основных API asp.net, которые должны использовать одну и ту же защиту данных. (В основном для токена защиты от подделки мы хотим, чтобы приложение A могло отправлять сообщения в приложение B). Я знаю, что мне нужно установить общее имя приложения (как объяснено в этом ответе SO и , это работает.

   var di = new DirectoryInfo(cryptoKeysLocation);
   services
     .AddDataProtection()
     .SetApplicationName("mywebapps")
     .PersistKeysToFileSystem(di)

Однако, как только я добавляю сертификат для шифрования ключа, я получаю CryptographicException. Когда я смотрю на место для хранения криптографических ключей, я вижу, что теперь созданы дубликаты ключей ... больше не только один ключ.
Похоже, этот дополнительный ProtectKeysWithCertificate делает невозможным обмен ключами между приложениями?
Или я здесь упускаю еще один важный шаг?

   var di = new DirectoryInfo(cryptoKeysLocation);
   services
     .AddDataProtection()
     .SetApplicationName("mywebapps")
     .PersistKeysToFileSystem(di)
     .ProtectKeysWithCertificate(new X509Certificate2(certpfx, certpwd));
...