Klicken Sie jetzt auf „Bei Google anmelden“ und sagen Sie: „Sie möchten Ihr Profil abrufen, erlauben Sie mir?“ Das ist, dass OAuth funktioniert. Und fast niemand, der es nutzt, versteht, was tatsächlich hinter diesem Bildschirm passiert ist.
In dieser Kurzanleitung wird erklärt, was OAuth ist, wann es ins Spiel kommt und, was am wichtigsten und verwirrendsten ist, welches Problem es tatsächlich löst. Es handelt sich nicht um ein Implementierungs-Tutorial. Es ist das konzeptionelle Verständnis, das Sie brauchten, um das Kopieren von Sicherheitskonfigurationen zu stoppen, ohne zu wissen, was Sie tun.
Die Verwirrung beginnt bereits beim Namen. Viele Leute denken, dass OAuth zum „Anmelden“ dient. Es dient teilweise, aber diese Vision verbirgt, was sie wirklich ist. Das richtige Verständnis unterscheidet diejenigen, die Sicherheit gewissenhaft nutzen, von denen, die sie nur wiederholen.
Was OAuth wirklich ist
OAuth ist ein Autorisierungsprotokoll, nicht Authentifizierung. Dieser einzelne Satz löst bereits die Hälfte der Verwirrung zu diesem Thema.
Die Autorisierung antwortet mit der Frage „Auf was kann diese App in meinem Namen zugreifen?“. Die Authentifizierung antwortet mit „Wer sind Sie?“. Es sind unterschiedliche Fragen. OAuth wurde zum ersten Mal erstellt.
Die Kernidee: Mit OAuth können Sie einer App eingeschränkten Zugriff auf Ihre Ressourcen gewähren, die sich in einem anderen Dienst befinden, ohne Ihr Passwort preiszugeben. Wenn eine Fotobearbeitungs-App um Zugriff auf Ihr Google Drive bittet, geben Sie ihr nicht Ihr Google-Passwort. Sie autorisieren es und Google gibt der App einen temporären und eingeschränkten Schlüssel, einen Token, der nur für das gilt, was Sie zugelassen haben.
Das ist das Geniale des Protokolls: Zugriff delegieren, ohne Zugangsdaten weiterzugeben. Das Passwort verlässt niemals Ihre Hände oder den ursprünglichen Dienst.
Die Analogie, die alles klar macht
Denken Sie an den Kammerdiener. Wenn Sie Ihr Auto bei einem Parkservice abgeben, übergeben Sie nicht Ihren Hausschlüssel oder Ihre Dokumente, sondern einen Schlüssel, der das Auto nur für eine begrenzte Zeit und für einen bestimmten Zweck startet und die Tür öffnet.
OAuth ist der Valet-Schlüssel für die digitale Welt. Das ausgegebene Token hat einen begrenzten Gültigkeitsbereich (es führt nur das aus, was autorisiert wurde), es ist temporär (es läuft ab) und kann widerrufen werden (Sie können es jederzeit kündigen, ohne das Passwort für alles zu ändern). Es handelt sich um eine granulare, kontrollierte und umkehrbare Autorisierung.
Anwendungsfälle, in denen OAuth erscheint
Das Verstehen konkreter Fälle fixiert das Konzept.
Am sichtbarsten ist das Social Login, „Mit Google, Facebook, Apple anmelden“. Hier ermöglicht OAuth (häufig kombiniert mit einer Identitätsschicht, OpenID Connect) einer App, ihre Identität über einen vertrauenswürdigen Anbieter zu bestätigen, ohne noch ein weiteres Passwort zu erstellen. Dies ist der Fall, den jeder kennt, wenn auch aus dem falschen Grund.
Ein anderer Fall ist der Zugriff zwischen Anwendungen. Ein Produktivitätstool, das Ihren Kalender liest, eine Finanz-App, die über Open Finance eine Verbindung zu Ihrer Bank herstellt, ein System, das in Ihrem Namen in einem sozialen Netzwerk veröffentlicht. Jeder verwendet OAuth, um eingeschränkte Berechtigungen für an anderer Stelle gehostete Ressourcen zu erhalten.
Es gibt auch den Fall von APIs und Unternehmensintegrationen. Wenn die Systeme einer Organisation auf kontrollierte und überprüfbare Weise gegenseitig auf die Daten zugreifen müssen, stellt OAuth den bereichsbezogenen Token-Mechanismus bereit. Im öffentlichen Sektor und in regulierten Umgebungen ist diese Möglichkeit, granularen Zugriff zu gewähren und zu widerrufen, für die Compliance wertvoll.
Die Flow-Kurzanleitung
Ohne auf den Code einzugehen, ist der wesentliche Ablauf folgender: Sie (der Dateneigentümer) stellen bei einer Anwendung einen Dienst an. Die App leitet Sie zu dem Dienst weiter, in dem Ihre Daten gespeichert sind. Dort authentifizieren Sie sich und genehmigen den beantragten Zugang. Der Dienst gibt ein eingeschränktes Zugriffstoken an die Anwendung zurück. Die Anwendung verwendet dieses Token, um nur auf das zuzugreifen, was Sie zugelassen haben, solange das Token gültig ist. Ihr Passwort wird niemals durch die App weitergeleitet. Es ist dieses Design, das OAuth bei guter Implementierung sicher macht.
Der gefährlichste konzeptionelle Fehler
Sicherheitsreife erfordert das Verständnis des Fehlers, der die meisten Probleme verursacht: die Behandlung von OAuth als Identitätsnachweis, wenn es sich um einen Autorisierungsnachweis handelt.
OAuth sagt „Dieses Token kann auf eine solche Ressource zugreifen“. Es heißt nicht per se: „Diese Person ist so und so.“ Wer reines OAuth nutzt, als wäre es ein Identitäts-Login, eröffnet echte Schlupflöcher. Aus diesem Grund gibt es OpenID Connect, eine Ebene, die auf OAuth aufbaut und genau darauf abzielt, Identitäten korrekt zu handhaben. Die Verwechslung der beiden ist die Ursache klassischer Schwachstellen beim Social Login.
Ein weiterer häufiger Fehler besteht darin, nach zu weit gefassten Geltungsbereichen zu fragen. Eine App, die vollständigen Zugriff anfordert, obwohl sie nur einen Teil davon benötigt, verstößt gegen das Prinzip der geringsten Rechte. Seien Sie als Benutzer vorsichtig bei Apps, die zu viel verlangen. Bestellen Sie als Bauunternehmer nur das Notwendige. Dies ist Sicherheit und Respekt für die Daten des Benutzers, etwas, das LGPD verstärkt.
Reflexion: Macht mit Verantwortung
OAuth löst ein echtes und elegantes Problem, konzentriert jedoch das Risiko. Der Token ist ein Schlüssel; Wenn es durchsickert, gewährt es Zugriff auf das, was er autorisiert. Deshalb ist die Umsetzung genauso wichtig wie das Konzept.
Token müssen sicher transportiert werden, eine kurze Gültigkeit haben, widerrufen und sorgfältig aufbewahrt werden. Die Spezifikation hat sich weiterentwickelt, aktuelle Best Practices empfehlen sicherere Abläufe und raten von alten Standards ab. Die Implementierung von OAuth „Kopieren aus dem Internet“, ohne diese Nuancen zu verstehen, ist, als würde man ein teures Schloss installieren und den Schlüssel unter dem Teppich lassen. Es lohnt sich, auf ausgereifte Bibliotheken und etablierte Anbieter zu setzen, anstatt das Protokoll neu zu erfinden.
Schließung
OAuth ist nicht „die Möglichkeit, sich anzumelden“. Auf diese Weise können Sie den Zugriff delegieren, ohne die Schlüssel zu allem abzugeben. Das Verständnis dieser Unterscheidung, Autorisierung, nicht Authentifizierung; Ein Token mit begrenztem Gültigkeitsbereich und kein gemeinsames Passwort ist es, was die mechanische Nutzung in eine bewusste Nutzung verwandelt.
Bei der Sicherheit geht es nicht darum, sich Protokolle zu merken. Es geht darum zu verstehen, was jedes Teil schützt und was nicht. Wer das Konzept von OAuth beherrscht, trifft bessere Entscheidungen, verlangt weniger von dem, was er nicht braucht, und misstraut im richtigen Moment.
Wenn Sie Social Login oder eine systemübergreifende Integration implementieren, lohnt es sich, das Protokoll zu verstehen, bevor Sie es konfigurieren. Ich habe auf dem Blog weitere Texte über Sicherheit, Authentifizierung und Datenschutz, und wenn Sie eine konkrete Zugriffsarchitektur diskutieren möchten, ist dies die Art von Gespräch, die funktioniert.
Lesen Sie auch
- Authentifizierung in Anwendungen – Best Practices mit Beispielen
- Autorisierung und Berechtigungen: Best Practices, die unbefugten Zugriff verhindern
- Anwendungsauthentifizierung: Vollständiger Sicherheits- und UX-Leitfaden
- OAuth What E
- Authentifizierung in Anwendungen – Best Practices mit Checkliste
- Social Login in Anwendungen: Implementierung und Best Practices
