Упражнение. Классификация конфиденциальных данных в облачном приложении

Завершено

В этом упражнении вы классифицируете типы конфиденциальных данных в примере eShopLite приложения.

Приложение находится в активной разработке и в настоящее время имеет два класса данных и ProductOrder. Они строят процесс упорядочивания и хотят добавить код для классификации типов данных.

В этом упражнении вы узнаете, как:

  • Изучите текущее приложение и его типы данных.
  • Добавьте код для классификации типов данных.
  • Запустите и протестируйте приложение.

Открытие среды разработки

Вы можете использовать пространство кода GitHub, в котором размещено упражнение, или выполнить упражнение локально в Visual Studio Code.

Чтобы использовать пространство кода, создайте предварительно настроенное пространство GitHub Codespace с помощью этой ссылки на создание Codespace.

GitHub занимает несколько минут, чтобы создать и настроить пространство кода. По завершении процесса вы увидите файлы кода для упражнения. Код, используемый для остальной части этого модуля, находится в каталоге /dotnet-compliance .

Чтобы использовать Visual Studio Code, введите репозиторий в https://github.com/MicrosoftDocs/mslearn-dotnet-cloudnative собственную учетную запись GitHub. Затем:

  1. Убедитесь, что Docker запущен. В новом окне Visual Studio Code нажмите клавиши CTRL SHIFT++P, чтобы открыть палитру команд.
  2. Найдите и выберите контейнеры разработки: клонировать репозиторий в томе контейнера.
  3. Выберите вилку репозитория. Visual Studio Code создает контейнер разработки локально.

eShopLite Тестирование приложения

  1. В нижней части окна Visual Studio Code перейдите на вкладку ТЕРМИНАЛА .

  2. Перейдите в папку упражнений:

    cd dotnet-compliance/eShopLite
    
  3. Создайте контейнеры приложений.

    dotnet publish /p:PublishProfile=DefaultContainer 
    
  4. Запустите приложение с помощью Docker:

    cd ..
    docker compose up
    
  5. Перейдите на вкладку "ПОРТЫ", а затем щелкните значок "Открыть в браузере" для порта переднего плана (32000).

  6. Выберите ссылку "Продукты". Приложение отображает список продуктов.

    A screenshot of the running eShopLite app.

  7. Перейдите на вкладку ТЕРМИНАЛА, а затем нажмите клавиши CTRL+C, чтобы остановить приложение.

Создание таксономий и атрибутов

В этой задаче добавьте код для создания двух новых таксономий. Затем заметьте Product типы данных Order с соответствующими атрибутами.

  1. На вкладке ТЕРМИНАЛА перейдите в папкуeShopLite/DataEntities:

    cd eShopLite/DataEntities/
    
  2. Добавьте пакет соответствия требованиям:

    dotnet add package Microsoft.Extensions.Compliance.Redaction
    
  3. В области обозревателя щелкните правой кнопкой мыши папку DataEntities, а затем выберите новый файл.

  4. В имени файла введите Compliance.cs.

  5. В редакторе введите следующий код:

    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. Он также создает два атрибута и EUIIDataAttributeEUPDataAttribute. Эти атрибуты используются для анимации типов данных.

Классификация типов данных

Используйте эти таксономии и атрибуты для классификации типов данных в eShopLite приложении.

  1. В области обозревателя разверните папку DataEntities, а затем выберите файл Product.cs.

    В этом классе нет конкретных конфиденциальных данных клиента, но приложение может утечки псевдонимных данных, если свойство идентификатора продукта подключено к клиенту в журналах.

  2. Добавьте атрибут в EUPDataProductId свойство:

    [EUPData]
    [Key]
    [JsonPropertyName("id")]
    public int Id { get; set; }
    

    Приведенный выше код сообщает обработчику редактирования, что Id свойство является псевдонимными данными.

  3. В области обозревателя разверните папку DataEntities, а затем выберите файл Order.cs.

    Класс Order содержит конфиденциальные данные. CustomerAddress Свойства CustomerName — это идентифицируемые пользователем сведения. Это Id свойство является псевдонимной информацией пользователя.

  4. Добавьте атрибут к свойствам EUIIData и CustomerAddress свойствамCustomerName:

    [EUIIData]
    [JsonPropertyName("customerName")]
    public string? CustomerName { get; set; }
    
    [EUIIData]
    [JsonPropertyName("customerAddress")]
    public string? CustomerAddress { get; set; }
    

    Приведенный выше код сообщает обработчику редактирования, что CustomerName и CustomerAddress свойства являются идентифицируемыми пользователем сведениями.

  5. Добавьте атрибут в EUPDataId свойство:

    [Key]
    [EUPData]
    [JsonPropertyName("id")]
    public int Id { get; set; }
    

    Приведенный выше код сообщает обработчику редактирования, что Id свойство является псевдонимом пользователя.

Тестирование изменений в eShopLite приложении

  1. В области терминала в нижней части экрана перейдите в папку dotnet-compliance/eShopLite.

    cd ..
    
  2. Обновите контейнеры приложений.

    dotnet publish /p:PublishProfile=DefaultContainer 
    
  3. Перейдите в папку dotnet-compliance и запустите приложение с помощью Docker:

    cd ..
    docker compose up
    
  4. Если вы закрыли вкладку в браузере, выберите вкладку "ПОРТЫ", а затем щелкните значок "Открыть в браузере" для порта переднего плана (32000).

  5. Обратите внимание, что eShopLite приложение не изменяется.

  6. Попробуйте добавить некоторые продукты в корзину, а затем выберите "Купить корзину".

  7. В окне терминала нажмите клавиши CTRL+C, чтобы остановить приложение.

В следующем упражнении вы добавите отредактированное ведение журнала.