Я прочитал несколько отличных руководств по использованию веб-токенов JSON с ASP.NET Core для аутентификации запросов к API REST, однако не могу найти документацию о том, поддерживается ли более общая веб-подпись JSON (rfc7515) для использования с REST Определения API для защиты содержимого запросов.
Например, следующий контроллер позволяет простой запрос POST, в результате чего сериализованный объект JSON CreateRequest передается в API и обрабатывается:
[Produces("application/json")]
[Route("api/WebService")]
public class WebServiceController
{
[HttpPost("CreateRequest")]
public override IActionResult Create([FromBody] CreateRequest request)
{
if (request == null)
{
return BadRequest();
}
else
{
// Do stuff with CreateRequest object ...
return new OkResult();
}
}
}
Если бы я хотел защитить объект CreateRequest от несанкционированного вмешательства, JSON Web Signature кажется хорошим способом сделать это, но как мне заставить обработчик запросов принять объект, когда он закодирован как BASE64 и подписан, и желательно только если подпись подтверждает?
Я знаю, что защита целостности содержимого может быть решена другими способами, например, с помощью шифрования соединения TLS, но на данный момент предположим, что запрос должен быть выполнен через простой HTTP с полным просмотром содержимого. По этой причине аналогичный стандарт JSON Web Encryption также не подходит для моего варианта использования.