ASP.NET Web API авторизация и аутентификация

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

Это мои требования - API будет использоваться небольшим количеством сторонних разработчиков для веб-сайтов / мобильных приложений и т. Д. - Разработчикам, которые хотят использовать этот API, должен быть предоставлен ключ для доступа к API (Авторизация) - Пользователи (Посетители / потребители) должны войти в сторонние приложения, чтобы увидеть их персональную информацию. - API будет использовать базу данных членства ASP для управления / аутентификации пользователей.

Я знаю, что можно использовать базовую аутентификацию http для аутентификации пользователей, но как мне реализовать часть API авторизации?

Является ли OAuth 2.0 решением?

2 ответа

Решение

Есть очень хорошая статья, описывающая аутентификацию / авторизацию с помощью токена / ключа:

В нем также описаны некоторые другие полезные практики, касающиеся безопасности веб-API ASP.NET.

Я бы также предложил использовать библиотеку https://github.com/thinktecture/Thinktecture.IdentityModel.40, которая может поддерживать следующее:

База

  • Base64Url кодировка
  • Эпоха дата преобразование времени
  • Генерация случайных чисел
  • Постоянное время сравнение строк

требования

  • Анонимные претензии принципала
  • Аутентификация мгновенного требования
  • Авторизация на основе утверждений

постоянная

  • Полезные константы при работе с алгоритмами, форматами даты и времени, JWT, SWT, WS-Security и WS-Trust

Методы расширения

  • XML (в и из XmlReader, XmlDocument, XDocument)
  • WS-Trust RSTR
  • Преобразование токена безопасности
  • Сертификаты X.509
Другие вопросы по тегам