Verwenden von JWT zum Implementieren der Authentifizierung in der Asp.net-Web-API

Ich habe über JWT gelesen.

Aber nach dem, was ich gelesen habe, handelt es sich nicht um einen Authentifizierungsmechanismus, sondern eher um eine wichtige Komponente in einem Authentifizierungsmechanismus.

Ich habe momentan eine Lösung implementiert, die funktioniert, aber es war nur, JWT auszuprobieren und zu sehen, wie es funktioniert. Aber was ich jetzt will, ist, wie man davon Gebrauch machen soll. Nach meiner Erfahrung handelt es sich im Grunde genommen nur um einen Verschlüsselungsmechanismus, mit dem Sie einen eindeutigen verschlüsselten Schlüssel erhalten. Sie können auch Informationen in dieses Token einfügen.

Ich möchte es in Bezug auf eine ASP.NET-Web-API 2 implementieren, die von einer mobilen Anwendung verwendet werden soll.

Also Schritt 1:

app => Server: Login (Benutzer, Passwort)Server => App: Login OK, hier ist dein JWTapp => server: Mein Profil abrufen (sendet JWT mit Anfrage) Der Server entschlüsselt dann JWT und ermittelt die Identität der Anfragen.

Das ist nur mein Verständnis davon. Schau, ich könnte auf dem völlig falschen Weg sein.

Ist das Ideal von JWT so, dass Sie sich nicht bei jeder Anfrage authentifizieren müssen? Ich authentifiziere die Benutzeranmeldeinformationen nur einmal (bei der ersten Anmeldung) und dann, nachdem der Server einfach JWT verwenden kann und nicht die Benutzer pw und user in der DB nachschlagen muss?

Ich möchte nur das JWT verwenden, um zu identifizieren, wer der Benutzer ist. Ich werde dann autorisieren, nachdem ich sie authentifiziert habe. Wie ich weiß, gibt es eine große Verwirrung mit der neuen MVC und Authentifizierung und Autorisierung.

Also worauf meine Frage hinausläuft.

Wie kann ich einen Authentifizierungsmechanismus mithilfe von JWT sicher und effektiv implementieren? Ich möchte nicht einfach etwas ausspucken, das zu funktionieren scheint und keine Ahnung von den Auswirkungen auf die Sicherheit hat. Ich bin sicher, dass es eine Quelle gibt, in der möglicherweise ein sicherer Mechanismus entwickelt wurde, der meinen Anforderungen entspricht.

Meine Anforderungen sind:

Müssen Sie db für Benutzeranmeldeinformationen nur einmal pro Sitzung überprüfen? Durch die Verwendung von bcrypt werden viele Ressourcen zum Vergleichen von Passwörtern benötigt.Muss in der Lage sein, den Benutzer anhand seiner Anfrage zu identifizieren. (Dh wer sie sind, userId wird ausreichen) und vorzugsweise auch ohne Zugriff auf die DBSollte hinsichtlich der Ressourcen auf der Serverseite, die die Anforderung verarbeiten, so wenig Aufwand wie möglich verursachen.Wenn ein Eindringling zuvor eine Geräteanforderung kopieren musste, sollte er nicht auf die Daten des tatsächlichen Benutzers zugreifen können. (offensichtlich)

Vielen Dank

Antworten auf die Frage(2)

Ihre Antwort auf die Frage