Упражнение. Настройка поставщиков проверки подлинности и доступа

Завершено

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

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

  1. Добавите правила в конфигурацию маршрутизации, чтобы отключить некоторых поставщиков проверки подлинности.
  2. Защитите список продуктов, чтобы к нему могли обращаться только пользователи, прошедшие проверку подлинности.
  3. Развернете обновленное приложение.
  4. Проверите, действуют ли ограничения.

Отключение поставщиков проверки подлинности

Мы обновим конфигурацию маршрутизации приложения, чтобы отключить поставщика проверки подлинности Microsoft Entra.

  1. Откройте проект в Visual Studio Code.

  2. Откройте этот файл.

    angular-app/staticwebapp.config.json
    
    react-app/staticwebapp.config.json
    
    svelte-app/staticwebapp.config.json
    
    vue-app/staticwebapp.config.json
    
  3. В корень объекта JSON добавьте следующую конфигурацию маршрутизации.

    "routes": [
      {
        "route": "/.auth/login/aad",
        "statusCode": 404
      }
    ]
    

    Добавив это правило маршрутизации, мы запрещаем пользователям получать доступ к поставщику проверки подлинности Microsoft Entra.

Защита доступа к списку продуктов

Далее мы хотим защитить список продуктов, чтобы доступ к API был возможен только для пользователей, прошедших проверку подлинности. Для этого мы добавим в файл конфигурации staticwebapp.config.json еще одно правило маршрутизации.

  1. Добавьте следующее правило вверху массива routes.

    {
      "route": "/api/products/*",
      "allowedRoles": ["authenticated"]
    },
    
  2. Завершенный файл staticwebapp.config.json должен выглядеть так, как показано ниже.

    {
      "routes": [
        {
          "route": "/api/products/*",
          "allowedRoles": ["authenticated"]
        },
        {
          "route": "/.auth/login/aad",
          "statusCode": 404
        }
      ],
      "navigationFallback": {
        "rewrite": "/index.html",
        "exclude": ["*.{css,scss,js,png,gif,ico,jpg,svg}"]
      }
    }
    

Развертывание изменений

Перед проверкой результата этой конфигурации мы повторно развернем приложение.

  1. Откройте палитру команд Visual Studio Code, нажав клавишу F1.

  2. Введите и выберите Git: зафиксировать в.

  3. Введите сообщение фиксации Secure access и нажмите клавишу ВВОД.

  4. Откройте палитру команд, нажав клавишу F1.

  5. Введите и выберите Git: отправить и нажмите клавишу ВВОД.

После того как изменения отправлены, дождитесь выполнения процесса сборки и развертывания. После этого изменения должны быть видны в развернутом приложении.

Тестирование новых ограничений

После повторного развертывания приложения можно проверить эффективность новых ограничений.

  1. В окне обозревателя Visual Studio Code вернитесь в раздел Статические веб-приложения и щелкните правой кнопкой мыши my-static-web-app-and-authn, а затем выберите Обзор веб-сайта, чтобы просмотреть приложение в браузере.

  2. Если вы не вошли в систему, вместо списка продуктов вы должны увидеть сообщение о недостатке прав для доступа.

  3. Выберите идентификатор Microsoft Entra в списке поставщиков проверки подлинности, чтобы войти в систему.

    Вы увидите страницу ошибки 404, подобную следующей.

    Снимок экрана: страница ошибки Статические веб-приложения 404.

  4. Нажмите кнопку "Назад" браузера, чтобы вернуться к приложению.

  5. Чтобы войти в систему, в списке поставщиков проверки подлинности выберите GitHub.

  6. При появлении запроса введите учетные данные GitHub, а затем на странице согласия Azure выберите Предоставление согласия.

Теперь вы вошли в систему и должны увидеть список продуктов.

Следующие шаги

Поздравляем. Вы реализовали полный рабочий процесс проверки подлинности в статическом веб-приложении.