Проверка подлинности и авторизация Статические веб-приложения

Предупреждение

Из-за изменений в политике API X(ранее Twitter) мы не можем продолжать поддерживать его в рамках предварительно настроенных поставщиков для вашего приложения. Если вы хотите продолжать использовать X(ранее Twitter) для проверки подлинности и авторизации с приложением, обновите конфигурацию приложения, чтобы зарегистрировать настраиваемый поставщик.

Статические веб-приложения Azure обеспечивает упрощенную проверку подлинности, в которой для проверки подлинности не требуются другие действия или конфигурации.

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

Вы можете зарегистрировать настраиваемый поставщик, который отключает всех предварительно настроенных поставщиков.

Необходимые компоненты

Помните о следующих значениях по умолчанию и ресурсах для проверки подлинности и авторизации с помощью Статические веб-приложения Azure.

По умолчанию:

  • Любой пользователь может пройти проверку подлинности с помощью предварительно настроенного поставщика
    • GitHub
    • ИД Microsoft Entra
    • Чтобы ограничить поставщик проверки подлинности, заблокируйте доступ с помощью настраиваемого правила маршрутизации.
  • После входа пользователи принадлежат к ролям и authenticated ролямanonymous. Дополнительные сведения о ролях см. в разделе "Управление ролями"

Ресурсы:

  • Определение правил в файле staticwebapp.config.json для авторизованных пользователей для получения доступа к ограниченным маршрутам
  • Назначение пользовательских ролей пользователям с помощью встроенной системы приглашений
  • Программное назначение пользовательских ролей пользователей при входе с помощью функции API
  • Понять, что проверка подлинности и авторизация значительно перекрываются с концепциями маршрутизации, которые подробно описаны в руководстве по настройке приложений
  • Ограничить вход определенным клиентом Microsoft Entra, настроив настраиваемый поставщик Microsoft Entra. Предварительно настроенный поставщик Microsoft Entra позволяет любой учетной записи Майкрософт войти в систему.

Настройка входа

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

Чтобы найти маршрут для определенного поставщика, воспользуйтесь сведениями из следующей таблицы.

Поставщик авторизации Маршрут входа
ИД Microsoft Entra /.auth/login/aad
GitHub /.auth/login/github

Например, чтобы войти с помощью GitHub, можно включить примерно такую же ссылку.

<a href="/.auth/login/github">Login</a>

Если вы решили поддерживать несколько поставщиков, предоставьте ссылку для каждого поставщика на веб-сайте. Используйте правило маршрута для сопоставления поставщика по умолчанию с понятным маршрутом, например /login.

{
  "route": "/login",
  "redirect": "/.auth/login/github"
}

Настройка перенаправления после входа

Верните пользователя на определенную страницу после входа, указав полный URL-адрес в post_login_redirect_uri параметре строки запроса, как показано в следующем примере.

<a href="/.auth/login/github?post_login_redirect_uri=https://zealous-water.azurestaticapps.net/success">Login</a>

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

{
  "responseOverrides": {
    "401": {
      "redirect": "/.auth/login/github?post_login_redirect_uri=.referrer",
      "statusCode": 302
    }
  }
}

Настройка выхода

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

<a href="/.auth/logout">Log out</a>

Используйте правило маршрута для сопоставления понятного маршрута, например /logout.

{
  "route": "/logout",
  "redirect": "/.auth/logout"
}

Настройка перенаправления после выхода

Чтобы вернуть пользователя на определенную страницу после выхода, укажите URL-адрес в post_logout_redirect_uri параметре строки запроса.

Блокировка поставщика проверки подлинности

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

Чтобы заблокировать поставщика, можно создать правила маршрутизации, чтобы вернуть код состояния 404 для запросов к заблокированным маршруту для конкретного поставщика. Например, чтобы ограничить доступ к Twitter в качестве поставщика, добавьте следующее правило маршрутизации.

{
  "route": "/.auth/login/twitter",
  "statusCode": 404
}

Удаление персональных данных

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

Конечным пользователям необходимо обратиться к администраторам отдельных веб-приложений, чтобы удалить эти сведения в системах.

Чтобы удалить персональные данные из платформы Статические веб-приложения Azure и запретить платформе предоставлять эти сведения о будущих запросах, отправьте запрос с помощью следующего URL-адреса:

https://identity.azurestaticapps.net/.auth/purge/<AUTHENTICATION_PROVIDER_NAME>

Чтобы предотвратить предоставление этой информации о будущих запросах для отдельных приложений, отправьте запрос с помощью следующего URL-адреса:

https://<WEB_APP_DOMAIN_NAME>/.auth/purge/<AUTHENTICATION_PROVIDER_NAME>

Если вы используете идентификатор Microsoft Entra, используйте aad в качестве значения заполнителя <AUTHENTICATION_PROVIDER_NAME> .

Совет

Сведения об общих ограничениях и ограничениях см. в разделе "Квоты".

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