it-swarm.com.de

Der beste Weg, um ASP.NET WEB API2 dort zu sichern, wo es von mehreren Clients verwendet wird

Was ist der beste Weg, um eine WEB-API zu sichern, wenn Sie mehrere verschiedene Clients verwenden möchten? Jeder Client sollte einen eigenen API-Schlüssel haben, mit dem eine Verbindung hergestellt werden kann. Jetzt habe ich verschiedene Dinge gelesen, aber ich habe noch einige Fragen.

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

Grundsätzlich gilt: 1. Der Client stellt eine Verbindung mit dem angegebenen Benutzernamen/Passwort her. 2. Der Client erhält einen Inhaber-Token zurück. 3. Der Client verwendet diesen Token in jedem Beitrag an der API, bis der Zeitstempel abgelaufen ist

Ich habe auch gelesen, wie man jedem Client einen geheimen API-Schlüssel gibt, den er verwenden kann: http://bitoftech.net/2014/12/15/secure-asp-net-web-api-using-api-key- Authentifizierung-hmac-Authentifizierung/

Was ist der beste Ansatz?

5
Kaizer

Mit der Token-basierten Authentifizierung sind Sie auf dem richtigen Weg. Hier ist ein Link, der die Implementierungsdetails zeigt-

Token-basierte Authentifizierung in der Web-API ohne Benutzeroberfläche

Ich denke, Sie können den Kanal auch mit SSL-

http://www.c-sharpcorner.com/UploadFile/55d2ea/creating-and-using-C-Sharp-web-application-over-https-ssl/

4
Souvik Ghosh

Der in OAuth2 und OpenIdentity verwendete tokenbasierte Ansatz ist sehr weit verbreitet und ermöglicht eine Vielzahl von Szenarien (Web Apps, Mobile, Deskop Apps, Microservices).

Es gibt einige gute Bibliotheken, um Token bereitzustellen und zu konsumieren. Sie sollten der Implementierung Ihrer eigenen Protokolle vorgezogen werden. Ein späterer Ansatz ist fehleranfälliger und für andere Kunden schwieriger zu nutzen (falls dies in Zukunft erforderlich sein sollte). Ich empfehle einen Blick in den IdentityServer zu werfen (es ist OpenSource). Eine Einführung finden Sie hier .

Im Allgemeinen empfehle ich, sich eingehender mit den Blogs über tokenbasierte Authentifizierung zu befassen - es ist ein großes Thema, aber es lohnt sich.

1
Ralf Bönning

Ja, OAuth2 ist ein ziemlich standardmäßiges Protokoll zum Sichern von Ressourcen, und ich würde es empfehlen, anstatt benutzerdefinierte Implementierungen fortzusetzen. Die Idee ist, dass jeder Client ein client_id/client_secret-Paar (nicht Benutzername, Passwort) erhält und diese verwendet, um Inhaber-Token von einem OAuth-Aussteller zu erhalten. Diese Token können dann verwendet werden, um auf die geschützten Ressourcen der Web-API zuzugreifen.

0
Darin Dimitrov