Web API Authentication Basic vs Bearer

89

Ich habe eine JWT-basierte Authentifizierung in meiner Web-API-Anwendung erstellt. Ich kann den Unterschied zwischen nicht herausfinden

  1. Grundlegendes Token
  2. Inhaber-Token

Kann mir bitte jemand helfen?

SharmaPattar
quelle

Antworten:

117

Die Standard- und Digest-Authentifizierungsschemata sind der Authentifizierung unter Verwendung eines Benutzernamens und eines Geheimnisses gewidmet (siehe RFC7616 und RFC7617 ).

Das Bearer-Authentifizierungsschema ist der Authentifizierung mithilfe eines Tokens gewidmet und wird vom RFC6750 beschrieben . Selbst wenn dieses Schema aus einer OAuth2-Spezifikation stammt, können Sie es in jedem anderen Kontext verwenden, in dem Token zwischen einem Client und einem Server ausgetauscht werden.

In Bezug auf die JWT-Authentifizierung und da es sich um ein Token handelt, ist das Bearer-Authentifizierungsschema die beste Wahl. Nichts hindert Sie jedoch daran, ein benutzerdefiniertes Schema zu verwenden, das Ihren Anforderungen entspricht.

Florent Morselli
quelle
35

Die Standardauthentifizierung überträgt Anmeldeinformationen als Benutzer-ID / Kennwort-Paare, die mit base64 codiert wurden. Der Client sendet HTTP-Anforderungen mit demAuthorizationHeader, der das WortBasicword gefolgt von einem Leerzeichen und einembase64-encodedString-Benutzernamen: password enthält.

Autorisierung: Basic ZGVtbzpwQDU1dzByZA ==

Geben Sie hier die Bildbeschreibung ein Hinweis: Bei der Basisauthentifizierung ist das Basisauthentifizierungsschema nicht sicher, da die Benutzer-ID und das Kennwort als Klartext über das Netzwerk übertragen werden (es ist base64-codiert, base64 ist jedoch eine umkehrbare Codierung). HTTPS / TLS sollte in Verbindung mit der Basisauthentifizierung verwendet werden.


Die Trägerauthentifizierung (auch als Tokenauthentifizierung bezeichnet ) verfügt über Sicherheitstoken, die als Träger-Token bezeichnet werden. Der Name "Inhaberauthentifizierung" kann als " Zugriff auf den Inhaber dieses Tokens " verstanden werden. Das Inhaber-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 Anforderungen an geschützte Ressourcen gestellt werden:

Autorisierung: Inhaber <Token>

Geben Sie hier die Bildbeschreibung ein

Hinweis: Ähnlich wie bei der Standardauthentifizierung sollte die Inhaberauthentifizierung nur über HTTPS (SSL) verwendet werden .

Für weitere Informationen link1 , link2

fgul
quelle
Beide sind also Autorisierung und nicht wirklich Autorisierung. In der ersten, senden Sie Zeichenfolge codiert base64 und autorisiert zu erhalten , während in letzterem Sie wieder ein Token bekommen und es verwenden , um Zugang zu Ressourcen
Brain Storm
Was ist der Vorteil der Übergabe von Token gegenüber Benutzername / Passwort?
Muhammad Umer
@MuhammadUmer Sie können die Token widerrufen und ihnen auch granularen Zugriff gewähren (dh nur Lesezugriff).
Mihai
Ich fand die Antwort und es war, dass Sie nicht mit Token lesen müssen. Sie können Krypto verwenden, um das Token zu validieren. Dies ist am besten für Microservices geeignet, die keinen gemeinsamen Sitzungsstatus haben, obwohl es einen Load Balancer gibt, auf den ein Benutzer festgelegt werden kann ein Dienst, aber es ist immer noch performant.
Muhammad Umer