Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Авторы: Валерий Новицкий (Valeriy Novytskyy) и Рик Андерсон (Rick Anderson)
В этой статье объясняется, как создать приложение ASP.NET Core, позволяющее пользователям входить с помощью OAuth 2.0 с учетными данными от внешних поставщиков проверки подлинности.
В следующих разделах рассматриваются такие поставщики, как Facebook, Twitter, Google и Майкрософт, использующие созданный в рамках этой статьи начальный проект. Другие поставщики доступны в сторонних пакетах, таких как OpenIddict, AspNet.Security.OAuth.Providers и AspNet.Security.OpenId.Providers.
Предоставление пользователям возможности входа с помощью имеющихся учетных данных удобно для пользователей и переместит многие сложности управления процессом входа в стороннюю сторону.
Создание нового проекта ASP.NET Core
- Выберите шаблон Веб-приложение ASP.NET Core. Нажмите ОК.
- В поле входных данных Тип проверки подлинности выберите Индивидуальные учетные записи.
Применение миграции
- Запустите приложение и щелкните ссылку Регистрация.
- Введите адрес электронной почты и пароль для новой учетной записи, а затем щелкните Зарегистрироваться.
- Следуйте инструкциям по применению миграций.
Переадресация сведений запроса с помощью прокси-сервера или подсистемы балансировки нагрузки
Если приложение развертывается с прокси-сервером или подсистемой балансировки нагрузки, некоторые сведения из исходного запроса можно перенаправить в приложение в заголовках запроса. Эти сведения обычно включают безопасную схему запроса (https), узел и IP-адрес клиента. Приложения не считывают автоматически эти заголовки запроса, чтобы обнаружить и использовать информацию из исходного запроса.
Схема используется для создания ссылок, влияющих на поток аутентификации с помощью внешних поставщиков. Потеря безопасной схемы (https) приводит к тому, что приложение неправильно выполняет перенаправление на небезопасные URL-адреса.
Используйте Промежуточное ПО для пересылаемых заголовков, чтобы предоставить приложению первоначальную информацию о запросах для их обработки.
Дополнительные сведения см. в разделе Настройка ASP.NET Core для работы с прокси-серверами и подсистемами балансировки нагрузки.
Используйте Secret Manager для хранения токенов, назначенных провайдерами входа
Поставщики входа социальных сетей назначают токены идентификатор приложения и секрет приложения в ходе процесса регистрации. Точные имена токенов зависят от поставщика. Эти маркеры представляют учетные данные, которые приложение использует для доступа к API поставщика. Маркеры являются секретами пользователей, которые можно связать с конфигурацией приложения с помощью Менеджера секретов. Секреты пользователя — более безопасная альтернатива хранению маркеров в файле конфигурации, например в appsettings.json.
Внимание
Диспетчер секретов предназначен только для локальной разработки и тестирования. Защищайте промежуточные и производственные секреты при помощи поставщика конфигурации Azure Key Vault, который также можно использовать для локальной разработки и тестирования, если вы предпочитаете не использовать локально Диспетчер секретов.
Рекомендации по хранению маркеров, назначенных каждым поставщиком входа, см. в статье "Безопасное хранение секретов приложений в разработке в ASP.NET Core".
Настройка поставщиков входа
Используйте следующие статьи для настройки поставщиков входа и приложения:
- Инструкции для Facebook
- Инструкции для Twitter
- Инструкции для Google
- Инструкции для Майкрософт
- Инструкции для других поставщиков
Несколько поставщиков проверки подлинности
Если приложению требуется несколько поставщиков, выполните цепочку методов расширения поставщика в AddAuthenticationследующих случаях:
builder.Services.AddAuthentication()
.AddGoogle(options =>
{
// Google configuration options
})
.AddFacebook(options =>
{
// Facebook configuration options
})
.AddMicrosoftAccount(options =>
{
// Microsoft Account configuration options
})
.AddTwitter(options =>
{
// Twitter configuration options
});
Подробные рекомендации по настройке каждого поставщика см. в их соответствующих статьях.
При необходимости задайте пароль
При регистрации с использованием внешнего поставщика входа у вас нет пароля, зарегистрированного в приложении. Это упрощает создание и запоминание пароля для сайта, но также делает вас полностью зависимым от внешнего поставщика входа для доступа к сайту. Если внешний поставщик входа недоступен, вы не сможете войти в приложение.
Чтобы создать пароль и войти, используя электронную почту, заданную при входе с внешними поставщиками:
- Щелкните ссылку Hello < псевдоним электронной почты> в верхнем углу справа, чтобы перейти к представлению Управление:
- Нажмите кнопку Создать.
- Задайте допустимый пароль и вы можете использовать эти учетные данные для входа с помощью адреса электронной почты.
Дополнительная информация:
ASP.NET Core