Упражнение. Классификация конфиденциальных данных в облачном приложении
В этом упражнении вы классифицируете типы конфиденциальных данных в примере eShopLite приложения.
Приложение находится в активной разработке и в настоящее время имеет два класса данных и Product Order. Они строят процесс упорядочивания и хотят добавить код для классификации типов данных.
В этом упражнении вы узнаете, как:
- Изучите текущее приложение и его типы данных.
- Добавьте код для классификации типов данных.
- Запустите и протестируйте приложение.
Открытие среды разработки
Вы можете использовать пространство кода GitHub, в котором размещено упражнение, или выполнить упражнение локально в Visual Studio Code.
Чтобы использовать пространство кода, создайте предварительно настроенное пространство GitHub Codespace с помощью этой ссылки на создание Codespace.
GitHub занимает несколько минут, чтобы создать и настроить пространство кода. По завершении процесса вы увидите файлы кода для упражнения. Код, используемый для остальной части этого модуля, находится в каталоге /dotnet-compliance .
Чтобы использовать Visual Studio Code, введите репозиторий в https://github.com/MicrosoftDocs/mslearn-dotnet-cloudnative собственную учетную запись GitHub. Затем:
- Убедитесь, что Docker запущен. В новом окне Visual Studio Code нажмите клавиши CTRL SHIFT++P, чтобы открыть палитру команд.
- Найдите и выберите контейнеры разработки: клонировать репозиторий в томе контейнера.
- Выберите вилку репозитория. Visual Studio Code создает контейнер разработки локально.
eShopLite Тестирование приложения
В нижней части окна Visual Studio Code перейдите на вкладку ТЕРМИНАЛА .
Перейдите в папку упражнений:
cd dotnet-compliance/eShopLite
Создайте контейнеры приложений.
dotnet publish /p:PublishProfile=DefaultContainer
Запустите приложение с помощью Docker:
cd .. docker compose up
Перейдите на вкладку "ПОРТЫ", а затем щелкните значок "Открыть в браузере" для порта переднего плана (32000).
Выберите ссылку "Продукты". Приложение отображает список продуктов.
Перейдите на вкладку ТЕРМИНАЛА, а затем нажмите клавиши CTRL+C, чтобы остановить приложение.
Создание таксономий и атрибутов
В этой задаче добавьте код для создания двух новых таксономий. Затем заметьте Product типы данных Order с соответствующими атрибутами.
На вкладке ТЕРМИНАЛА перейдите в папкуeShopLite/DataEntities:
cd eShopLite/DataEntities/
Добавьте пакет соответствия требованиям:
dotnet add package Microsoft.Extensions.Compliance.Redaction
В области обозревателя щелкните правой кнопкой мыши папку DataEntities, а затем выберите новый файл.
В имени файла введите Compliance.cs.
В редакторе введите следующий код:
using Microsoft.Extensions.Compliance.Classification; using Microsoft.Extensions.Compliance.Redaction; public static class DataClassifications { // End User Identifiable Information public static DataClassification EUIIDataClassification {get;} = new DataClassification("EUIIDataTaxonomy", "EUIIData"); // End User Pseudonymous Information public static DataClassification EUPDataClassification {get;} = new DataClassification("EUPDataTaxonomy", "EUPData"); } public class EUIIDataAttribute : DataClassificationAttribute { public EUIIDataAttribute() : base(DataClassifications.EUIIDataClassification) { } } public class EUPDataAttribute : DataClassificationAttribute { public EUPDataAttribute() : base(DataClassifications.EUPDataClassification) { } }
Приведенный выше код создает две таксономии EUII и EUPI. Он также создает два атрибута и EUIIDataAttribute EUPDataAttribute. Эти атрибуты используются для анимации типов данных.
Классификация типов данных
Используйте эти таксономии и атрибуты для классификации типов данных в eShopLite приложении.
В области обозревателя разверните папку DataEntities, а затем выберите файл Product.cs.
В этом классе нет конкретных конфиденциальных данных клиента, но приложение может утечки псевдонимных данных, если свойство идентификатора продукта подключено к клиенту в журналах.
Добавьте атрибут в EUPData ProductId свойство:
[EUPData] [Key] [JsonPropertyName("id")] public int Id { get; set; }
Приведенный выше код сообщает обработчику редактирования, что Id свойство является псевдонимными данными.
В области обозревателя разверните папку DataEntities, а затем выберите файл Order.cs.
Класс Order содержит конфиденциальные данные. CustomerAddress Свойства CustomerName — это идентифицируемые пользователем сведения. Это Id свойство является псевдонимной информацией пользователя.
Добавьте атрибут к свойствам EUIIData и CustomerAddress свойствамCustomerName:
[EUIIData] [JsonPropertyName("customerName")] public string? CustomerName { get; set; } [EUIIData] [JsonPropertyName("customerAddress")] public string? CustomerAddress { get; set; }
Приведенный выше код сообщает обработчику редактирования, что CustomerName и CustomerAddress свойства являются идентифицируемыми пользователем сведениями.
Добавьте атрибут в EUPData Id свойство:
[Key] [EUPData] [JsonPropertyName("id")] public int Id { get; set; }
Приведенный выше код сообщает обработчику редактирования, что Id свойство является псевдонимом пользователя.
Тестирование изменений в eShopLite приложении
В области терминала в нижней части экрана перейдите в папку dotnet-compliance/eShopLite.
cd ..
Обновите контейнеры приложений.
dotnet publish /p:PublishProfile=DefaultContainer
Перейдите в папку dotnet-compliance и запустите приложение с помощью Docker:
cd .. docker compose up
Если вы закрыли вкладку в браузере, выберите вкладку "ПОРТЫ", а затем щелкните значок "Открыть в браузере" для порта переднего плана (32000).
Обратите внимание, что eShopLite приложение не изменяется.
Попробуйте добавить некоторые продукты в корзину, а затем выберите "Купить корзину".
В окне терминала нажмите клавиши CTRL+C, чтобы остановить приложение.
В следующем упражнении вы добавите отредактированное ведение журнала.