Проверка подлинности Facebook, Google и внешних поставщиков в ASP.NET Core

Проверка подлинности Facebook, Google и внешних поставщиков в ASP.NET Core

В этом руководстве показано создание приложения ASP.NET Core, позволяющего пользователям выполнять вход с помощью OAuth 2.0 и учетных данных от внешних поставщиков проверки подлинности.

В следующих разделах рассматриваются такие поставщики, как Facebook, Twitter, Google и Майкрософт, использующие созданный в рамках этой статьи начальный проект. В сторонних пакетах также доступны другие поставщики, такие как AspNet.Security.OAuth.Providers и AspNet.Security.OpenId.Providers.

Позволяет пользователям входить в систему с имеющимися учетными данными:

  • Удобно для пользователей.
  • Многие задачи, связанные с управлением процессом входа, передаются сторонним производителям.

Создание проекта ASP.NET Core

  • Visual Studio
  • Visual Studio Code/Visual Studio для Mac
  • Создайте новый проект.
  • Выберите Веб-приложение ASP.NET Core и нажмите Далее.
  • Укажите Имя проекта и подтвердите либо измените Расположение. Выберите Создать.
  • Выберите последнюю версию ASP.NET Core в раскрывающемся списке (ASP.NET Core ), а затем выберите Веб-приложение.
  • В разделе Проверка подлинности выберите Изменить и в качестве типа проверки подлинности задайте Индивидуальные учетные записи пользователей. Нажмите кнопку ОК.
  • В окне Создать веб-приложение ASP.NET Core выберите Создать.

Откройте терминал. Для Visual Studio Code можно открыть интегрированный терминал.

Смените каталог ( cd ) на папку, в которой будет содержаться проект.

Выполните в Windows следующую команду:

Для MacOS и Linux выполните следующую команду:

  • dotnet new Команда создает новый Razor проект страниц в папке " dotnet new ".
  • -au Individual создает код для отдельной проверки подлинности.
  • -uld использует LocalDB, упрощенную версию SQL Server Express для Windows. Не указывайте -uld , чтобы использовать SQLite.
  • code Команда открывает папку « code » в новом экземпляре Visual Studio Code.

Применение миграции

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

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

Если приложение развертывается с прокси-сервером или подсистемой балансировки нагрузки, некоторые сведения из исходного запроса можно перенаправить в приложение в заголовках запроса. Эти сведения обычно включают безопасную схему запроса ( https ), узел и IP-адрес клиента. Приложения не считывают автоматически и не используют эти заголовки запроса.

Схема используется для создания ссылок, определяющих процесс проверки подлинности с помощью внешних поставщиков. Потеря безопасной схемы ( https ) приводит к тому, что приложение неправильно выполняет перенаправление на небезопасные URL-адреса.

Используйте ПО промежуточного слоя для перенаправленных заголовков, чтобы предоставить приложению сведения из исходных запросов для обработки запросов.

Хранение маркеров безопасности, предоставленных поставщиками входа, с помощью SecretManager

Поставщики входа социальных сетей назначают маркеры идентификатора приложения и секрета приложения в процессе регистрации. Точные имена маркеров зависят от поставщика. Эти маркеры соответствуют учетным данным, которые используются приложением для доступа к API. Маркеры предоставляют секреты пользователя, которые можно подключить к конфигурации приложения с помощью диспетчера секретов. Секреты пользователя — более безопасная альтернатива хранению маркеров в файле конфигурации, например в appsettings.json .

Secret Manager предназначен только для разработки. Для хранения и защиты секретов Azure в ходе тестирования и непосредственной работы используйте Поставщик конфигурации Azure Key Vault.

В разделе Безопасное хранение секретов приложений во время разработки в ASP.NET Core описано, как хранить маркеры, назначаемые приведенными ниже поставщиками входа.

Настройка поставщиков входа, используемых приложением

В следующих разделах приводятся инструкции по настройке приложения для работы с соответствующими поставщиками:

  • Инструкции для Facebook
  • Инструкции для Twitter
  • Инструкции для Google
  • Инструкции для Майкрософт
  • Инструкции для других поставщиков

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

Если приложению требуется несколько поставщиков, объедините в цепочку методы расширения поставщика, реализующие AddAuthentication:

Необязательная установка пароля

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

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