Bearer Tokens sind eine viel einfachere Möglichkeit, API-Anfragen zu stellen, da sie keine kryptografische Signatur jeder Anfrage erfordern. Der Nachteil besteht darin, dass alle API-Anfragen über eine HTTPS-Verbindung gestellt werden müssen, da die Anfrage ein Klartext-Token enthält, das von jedem verwendet werden könnte, wenn es abgefangen würde.
Was ist Inhaberauthentifizierung?
Die Bearer-Authentifizierung (auch Token-Authentifizierung genannt) ist ein HTTP-Authentifizierungsschema, das Sicherheitstoken, sogenannte Bearer Token, beinhaltet. Der Name „Bearer-Authentifizierung“ kann als „dem Bearer dieses Tokens Zugriff gewähren“ verstanden werden. Das Bearer Token ist eine kryptische Zeichenfolge, die normalerweise vom Server als Antwort auf eine Anmeldeanforderung generiert wird. Der Client muss dieses Token im Autorisierungsheader senden, wenn er Anforderungen an geschützte Ressourcen stellt:
Autorisierung: Bearer
Das Bearer-Authentifizierungsschema wurde ursprünglich als Teil von OAuth 2.0 in RFC 6750 erstellt, wird aber manchmal auch allein verwendet. Ähnlich wie die Basisauthentifizierung sollte die Bearer-Authentifizierung nur über HTTPS (SSL) verwendet werden.
Was ist ein Bearer Token?
Bearer Token sind der vorherrschende Typ von Zugriffstoken, der mit OAuth 2.0 verwendet wird. Ein Bearer Token ist eine undurchsichtige Zeichenfolge, die für Clients, die ihn verwenden, keine Bedeutung haben soll. Einige Server geben Token aus, die eine kurze Zeichenfolge aus hexadezimalen Zeichen sind, während andere strukturierte Token wie JSON Web Token verwenden können.
Wozu dient ein Inhabertoken?
Bearer Token Ein Sicherheitstoken mit der Eigenschaft, dass jede Partei, die im Besitz des Tokens ist (ein „Besitzer“), den Token auf dieselbe Weise verwenden kann wie jede andere Partei, die ihn besitzt. Bei der Verwendung eines Bearer Tokens muss der Inhaber nicht nachweisen, dass er kryptografisches Schlüsselmaterial besitzt (Besitznachweis).
Zugriffstoken werden bei der tokenbasierten Authentifizierung verwendet, um einer Anwendung den Zugriff auf eine API zu ermöglichen. Eine Kalenderanwendung benötigt beispielsweise Zugriff auf eine Kalender-API in der Cloud, damit sie die geplanten Ereignisse des Benutzers lesen und neue Ereignisse erstellen kann.
Sobald eine Anwendung ein Zugriffstoken erhalten hat, wird sie dieses Token als Anmeldeinformation bei API-Anfragen einschließen. Dazu sollte sie das Zugriffstoken als Bearer-Anmeldeinformation in einem HTTP-Autorisierungsheader an die API übermitteln.
Wie funktioniert ein Inhabertoken?
Das Bearer Token wird vom Authentifizierungsserver für Sie erstellt. Wenn ein Benutzer Ihre Anwendung (Client) authentifiziert, generiert der Authentifizierungsserver ein Token für Sie. Bearer Token sind der vorherrschende Typ von Zugriffstoken, der mit OAuth 2.0 verwendet wird. Ein Bearer Token bedeutet im Wesentlichen: „Geben Sie dem Inhaber dieses Tokens Zugriff.“
Das Bearer Token ist normalerweise eine Art undurchsichtiger Wert, der vom Authentifizierungsserver erstellt wird. Es ist nicht zufällig; es wird basierend auf dem Benutzer erstellt, der Ihnen Zugriff gewährt, und dem Client, der Ihrer Anwendung Zugriff gewährt.
Um beispielsweise auf eine API zuzugreifen, müssen Sie ein Zugriffstoken verwenden. Zugriffstoken sind kurzlebig (etwa eine Stunde). Sie verwenden das Inhabertoken, um ein neues Zugriffstoken zu erhalten. Um ein Zugriffstoken zu erhalten, senden Sie dem Authentifizierungsserver dieses Inhabertoken zusammen mit Ihrer Client-ID. Auf diese Weise weiß der Server, dass die Anwendung, die das Inhabertoken verwendet, dieselbe Anwendung ist, für die das Inhabertoken erstellt wurde. Beispiel: Ich kann nicht einfach ein Inhabertoken nehmen, das für Ihre Anwendung erstellt wurde, und es mit meiner Anwendung verwenden. Es wird nicht funktionieren, weil es nicht für mich generiert wurde.
OAuth 1.0
In OAuth 1 besteht das Zugriffstoken aus zwei Komponenten: einer öffentlichen und einer privaten Zeichenfolge. Die private Zeichenfolge wird beim Signieren der Anforderung verwendet und nie über die Leitung gesendet.
OAuth 2.0
Die gängigste Methode zum Zugriff auf OAuth 2.0-APIs ist die Verwendung eines „Bearer Token“. Dies ist eine einzelne Zeichenfolge, die als Authentifizierung der API-Anforderung dient und in einem HTTP-Header „Authorization“ gesendet wird. Die Zeichenfolge ist für die Clients, die sie verwenden, bedeutungslos und kann unterschiedlich lang sein.
Vorteile von Bearer Tokens
Der Vorteil besteht darin, dass für die Anfragen keine komplexen Bibliotheken erforderlich sind und die Implementierung sowohl für Clients als auch für Server viel einfacher ist.
Mehr lesen: Was ist Burp Suite und welche Anwendungsfälle gibt es für Burp Suite?
Nachteile von Bearer Tokens
Der Nachteil von Bearer Tokens besteht darin, dass andere Apps nicht daran gehindert werden, ein Bearer Token zu verwenden, wenn sie darauf zugreifen können. Dies ist eine häufige Kritik an OAuth 2.0, obwohl die meisten Anbieter ohnehin nur Bearer Tokens verwenden. Unter normalen Umständen ist dies kein Problem, wenn Anwendungen die von ihnen kontrollierten Zugriffstoken ordnungsgemäß schützen, obwohl es technisch weniger sicher ist. Wenn Ihr Dienst einen sichereren Ansatz erfordert, können Sie einen anderen Zugriffstokentyp verwenden, der Ihren Sicherheitsanforderungen möglicherweise entspricht.
Google-Referenz
- https://blog.restcase.com/4-most-used-rest-api-authentication-methods/