Zum Hauptinhalt springen

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-Authenticate und Authorization, 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 Authorization mit 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 Unauthorized und 403 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 Authorization bei 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.