2017-01-13 1 views
1

Was ist der beste Weg, um eine WEB-API zu sichern, wenn Sie mehrere verschiedene Clients verwenden? Jeder Client sollte seinen eigenen API-Schlüssel zum Herstellen einer Verbindung haben. Jetzt habe ich verschiedene Dinge gelesen, aber ich habe noch einige Fragen.Beste Möglichkeit, ASP.NET WEB API2 zu sichern, wenn mehrere Clients es verwenden

Ich habe diese gefunden: http://bitoftech.net/2014/06/01/token-based-authentication-asp-net-web-api-2-owin-asp-net-identity/#comments aber ist es ausreichend?

So basicly: 1. Client eine Verbindung mit bestimmten Benutzername/Passwort 2. Client-Token zurück einen Träger erhält 3. Client verwendet dieses Token in jedem Post an die api, bis der Zeitstempel über

ich auch habe darüber gelesen, jedem Client, den er benutzen kann, einen geheimen API-Schlüssel zu geben: http://bitoftech.net/2014/12/15/secure-asp-net-web-api-using-api-key-authentication-hmac-authentication/

Was ist der beste Ansatz?

Antwort

0

Ja, OAuth2 ist ein hübsches Standardprotokoll für die Sicherung von Ressourcen und ich würde es empfehlen, anstatt benutzerdefinierte Implementierungen zu rollen. Die Idee ist, dass jeder Client ein client_id/client_secret-Paar (nicht Benutzername, Passwort) erhält und diese verwendet, um Bearer-Tokens von einem OAuth-Aussteller zu erhalten. Dann können diese Token verwendet werden, um auf die geschützten Ressourcen der Web-API zuzugreifen.

+0

Also im Grunde ich zur Verfügung stellen müssen eine client_id und client_secret pro Klient. Sollte ich GUID für beide verwenden? – Kaizer

+0

Guids haben Struktur .... –

+0

Ok dann ist der Token-Ansatz der eine zu gehen. danke – Kaizer

0

Der Token-basierte Ansatz, der in OAuth2 und OpenIdentity verwendet wird, ist sehr weit verbreitet und ermöglicht eine Vielzahl von Szenarien (Web Apps, Mobile, Desktop-Apps, Microservices).

Es gibt einige gute Bibliotheken für die Bereitstellung und den Verzehr von Token. Sie sollten gegenüber der Implementierung Ihrer eigenen Protokolle bevorzugt werden. Ein späterer Ansatz ist fehleranfälliger und schwieriger von anderen Clients zu konsumieren (wenn es in der Zukunft notwendig ist). Ich empfehle einen Blick in den IdentityServer (es ist OpenSource). Eine Einführung kann here gefunden werden.

Generell empfehle ich, tiefer in die Blogs über Token-basierte Authentifizierung - es ist ein großes Thema, aber es ist es wert.

+0

Ok, dann ist der Token-Ansatz der richtige Weg. danke – Kaizer

Verwandte Themen