Проверка подлинности 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:
Необязательная установка пароля
При регистрации с использованием внешнего поставщика входа у вас нет пароля, зарегистрированного в приложении. Благодаря этому вам не нужно создавать и запоминать пароль для сайта, однако при этом возникает зависимость от внешнего поставщика входа. Если внешний поставщик входа недоступен, вы не сможете войти на веб-сайт.
Чтобы создать пароль и войти с использованием адреса электронной почты, который был настроен при входе с использованием внешнего поставщика, выполните следующие действия: