У нас есть веб-приложение ASP.NET core 2.2, демонстрирующее некоторые контроллеры веб-API.Наше приложение не имеет какого-либо механизма аутентификации, все открытые конечные точки могут быть вызваны анонимным пользователем.
Когда мы размещаем приложение под IIS, мы получаем три странных предупреждающих сообщения при запуске приложения.Вот журналы, которые мы получаем:
- Использование хранилища в памяти.Ключи не будут сохранены в хранилище.
- Нет ни профиля пользователя, ни реестра HKLM.Использование хранилища эфемерного ключа.Защищенные данные будут недоступны при выходе из приложения.
- Не настроен шифровщик XML.Ключ {GUID} может быть сохранен в хранилище в незашифрованном виде.
Все эти журналы имеют Microsoft.AspNetCore.DataProtection в качестве контекста журнала и записываются внутренними компонентами ядра ASP.NET.
Значение этих журналов мне кажется совершенно ясным: существует «ключ» (что бы это ни значило), который будет сохранен в памяти, поскольку не было предоставлено хранилище реестра (и, конечно, он будетпотеряться при выходе из приложения).Есть также предупреждение, указывающее, что этот ключ, если он сохранится, не будет зашифрован каким-либо образом.
На этом этапе я бы задал следующие вопросы:
- что такоеGUID сообщается внутри журналов с именем «ключ»?Для чего используется?
- Существует ли угроза безопасности, связанная с этими предупреждениями?
- Должен ли я предпринять какие-либо действия?
НЕКОТОРЫЕ ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ:
Некоторые блоги в Интернете предполагают, что такого рода предупреждения о защите данных связаны с использованием удостоверений ASP.NET, но мы не используем удостоверения в нашихприложение (у нас не включена аутентификация).Другие блоги предлагают настроить пул приложений хостинга для загрузки профиля пользователя: я уже пробовал это, но предупреждения все еще там.
ВАЖНОЕ ОБНОВЛЕНИЕ 2 апреля 2019
Я решил проблемублагодаря помощи команды разработчиков ядра asp.net.Для полной справки см. проблему github, которую я открыл вчера
Короче говоря, проблема связана с конфигурацией IIS на моей машине для разработки.Чтобы защита данных ядра ASP.NET работала должным образом, существует определенная конфигурация для IIS и пула приложений хостинга ( для получения полной справки см. Здесь )