Mobile Apps
OAuth2 & PKCE für native Apps
Anmeldung ohne gespeichertes Passwort
Eine App darf das Passwort ihrer Nutzer nicht kennen. Beim Authorization-Code-Flow mit PKCE muss sie das auch nicht. Die Anmeldung läuft in einem Fenster des Systembrowsers, und die App bekommt am Ende nur einen kurzlebigen Code, den sie gegen Tokens tauscht. Fängt ein fremder Prozess diesen Code ab, kann er ihn ohne den passenden Verifier nicht einlösen.
Für die Nutzer ändert sich dadurch nichts Gewohntes. Single Sign-on, Passwortmanager und Zwei-Faktor-Verfahren funktionieren weiter, weil die Anmeldung dort stattfindet, wo die Zugangsdaten ohnehin liegen. Aus einem ausgelesenen App-Binary lässt sich umgekehrt nichts holen, was jemandem nützt.
Den Autorisierungsserver betreiben wir in eurer eigenen Anwendung, nicht bei einem Dritten. Jeder Client bekommt eine eigene Kennung, jedes Token lässt sich einzeln widerrufen. Und der Abmeldeknopf entwertet das Token serverseitig, statt es nur lokal zu vergessen.
Warum dieser Weg
- Das Passwort verlässt nie den Anmeldedialog des Betriebssystems
- Single Sign-on und Zwei-Faktor-Verfahren funktionieren unverändert weiter
- PKCE schützt den Autorisierungscode auch ohne Client-Geheimnis
- Jedes Token lässt sich einzeln und serverseitig widerrufen
- Der Autorisierungsserver bleibt Teil eurer Anwendung