Vraag Web API API-sleutels maken


Ik ben geïnteresseerd in het maken van API-sleutels voor web.api en laat klanten communiceren met API met behulp van de API-sleutels in plaats van de autorisatie die web.api biedt.

Ik wil dat meerdere klanten kunnen communiceren met het web.api. in plaats van een gebruikersnaam en wachtwoord te maken, kan ik een API-sleutel gebruiken en klanten in staat stellen met de client te communiceren.

Is er zo'n ingebouwde functionaliteit?

als je het wilt implementeren, hoe zou je het dan omzeilen?


52
2017-08-06 14:31


oorsprong


antwoorden:


Je kunt bereiken door te gebruiken HMAC-verificatie. In principe kan er een databasetabel worden genoemd ApiKey (apiKey, secretKey). Elke klant heeft elke Apikey en geheime sleutel:

  1. ApiKey is als een openbare sleutel en wordt via HTTP verzonden (vergelijkbaar met gebruikersnaam).

  2. Geheime sleutel wordt niet over HTTP verzonden, gebruikt deze geheime sleutel om bepaalde informatie te doen en verzonden hash-uitvoer naar de server. Van serverzijde, gebaseerd op de publieke sleutel, kunt u de relevante geheime sleutel en hash-informatie verkrijgen om te vergelijken met hash-uitvoer.

Ik heb het gedetailleerde antwoord geplaatst op: Hoe een ASP.NET Web API te beveiligen

U kunt de gebruikersnaam van ApiKey en Hashed Password by geheime sleutel op mijn antwoord wijzigen om in kaart te brengen met uw idee.


60
2017-08-06 15:34