Definition
Claims sind strukturierte Aussagen über einen Benutzer oder ein Objekt, die in digitalen Identitäts- und Authentifizierungsprozessen verwendet werden. Sie dienen dazu, Informationen über die Identität, Rechte oder Eigenschaften eines Subjekts in maschinenlesbarer Form bereitzustellen. Claims werden häufig in Token-basierten Authentifizierungssystemen eingesetzt, insbesondere in JSON Web Tokens (JWT).
Ein Claim besteht typischerweise aus einem Schlüssel-Wert-Paar, bei dem der Schlüssel den Namen des Anspruchs angibt und der Wert die zugehörigen Daten enthält. Beispiele für Claims sind Benutzername, E-Mail-Adresse, Rollen oder Ablaufzeiten eines Tokens. Die Nutzung von Claims ermöglicht es Systemen, auf Basis dieser Informationen Zugriffsentscheidungen zu treffen oder personalisierte Dienste anzubieten.
Hintergrund und Standardisierung
Der Begriff Claims ist eng mit dem JSON Web Token (JWT) Standard verbunden, der 2015 von der Internet Engineering Task Force (IETF) im RFC 7519 definiert wurde. JWT ist ein offener Standard zur kompakten und sicheren Übertragung von Informationen zwischen Parteien als JSON-Objekt. Claims bilden dabei den zentralen Bestandteil der Payload eines JWT.
Claims sind in drei Kategorien unterteilt: Registered Claims, Public Claims und Private Claims. Registered Claims sind vordefinierte, standardisierte Ansprüche wie 'iss' (Issuer), 'sub' (Subject) oder 'exp' (Expiration Time). Public Claims können von Entwicklern frei definiert und registriert werden, während Private Claims für die interne Kommunikation zwischen Parteien bestimmt sind und nicht standardisiert sind.
Funktionsweise von Claims in JWT
In einem JWT werden Claims in der Payload gespeichert, die zwischen Header und Signatur eingebettet ist. Nach der Erstellung eines Tokens enthält die Payload alle relevanten Claims, die vom Empfänger überprüft werden können. Die Signatur stellt sicher, dass die Claims nicht manipuliert wurden.
Claims ermöglichen es einem System, die Identität und Berechtigungen eines Benutzers zu verifizieren, ohne zusätzliche Datenbankabfragen durchführen zu müssen. Beispielsweise kann ein Claim die Rolle eines Benutzers enthalten, anhand derer Zugriffsrechte festgelegt werden. Ablaufdaten in Claims sorgen zudem für zeitliche Begrenzungen der Gültigkeit eines Tokens.
Einsatzgebiete von Claims
Claims werden vor allem in webbasierten Authentifizierungs- und Autorisierungssystemen eingesetzt. Sie sind ein zentraler Bestandteil von Single Sign-On (SSO) Lösungen, OAuth 2.0 und OpenID Connect, wo sie Identitätsinformationen zwischen Identitätsanbietern und Dienstanbietern austauschen.
Darüber hinaus finden Claims Verwendung in Microservice-Architekturen, um Sicherheitsinformationen zwischen Diensten zu übertragen. Auch in mobilen Anwendungen und APIs dienen Claims dazu, Benutzerkontexte sicher und effizient zu übermitteln.
Abgrenzung zu verwandten Begriffen
Claims unterscheiden sich von klassischen Benutzerattributen oder Profilinformationen dadurch, dass sie Teil eines signierten Tokens sind und somit eine sichere und unveränderliche Übertragung von Identitätsdaten ermöglichen. Im Gegensatz zu Session-Cookies sind Claims statisch und enthalten alle notwendigen Informationen für die Authentifizierung.
Ein verwandter Begriff ist das Access Token, das ebenfalls Informationen über Zugriffsrechte enthält, aber nicht zwangsläufig alle Identitätsinformationen in Form von Claims beinhaltet. Während Claims die Datenstruktur in einem Token beschreiben, bezeichnet das Token selbst das gesamte Paket, das diese Claims enthält und überträgt.