Ich möchte verstehen, was tokenbasierte Authentifizierung bedeutet. Ich habe das Internet durchsucht, konnte aber nichts Verständliches finden.
Antworten
Zu viele Anzeigen?Ich denke, es ist gut erklärt ici -- und zitiert nur die wichtigsten Sätze des langen Artikels:
Das allgemeine Konzept hinter einer tokenbasierten Authentifizierungssystem ist einfach. Erlauben Sie den Benutzern die Eingabe ihres Benutzernamen und Passwort einzugeben, um um ein Token zu erhalten, das es ihnen erlaubt eine bestimmte Ressource abzurufen - ohne ohne ihren Benutzernamen und ihr Passwort zu benutzen. Sobald sie ihr Token erhalten haben, kann der Benutzer das Token anbieten - das Zugang zu einer bestimmten Ressource bietet für einen bestimmten Zeitraum - der Gegenstelle Standort anbieten.
Mit anderen Worten: Fügen Sie eine indirekte Ebene für die Authentifizierung hinzu - anstatt sich für jede geschützte Ressource mit Benutzernamen und Kennwort authentifizieren zu müssen, authentifiziert sich der Benutzer auf diese Weise einmal (innerhalb einer Sitzung von begrenzter Dauer), erhält im Gegenzug ein zeitlich begrenztes Token und verwendet dieses Token für die weitere Authentifizierung während der Sitzung.
Es gibt viele Vorteile, z. B. könnte der Nutzer den Token, sobald er ihn erhalten hat, an ein anderes automatisiertes System weitergeben, dem er für eine begrenzte Zeit und eine begrenzte Anzahl von Ressourcen vertraut, das aber pas bereit sind, ihren Benutzernamen und ihr Kennwort vertrauensvoll zu verwenden (d. h. für jede Ressource, zu der sie Zugang haben, und zwar für immer oder zumindest bis sie ihr Kennwort ändern).
Wenn noch etwas unklar ist, bearbeiten Sie bitte Ihre Frage, um klarzustellen, WAS Ihnen nicht 100%ig klar ist, und ich bin sicher, wir können Ihnen weiterhelfen.
Desde Auth0.com
Die Token-basierte Authentifizierung beruht auf einem signierten Token, das an bei jeder Anfrage an den Server gesendet wird.
Welche Vorteile bietet ein tokenbasierter Ansatz?
Domänenübergreifend / CORS: Cookies und CORS lassen sich nicht gut über verschiedene Domänen hinweg einsetzen. Ein Token-basierter Ansatz erlaubt Ihnen AJAX-Aufrufe Aufrufe an jeden Server in jeder Domäne, da Sie einen HTTP-Header verwenden um die Benutzerinformationen zu übermitteln.
Zustandslos (auch bekannt als serverseitige Skalierbarkeit): Es besteht keine Notwendigkeit, einen Sitzungsspeicher zu führen, da das Token eine in sich geschlossene Einheit ist, die alle Benutzerinformationen enthält. Der Rest des Status befindet sich in Cookies oder im lokalen Speicher auf der Client-Seite.
CDN: können Sie alle Assets Ihrer Anwendung von einem CDN bereitstellen (z. B. Javascript, HTML, Bilder usw.), und Ihre Serverseite ist nur die API.
Entkopplung: Sie sind nicht an ein bestimmtes Authentifizierungsschema gebunden. Das Token kann überall generiert werden, daher kann Ihre API von überall aus mit einer einzigen Methode zur Authentifizierung dieser Aufrufe.
Mobil einsetzbar: Wenn Sie auf einer nativen Plattform (iOS, Android, Windows 8 usw.) arbeiten, sind Cookies nicht ideal, wenn Sie einen Ein tokenbasierter Ansatz vereinfacht dies erheblich.
CSRF: Da Sie sich nicht auf Cookies verlassen, brauchen Sie sich nicht gegen seitenübergreifende Anfragen zu schützen (z. B. wäre es nicht möglich eine POST-Anfrage zu stellen und das vorhandene Authentifizierungs-Cookie wieder zu verwenden, da es keins gibt).
Leistung: Wir präsentieren hier keine harten Leistungsvergleiche, aber ein Netzwerk-Roundtrip (z.B. das Auffinden einer Sitzung in der Datenbank) wird wahrscheinlich mehr Zeit in Anspruch nehmen als die Berechnung eines HMACSHA256 zur ein Token zu validieren und seinen Inhalt zu analysieren.
A token
ist eine Dateneinheit, die nur Server X
erstellt haben könnte, und die genügend Daten enthält, um einen bestimmten Benutzer zu identifizieren.
Sie können Ihre Anmeldedaten angeben und fragen Server X
für eine token
; und dann können Sie Ihre token
und fragen Server X
um eine benutzerspezifische Aktion durchzuführen.
Token
s werden unter Verwendung verschiedener Kombinationen verschiedener Techniken aus dem Bereich der Kryptographie sowie mit Beiträgen aus dem weiteren Bereich der Sicherheitsforschung erstellt. Wenn Sie sich entschließen, Ihre eigene Software zu erstellen token
System, muss man wirklich clever sein.
Ein Token ist ein vom Server erstellter Datensatz, der Informationen zur Identifizierung eines bestimmten Benutzers und zur Gültigkeit des Tokens enthält. Der Token enthält die Informationen des Benutzers sowie einen speziellen Token-Code, den der Benutzer bei jeder Methode, die eine Authentifizierung unterstützt, an den Server weitergeben kann, anstatt direkt einen Benutzernamen und ein Passwort zu übergeben.
Bei der Token-basierten Authentifizierung handelt es sich um eine Sicherheitstechnik, bei der Benutzer, die versuchen, sich bei einem Server, einem Netzwerk oder einem anderen sicheren System anzumelden, mithilfe eines vom Server bereitgestellten Sicherheitstokens authentifiziert werden.
Eine Authentifizierung ist erfolgreich, wenn ein Benutzer gegenüber einem Server nachweisen kann, dass er oder sie ein gültiger Benutzer ist, indem er oder sie ein Sicherheits-Token übergibt. Der Dienst validiert das Sicherheitstoken und bearbeitet die Benutzeranfrage.
Nachdem das Token vom Dienst validiert wurde, wird es verwendet, um einen Sicherheitskontext für den Client zu erstellen, so dass der Dienst Autorisierungsentscheidungen treffen oder Aktivitäten für nachfolgende Benutzeranfragen überprüfen kann.
Quelle ( Web-Archiv )
Token-basiert (Sicherheit / Authentifizierung)
Das bedeutet, dass wir, um zu beweisen, dass wir Zugang haben, zuerst das Token erhalten müssen. In einem realen Szenario könnte der Token eine Zugangskarte für das Gebäude oder der Schlüssel für das Schloss Ihres Hauses sein. Um eine Schlüsselkarte für Ihr Büro oder den Schlüssel zu Ihrem Haus zu erhalten, müssen Sie zunächst nachweisen, wer Sie sind und dass Sie tatsächlich Zugang zu diesem Token haben. Das kann etwas so Einfaches sein wie das Vorzeigen Ihres Ausweises oder die Angabe eines geheimen Passworts. Stellen Sie sich also vor, ich brauche Zugang zu meinem Büro. Ich gehe zum Sicherheitsbüro, zeige meinen Ausweis, und sie geben mir dieses Token, mit dem ich das Gebäude betreten kann. Jetzt kann ich im Gebäude tun und lassen, was ich will, solange ich meinen Token dabei habe.
Was ist der Vorteil von tokenbasierter Sicherheit?
Wenn wir uns an die unsichere API zurückerinnern, mussten wir in diesem Fall für alles, was wir tun wollten, unser Passwort 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 schlecht, denn das würde bedeuten, dass jeder in unserem Büro unser Passwort nehmen und sich für uns ausgeben könnte, und das ist ziemlich schlecht. Stattdessen holen wir das Token ab, natürlich zusammen mit dem Passwort, aber wir holen es von einer Person ab. Und dann können wir diesen Token überall innerhalb des Gebäudes benutzen, wo wir wollen. Wenn wir den Token verlieren, haben wir natürlich das gleiche Problem, wie wenn jemand anderes unser Passwort kennt, aber das führt uns zu der Frage, wie wir sicherstellen können, dass wir den Zugang widerrufen können, wenn wir den Token verlieren, und vielleicht sollte der Token nicht länger als 24 Stunden gültig sein, so dass wir am nächsten Tag, wenn wir ins Büro kommen, wieder unseren Ausweis zeigen müssen. Aber es gibt immer noch nur eine Person, der wir den Ausweis zeigen, und das ist der Wachmann, der dort sitzt, wo wir die Token abholen.
- See previous answers
- Weitere Antworten anzeigen