tutorial - web api rest c#
API web que crea claves de API (2)
Hay un artículo interesante aquí http://www.asp.net/web-api/overview/working-with-http/http-message-handlers acerca del uso de los manejadores de mensajes HTTP que lo ayudarán a lograr lo que desea.
¡Incluso hay un ejemplo de implementación de claves de API en la mitad de la página!
Estoy interesado en crear claves API para web.api y permitirles a los clientes comunicarse con API usando las claves API en lugar de la autorización que proporciona web.api.
Quiero que varios clientes puedan comunicarse con la web.api. en lugar de crear un nombre de usuario y una contraseña, ¿puedo usar una clave api y permitir que los clientes se comuniquen con el cliente?
¿Hay tal funcionalidad incorporada?
si uno quiere implementarlo, ¿cómo lo solucionaría?
Puede lograrlo utilizando la Autenticación HMAC . Básicamente, puede haber una tabla de base de datos llamada ApiKey (apiKey, secretKey) . Cada cliente tiene cada Apikey y clave secreta:
ApiKey es como una clave pública y se enviará a través de HTTP (similar al nombre de usuario).
La clave secreta no se envía a través de HTTP, use esta clave secreta para hacer algo de información y enviar salida hash al servidor. Desde el lado del servidor, basado en la clave pública, puede obtener la clave secreta relevante y la información hash para comparar con la salida hash.
He publicado la respuesta detallada en: Cómo asegurar una API web ASP.NET
Puedes cambiar el nombre de usuario por clave y contraseña hash por clave secreta en mi respuesta para mapear con tu idea.