4.12. Client-Authentifizierung
4.12. Client-Authentifizierung
Anwendungen, die HTTP verwenden, müssen häufig Clients authentifizieren. HTTP bietet mehrere Mechanismen zur Authentifizierung:
-
HTTP-Authentifizierung: Verwendung der Header-Felder
WWW-AuthenticateundAuthorization, wie in [HTTP] Abschnitt 11 definiert. Gängige Schemata umfassen Basic [RFC7617] und Digest [RFC7616] Authentifizierung. -
Bearer-Token: Verwendung von Token (wie OAuth 2.0 Token) im Header-Feld
Authorizationmit dem Bearer-Schema. -
Cookies: Verwendung von Cookies [COOKIES] zur Aufrechterhaltung authentifizierter Sitzungen.
-
TLS-Client-Zertifikate: Verwendung von Zertifikaten auf der TLS-Ebene zur Authentifizierung von Clients.
-
Anwendungsspezifische Mechanismen: Benutzerdefinierte Authentifizierungsmechanismen, die von der Anwendung definiert werden.
Anwendungen SOLLTEN nach Möglichkeit vorhandene, gut verstandene Authentifizierungsmechanismen verwenden, anstatt neue zu definieren. Wenn Authentifizierung verwendet wird:
-
Anwendungen MÜSSEN TLS verwenden, um Authentifizierungsdaten während der Übertragung zu schützen.
-
Anwendungen SOLLTEN geeignete HTTP-Statuscodes (insbesondere
401 Unauthorizedund403 Forbidden) verwenden, um Authentifizierungsfehler anzuzeigen. -
Anwendungen SOLLTEN klare Fehlermeldungen bereitstellen, wenn die Authentifizierung fehlschlägt, DÜRFEN jedoch KEINE sensiblen Informationen preisgeben (z. B. ob ein Benutzername existiert).
-
Anwendungen SOLLTEN die Lebensdauer und Erneuerung von Authentifizierungsdaten berücksichtigen.
-
Anwendungen SOLLTEN angeben, wie der Authentifizierungsstatus über Anfragen hinweg aufrechterhalten wird (z. B. durch Verwendung von Cookies oder durch Anforderung des Header-Felds
Authorizationbei jeder Anfrage).
Anwendungen SOLLTEN sich bewusst sein, dass Authentifizierung sich von Autorisierung unterscheidet. Authentifizierung stellt die Identität des Clients fest, während Autorisierung bestimmt, was dieser Client tun darf.