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