Подтвердить что ты не робот

API API для создания ключей API

Я заинтересован в создании ключей API для web.api и позволяя клиентам связываться с API с помощью ключей API, а не авторизации web.api.

Я хочу, чтобы несколько клиентов могли общаться с web.api. вместо создания имени пользователя и пароля я могу использовать ключ api и разрешать клиентам общаться с клиентом.

Есть ли такая встроенная функциональность?

если кто-то хочет его реализовать, как бы вы его обошли?

4b9b3361

Ответ 1

Вы можете достичь с помощью HMAC Authentication. В принципе, может быть таблица базы данных, называемая ApiKey (apiKey, secretKey). Каждый клиент имеет каждый Apikey и секретный ключ:

  • ApiKey похож на открытый ключ и будет отправлен через HTTP (аналогично имени пользователя).

  • Секретный ключ не передается по HTTP, используйте этот секретный ключ, чтобы сделать hmac некоторая информация и отправить хешированный вывод на сервер. На стороне сервера, на основе открытого ключа, вы можете получить релевантный секретный ключ и хэш-информацию для сравнения с хэш-выходом.

Я опубликовал подробный ответ по адресу Как защитить веб-API ASP.NET

Вы можете изменить имя пользователя ApiKey и Hashed Password по секретному ключу в своем ответе, чтобы составить карту с вашей идеей.

Ответ 2

Здесь есть интересная статья http://www.asp.net/web-api/overview/working-with-http/http-message-handlers об использовании обработчиков HTTP-сообщений, которые помогут вам достичь того, чего вы хотите.

Там даже пример внедрения ключей API на полпути вниз по странице!