Wer schon einmal eine Social Media App geöffnet hat, kennt unbewusst den Client Credential Grant. Man öffnet die App, wartet vielleicht ein paar Sekunden und schon sieht man die Neuigkeiten seiner Freunde oder personalisierte, vorgeschlagene Inhalte. Doch diese Daten stammen nicht von der App selbst. Im Hintergrund wurde die API des Social Media Servers angefragt, der den personalisierten News Feed erstellt und weitergibt.
Kann nun jeder über die API einen persönlichen News Feed erfragen? Theoretisch ja; praktisch verhindert dies der Client Credential Grant. Schließlich geht es in den meisten Fällen um schützenswerte und personenbezogene Daten, die nicht jedermann zu Gesicht bekommen soll.
Folglich muss sich die Social Media App bei seiner Anfrage zuerst authentifizieren und autorisieren. Genau dort setzt der Industriestandard für Autorisierung von OAuth an.
Wichtig:
Authentifizierung ist die Prüfung der Identität. Autorisierung ist die Prüfung der Zugriffsberechtigung.
Was ist der Client Credential Grant von OAuth?
OAuth 2.0 ist ein Protokoll zur standardisierten API-Autorisierung. Hierbei wurden mehrere Genemigungsprozesse definiert, um unterschiedliche Anwendungsfälle abdecken zu können. Der Client Credential Grant ist einer davon. Dieser ist auf Machine-to-Machine Kommunikation wie Backend-Anwendungen, automatisierte Prozesse oder Microservices spezialisiert.
Damit der Client Credential Grant funktioniert, muss der Ressourceneigentümer – in unserem Fall der Social Media Server – zuerst den Zugriff auf die Social Media Daten gewähren. Dafür wird ein Scope definiert, der die genauen Gründe des Zugriffs und auch die Menge an freigegebenen Ressourcen spezifiziert.
Ablauf des Client Credential Grant
Das Autorisierungsprotokoll des Client Credential Grants nutzt Zugriffstoken anstelle von Anmeldeinformationen. Diese Token bestimmen, auf welche Ressourcen eine Anwendung zugreifen darf.
- Die Social Media App, in der ein User eingeloggt ist, sendet seine Credentials an einen Autorisierungsserver, bei dem der Scope der Social Media Plattform hinterlegt ist.
- Der Autorisierungsserver validiert die Credentials und überprüft den Scope.
- Stimmen die Credentials mit den im Scope definierten Bedingungen überein, gibt der Autorisierungsserver der Social Media App einen Zugriffstoken zurück.
- Die App kann dann mit dem Zugriffstoken die gewünschte Ressource wie den personalisierten News Feed von der API des Social Media Servers anfordern.
- Die API des Servers, auf der die Ressource gespeichert ist, antwortet bei gültigem Token mit den angefragten Daten, dem News Feed.
Vorteile des Client Credential Grants
Anstelle einer sofortigen Kommunikation zwischen Client und Ressourcenserver, die die Übertragung von Anmeldedaten des Users verlangt, wird ein Autorisierungsserver vorangestellt. Bei diesem kann sich der Client ohne eine Übertragung der Userdaten selbst authentifizieren und für die angefragte Ressource autorisieren lassen.
Somit werden weniger sensible Daten zur Authentifizierung benötigt. Zusätzlich werden durch den definierten Scope nur so wenige Informationen wie nötig freigegeben. Damit erhöht sich die Sicherheit der Zugriffsverwaltung und erspart die Notwendigkeit einer gemeinsamen Nutzung von Benutzeranmeldeinformationen, die ohne die Authentifizierung über einen Autorisierungsserver notwendig wäre.