OAuth 2.0 verwendet Access Tokens, um den Zugriff auf geschützte Ressourcen zu gewähren. Bei Single-Page-Anwendungen (SPAs) werden diese als Bearer-Tokens über HTTP-Header vom Browser an den Server übertragen.
Obwohl die Tokens während der Übertragung durch TLS geschützt sind, können sie möglicherweise aus einem Browser gestohlen, auf einem Proxy abgefangen oder von einem bösartigen oder unsicheren Server missbraucht werden. Der Standard OAuth 2.0 Demonstrating Proof-of-Possession (DPoP) sorgt hier vor, indem es im Client – beispielsweise Ihrer SPA – ein zusätzliches Schlüsselpaar nutzt. Damit kann dieser einen Nachweis erzeugen, sodass niemand anderes die Tokens verwenden kann. DPoP ist Teil des FAPI 2.0 Security Profile der OpenID Foundation. Dies enthält Best Practices zum Schutz von APIs für sensible Daten zum Beispiel aus den Bereichen Finanzen, E-Health und E-Government.
In diesem Vortrag erläutere ich die Konzepte und zeige anhand von Demos, wie dies mit Keycloak und anderen Open-Source-Komponenten implementiert werden kann. Außerdem stelle ich die aktuellen Herausforderungen, Grenzen und Alternativen des Ansatzes dar.