it-swarm.com.de

Was ist tokenbasierte Authentifizierung?

Ich möchte verstehen, was tokenbasierte Authentifizierung bedeutet. Ich habe im Internet gesucht, aber nichts Verständliches gefunden.

471
csharpbaby

Ich denke, es ist gut erklärt hier - zitiert nur die Schlüsselsätze des langen Artikels:

Das allgemeine Konzept eines tokenbasierten Authentifizierungssystems ist einfach. Ermöglichen Sie Benutzern, ihren Benutzernamen und ihr Kennwort einzugeben, um ein Token zu erhalten, mit dem sie eine bestimmte Ressource abrufen können - ohne ihren Benutzernamen und ihr Kennwort zu verwenden. Sobald das Token abgerufen wurde, kann der Benutzer dem Remote-Standort das Token anbieten, das für einen bestimmten Zeitraum Zugriff auf eine bestimmte Ressource bietet.

Mit anderen Worten: Fügen Sie eine Indirektionsebene für die Authentifizierung hinzu. Anstatt sich mit Benutzername und Kennwort für jede geschützte Ressource authentifizieren zu müssen, erhält der Benutzer auf diese Weise einmal (innerhalb einer Sitzung von begrenzter Dauer) ein zeitlich begrenztes Token und verwendet dieses Token für die weitere Authentifizierung während der Sitzung.

Es gibt viele Vorteile - der Benutzer könnte das Token, sobald er es erhalten hat, an ein anderes automatisiertes System weitergeben, dem er für eine begrenzte Zeit und einen begrenzten Satz von Ressourcen vertrauen möchte, würde aber nicht bereit sein, ihrem Benutzernamen und Passwort zu vertrauen (dh mit jeder Ressource, auf die sie zugreifen dürfen, für immer oder zumindest bis sie ihr Passwort ändern).

Wenn noch etwas unklar ist, bearbeiten Sie bitte Ihre Frage, um zu klären, WAS für Sie nicht 100% klar ist, und ich bin sicher, wir können Ihnen weiterhelfen.

506
Alex Martelli

Von Auth0.com

Token-basierte Authentifizierung basiert auf einem signierten Token, das bei jeder Anforderung an den Server gesendet wird.

Was sind die Vorteile eines tokenbasierten Ansatzes?

  • Domänenübergreifend/CORS: Cookies + CORS funktionieren nicht in allen Domänen. Mit einem tokenbasierten Ansatz können Sie AJAX Aufrufe an einen beliebigen Server in einer beliebigen Domäne tätigen, da Sie zur Übertragung der Benutzerinformationen einen HTTP-Header verwenden.

  • Stateless (auch als serverseitige Skalierbarkeit bezeichnet): Es ist nicht erforderlich, einen Sitzungsspeicher zu führen. Das Token ist eine eigenständige Entität, die alle Benutzerinformationen übermittelt . Der Rest des Staates lebt in Cookies oder lokalem Speicher auf der Client-Seite.

  • CDN: Sie können alle Elemente Ihrer App über ein CDN (z. B. Javascript, HTML, Bilder usw.) bereitstellen die API.

  • Entkopplung: Sie sind an kein bestimmtes Authentifizierungsschema gebunden. Das Token kann an einem beliebigen Ort generiert werden. Daher kann Ihre API mit einer einzigen Methode zur Authentifizierung dieser Aufrufe von einem beliebigen Ort aus aufgerufen werden.

  • Bereit für Mobilgeräte: Wenn Sie anfangen, auf einer nativen Plattform (iOS, Android, Windows 8 usw.) zu arbeiten, sind Cookies nicht ideal, wenn Sie ein tokenbasiertes Produkt verwenden Ansatz vereinfacht dies sehr.

  • CSRF: Da Sie sich nicht auf Cookies verlassen, müssen Sie sich nicht vor Cross-Site-Anfragen schützen (z. B. wäre es nicht möglich, Ihre Site zu sibgen , generieren Sie eine POST -Anforderung und verwenden Sie das vorhandene Authentifizierungscookie erneut, da es keine gibt.

  • Leistung: Wir präsentieren hier keine harten Benchmarks, aber ein Netzwerk-Roundtrip (z. B. das Finden einer Sitzung in einer Datenbank) wird wahrscheinlich mehr Zeit in Anspruch nehmen als das Berechnen ein HMACSHA256, um ein Token zu validieren und dessen Inhalt zu analysieren.

171
Asik

Ein token ist ein Datenelement, das möglicherweise nur Server X erstellt haben könnte und das genügend Daten enthält, um einen bestimmten Benutzer zu identifizieren.

Sie können Ihre Anmeldedaten angeben und Server X nach token fragen. und dann könnten Sie Ihr token präsentieren und Server X bitten, eine benutzerspezifische Aktion auszuführen.

Tokens werden mit verschiedenen Kombinationen verschiedener Techniken aus dem Bereich der Kryptographie sowie mit Beiträgen aus dem weiteren Bereich der Sicherheitsforschung erstellt. Wenn Sie sich dazu entschließen, Ihr eigenes token System zu erstellen, sollten Sie am besten wirklich schlau sein.

91
yfeldblum

Ein Token ist ein vom Server erstelltes Datenelement, das Informationen zur Identifizierung eines bestimmten Benutzers und zur Gültigkeit des Tokens enthält. Das Token enthält die Informationen des Benutzers sowie einen speziellen Token-Code, den der Benutzer mit jeder Methode, die die Authentifizierung unterstützt, an den Server übergeben kann, anstatt einen Benutzernamen und ein Kennwort direkt zu übergeben.

Token-basierte Authentifizierung ist eine Sicherheitstechnik, mit der Benutzer authentifiziert werden, die versuchen, sich mit einem vom Server bereitgestellten Sicherheitstoken bei einem Server, einem Netzwerk oder einem anderen sicheren System anzumelden.

Eine Authentifizierung ist erfolgreich, wenn ein Benutzer einem Server beweisen kann, dass er ein gültiger Benutzer ist, indem er ein Sicherheitstoken übergibt. Der Dienst validiert das Sicherheitstoken und verarbeitet die Benutzeranforderung.

Nachdem das Token vom Dienst validiert wurde, wird es zum Einrichten des Sicherheitskontexts für den Client verwendet, sodass der Dienst Autorisierungsentscheidungen treffen oder Aktivitäten für aufeinanderfolgende Benutzeranforderungen überwachen kann.

besuchen Sie die Quelle

40
DeepakK

Token-basiert (Sicherheit/Authentifizierung)

bedeutet, dass wir zum Nachweis des Zugriffs zuerst den Token erhalten müssen. In einem realen Szenario könnte der Token eine Zugangskarte zum Gebäude sein, es könnte der Schlüssel zum Schloss Ihres Hauses sein. Damit Sie eine Schlüsselkarte für Ihr Büro oder den Schlüssel für Ihr Zuhause abrufen können, müssen Sie zunächst nachweisen, wer Sie sind und dass Sie tatsächlich Zugang zu diesem Token haben. Es kann so einfach sein, dass Sie jemandem Ihren Ausweis zeigen oder ihm ein geheimes Passwort geben. Stellen Sie sich vor, ich brauche Zugang zu meinem Büro. Ich gehe runter zum Sicherheitsbüro, ich zeige ihnen meinen Ausweis und sie geben mir diesen Token, der mich in das Gebäude lässt. Jetzt habe ich uneingeschränkten Zugriff, um alles zu tun, was ich will, solange ich mein Token bei mir habe.

Was ist der Vorteil von tokenbasierter Sicherheit?

Wenn wir an die unsichere API zurückdenken, mussten wir in diesem Fall für alles, was wir tun wollten, unser Kennwort angeben.

Stellen Sie sich vor dass wir jedes Mal, wenn wir eine Tür in unserem Büro betreten, jedem, der neben der Tür sitzt, unser Passwort geben müssen. Das wäre ziemlich schlimm, denn das bedeutet, dass jeder in unserem Büro unser Passwort nehmen und sich als wir ausgeben könnte, und das ist ziemlich schlimm. Stattdessen rufen wir das Token natürlich zusammen mit dem Passwort ab, aber wir rufen es von einer Person ab. Und dann können wir dieses Token überall im Gebäude verwenden. Wenn wir das Token verlieren, haben wir natürlich das gleiche Problem wie wenn jemand anderes unser Passwort kennt, aber das führt uns zu Dingen wie: Wie stellen wir sicher, dass wir den Zugriff und möglicherweise das Token widerrufen können, wenn wir das Token verlieren Sollten wir nicht länger als 24 Stunden leben, müssen wir am nächsten Tag, an dem wir ins Büro kommen, unseren Ausweis erneut vorzeigen. Es gibt jedoch nur eine Person, der wir den Ausweis zeigen, und das ist der Wachmann, der da sitzt, wo wir die Token abholen.

21
Ahmer Ali Ahsan

Die Frage ist alt und die Technologie hat Fortschritte gemacht, hier ist der aktuelle Stand:

JSON Web Token (JWT) ist ein offener JSON-Standard (RFC 7519) für die Weitergabe von Ansprüchen zwischen Parteien in einer Webanwendungsumgebung. Die Token sind kompakt, URL-sicher und können insbesondere im SSO-Kontext (Single Sign-On) von Webbrowsern verwendet werden.

https://en.wikipedia.org/wiki/JSON_Web_Token

14
Ray Hulha

Es ist nur ein Hash, der dem Benutzer in einer Datenbank oder auf eine andere Weise zugeordnet ist. Dieses Token kann zur Authentifizierung und anschließenden Autorisierung von anwenderzugriffsbezogenen Inhalten der Anwendung verwendet werden. Zum Abrufen dieses Tokens auf der Clientseite ist eine Anmeldung erforderlich. Nach der erstmaligen Anmeldung müssen Sie das abgerufene Token und keine anderen Daten wie Sitzung, Sitzungs-ID speichern, da hier alles Token ist, um auf andere Ressourcen der Anwendung zuzugreifen.

Token wird verwendet, um die Authentizität des Benutzers sicherzustellen.

3
Hardik Patel

Der derzeit am meisten bevorzugte Ansatz zum Sichern der Web-API-Ressourcen ist die Authentifizierung der Benutzer im Web-API-Server mithilfe des signierten Tokens (das genügend Informationen enthält, um einen bestimmten Benutzer zu identifizieren), der vom Client mit jedem und an den Server gesendet werden muss jede Anfrage. Dies wird als Token-Based Authentication-Ansatz bezeichnet.

Die Token-basierte Authentifizierung funktioniert wie folgt:

Ein Benutzer gibt den Namen und das Passwort in den Client ein (Client bedeutet den Browser oder mobile Geräte usw.).

Der Client sendet dann diese Anmeldeinformationen (d. H. Benutzername und Kennwort) an den Autorisierungsserver.

Der Authorization Server authentifiziert dann die Client-Anmeldeinformationen (d. H. Benutzername und Kennwort) und generiert dann ein Zugriffstoken und gibt es zurück. Dieses Zugriffstoken enthält genügend Informationen zur Identifizierung eines Benutzers und die Ablaufzeit des Tokens.

Die Clientanwendung fügt dann das Zugriffstoken in den Autorisierungsheader der HTTP-Anforderung ein, um auf die eingeschränkten Ressourcen vom Ressourcenserver aus zuzugreifen, bis das Token abgelaufen ist.

Der folgende Artikel zeigt Schritt für Schritt, wie Sie die Token-basierte Authentifizierung in der WEB-API implementieren.

https://dotnettutorials.net/lesson/token-based-authentication-web-api/

1
Pranaya Rout

Wenn Sie sich für eine neue Website registrieren, erhalten Sie häufig eine E-Mail zur Aktivierung Ihres Kontos. Diese E-Mail enthält normalerweise einen Link, auf den Sie klicken können. Ein Teil dieses Links enthält ein Token. Der Server kennt dieses Token und kann es Ihrem Konto zuordnen. Dem Token ist normalerweise ein Ablaufdatum zugeordnet, sodass Sie möglicherweise nur eine Stunde Zeit haben, um auf den Link zu klicken und Ihr Konto zu aktivieren. Mit Cookies oder Sitzungsvariablen wäre dies nicht möglich, da nicht bekannt ist, auf welchem ​​Gerät oder in welchem ​​Browser der Kunde E-Mails abruft.

0
user3094826