API-интерфейс ASP.NET MVC Framework в стиле REST
-
20-08-2019 - |
Вопрос
Я разработал REST-подобный XML API, который хочу предоставить для использования сторонними веб-приложениями.Сейчас я пытаюсь реализовать модель безопасности для обмена данными между сторонним приложением и REST-подобным XML API.Я был бы признателен за предложения по подходящей модели асимметричного шифрования.
Решение
Если вам нужно шифрование, почему бы просто не использовать SSL для шифрования соединения, а не для шифрования данных ответа?Если 128-битного SSL недостаточно, вам необходимо либо интегрировать существующую инфраструктуру PKI с использованием внешнего доверенного центра, либо самостоятельно разработать инфраструктуру распределения/совместного использования ключей и выдать свой открытый ключ и подходящий закрытый ключ/идентификатор для ваши потребители API.Выберите одного из поставщиков криптографии в System.Security.Cryptography, который поддерживает обмен открытыми и закрытыми ключами.
Другие советы
HTTPS работает с шифрованием с асимметричным ключом.Это хорошо известный протокол, который легко реализовать.Он защищает от вторжения 3p в ваше общение.
Все, что вам нужно реализовать «ниже», — это аутентификация, чтобы убедиться, что ваш пользователь вам известен.
Обычно нужно предоставлять пользователям ключ, который необходимо отправлять с каждым запросом.
Наиболее распространенным является реализация протокола OAuth.Это то, что используется провайдерами OpenSocial, которые проверяют авторизацию с помощью двухстороннего и/или трехстороннего oAuth.
Просто выполните поиск в Google, и вы найдете множество реализаций.