Skip to content
IRC-Coding IRC-Coding
Authentifizierung Authorization API Keys OAuth2 JWT RBAC

API Authentifizierung und Authorization: Grundlagen, Unterschiede und Verfahren

Lerne API Authentifizierung und Authorization: Unterschied, Verfahren wie OAuth2, JWT, API Keys, Rollen und Rechte, Best Practices für sichere APIs.

S

schutzgeist

2 min read
API Authentifizierung und Authorization: Grundlagen, Unterschiede und Verfahren

API Authentifizierung und Authorization

Authentifizierung stellt die Identität eines Clients sicher, Authorization entscheidet, welche Aktionen der Client danach ausführen darf.

Kompakte Beschreibung

API Authentifizierung und Authorization sind zwei grundlegende Sicherheitsmechanismen für Schnittstellen. Authentifizierung überprüft, wer auf die API zugreift, beispielsweise durch API Keys, OAuth2 Tokens oder Zertifikate. Authorization entscheidet, welche Ressourcen und Aktionen ein authentifizierter Nutzer verwenden darf, oft basierend auf Rollen, Berechtigungen oder Attributen. Eine gute Sicherheitsarchitektur trennt beide Konzepte klar, verwendet starke Authentifizierung und prüft Berechtigungen für jeden einzelnen Endpunkt. Nur weil ein Client authentifiziert ist, bedeutet das nicht, dass er alle Daten sehen oder ändern darf. Die korrekte Umsetzung von Authentifizierung und Authorization schützt vor Datendiebstahl, unbefugtem Zugriff und Manipulation.

Wichtige Komponenten

Authentifizierung

Authentifizierung ist der Prozess, der die Identität eines Nutzers oder Clients überprüft. Sie beantwortet die Frage: Wer bist Du? Gängige Verfahren sind Passwörter, API Keys, OAuth2 Tokens, Client-Zertifikate und biometrische Faktoren. Bei APIs wird die Authentifizierung meist über Header oder Token durchgeführt.

Authorization

Authorization ist der Prozess, der nach erfolgreicher Authentifizierung entscheidet, was erlaubt ist. Sie beantwortet die Frage: Was darfst Du tun? Authorization basiert auf Rollen, Rechten, Ressourcenbesitz oder Attributen. Ein Nutzer kann authentifiziert sein, aber trotzdem nur Lesezugriff auf bestimmte Daten haben.

API Keys

API Keys sind einfache, geheime Zeichenfolgen, die der Client bei jeder Anfrage mitgibt. Sie sind leicht zu implementieren, aber weniger sicher als Token-basierte Verfahren. API Keys eignen sich für interne oder öffentliche Schnittstellen mit geringem Risiko, sollten aber über TLS übertragen und regelmäßig erneuert werden.

OAuth2

OAuth2 ist ein Autorisierungsframework, das es Clients ermöglicht, im Namen eines Nutzers auf Ressourcen zuzugreifen, ohne das Passwort preiszugeben. Es definiert verschiedene Flows wie Authorization Code, Client Credentials, Implicit und Device Code. OAuth2 wird für moderne Web- und Mobile-APIs eingesetzt.

OpenID Connect

OpenID Connect ist eine Authentifizierungsschicht auf Basis von OAuth2. Es ermöglicht die Identitätsprüfung eines Nutzers und liefert ein ID Token mit Informationen wie Name und E-Mail. OpenID Connect wird für Single Sign-On und nutzerbasierte Authentifizierung verwendet.

JSON Web Tokens

JSON Web Tokens, kurz JWT, sind kompakte, selbstbeschreibende Token, die Claims enthalten. Sie bestehen aus Header, Payload und Signatur. JWTs werden häufig für API-Authentifizierung und Authorization verwendet, müssen aber korrekt signiert und validiert werden.

RBAC

RBAC steht für Role-Based Access Control. Berechtigungen werden Rollen zugeordnet, Nutzer erhalten eine oder mehrere Rollen. Ein Administrator darf beispielsweise alles, ein Editor nur Inhalte bearbeiten und ein Betrachter nur lesen. RBAC ist einfach zu verstehen und weit verbreitet.

ABAC

ABAC steht für Attribute-Based Access Control. Berechtigungen werden aus Attributen des Nutzers, der Ressource und der Umgebung abgeleitet. Beispiel: Ein Nutzer darf eine Datei nur bearbeiten, wenn er der Eigentümer ist und es Werktags zwischen 9 und 17 Uhr ist. ABAC ist flexibler als RBAC, aber auch komplexer.

Multi-Faktor-Authentifizierung

Multi-Faktor-Authentifizierung verlangt mehrere unabhängige Beweise für die Identität, beispielsweise Passwort und Einmalcode. Für APIs wird MFA oft über zusätzliche Verifizierungsschritte oder Hardware-Token umgesetzt, besonders bei sensiblen Operationen.

Least Privilege Prinzip

Das Least Privilege Prinzip besagt, dass Nutzer und Clients nur die minimalen Berechtigungen erhalten, die sie für ihre Aufgabe benötigen. Geringere Berechtigungen reduzieren das Risiko von Datenlecks und unbefugten Aktionen. Berechtigungen sollten regelmäßig überprüft und angepasst werden.

Praxisbeispiel

Ein Dokumentenmanagement-System bietet verschiedene Endpunkte für verschiedene Rollen an. Die Authentifizierung erfolgt über einen Bearer Token im Authorization Header.

GET /api/v1/documents
Authorization: Bearer eyJhbGciOiJIUzI1NiIs...

Der Server prüft den Token und ermittelt die Rolle des Nutzers:

  • Ein Viewer erhält nur Lesezugriff.
  • Ein Editor darf Dokumente erstellen und bearbeiten.
  • Ein Administrator darf Dokumente löschen und Benutzer verwalten.

Beispiel für einen Endpunkt mit RBAC:

DELETE /api/v1/documents/123
Authorization: Bearer eyJhbGciOiJIUzI1NiIs...

Ein Editor erhält 403 Forbidden, weil er keine Löschberechtigung hat. Ein Administrator erhält 204 No Content. Authentifizierung und Authorization werden also separat geprüft: Zuerst der Token, dann die Berechtigung.

FAQ: API Authentifizierung und Authorization

1. Was ist der Unterschied zwischen Authentifizierung und Authorization?

Authentifizierung prüft die Identität eines Nutzers oder Clients. Authorization entscheidet, welche Aktionen oder Ressourcen ein authentifizierter Nutzer verwenden darf.

2. Was ist ein API Key?

Ein API Key ist ein geheimer Schlüssel, den der Client bei Anfragen mitgibt, um sich zu identifizieren. API Keys sind einfach, aber weniger sicher als moderne Token-Verfahren.

3. Was ist OAuth2?

OAuth2 ist ein Autorisierungsframework, das Clients erlaubt, im Namen eines Nutzers auf Ressourcen zuzugreifen, ohne das Passwort zu kennen. Es unterstützt verschiedene Flows für unterschiedliche Anwendungsfälle.

4. Was ist OpenID Connect?

OpenID Connect ist eine Authentifizierungsschicht auf OAuth2. Es liefert ein ID Token mit Identitätsinformationen und wird für Single Sign-On und nutzerbasierte Authentifizierung verwendet.

5. Was ist ein JWT?

JWT steht für JSON Web Token. Es ist ein kompaktes Tokenformat mit Header, Payload und Signatur. JWTs enthalten Claims wie Identität und Ablaufdatum und werden oft für API-Zugriff verwendet.

6. Was ist RBAC?

RBAC steht für Role-Based Access Control. Berechtigungen werden Rollen zugeordnet und Nutzer erhalten eine oder mehrere Rollen. RBAC ist einfach und gut für viele Standardanwendungen geeignet.

7. Was ist ABAC?

ABAC steht für Attribute-Based Access Control. Berechtigungen werden aus Attributen von Nutzer, Ressource und Umgebung abgeleitet. ABAC ist flexibler, aber auch komplexer als RBAC.

8. Was bedeutet Least Privilege?

Least Privilege bedeutet, dass Nutzer und Clients nur die minimalen Berechtigungen erhalten, die sie für ihre Aufgabe benötigen. Das reduziert das Schadenspotential bei Kompromittierung.

9. Sollte man API Keys für öffentliche APIs verwenden?

API Keys können für öffentliche APIs mit niedrigem Risiko genutzt werden, beispielsweise für Rate Limiting oder einfache Identifikation. Für sensitive Daten oder Schreibzugriff sollten sicherere Verfahren wie OAuth2 oder JWT verwendet werden.

10. Was ist ein Bearer Token?

Ein Bearer Token ist ein Token, das der Client im Authorization Header mitgibt. Wer das Token besitzt, wird als berechtigt betrachtet. Bearer Tokens müssen daher geschützt und kurzlebig sein.

11. Was ist Multi-Faktor-Authentifizierung?

Multi-Faktor-Authentifizierung verlangt mehrere unabhängige Beweise für die Identität, wie Passwort und Einmalcode. Sie erhöht die Sicherheit erheblich, besonders bei sensiblen Operationen.

12. Was ist der Unterschied zwischen OAuth2 Scopes und RBAC?

Scopes definieren, auf welche Ressourcen oder Aktionen ein Client zugreifen darf, oft im Kontext eines Tokens. RBAC ordnet Berechtigungen über Rollen innerhalb einer Anwendung zu. Beide können kombiniert werden.

13. Warum sollte Authorization nicht nur im Client erfolgen?

Clients können manipuliert werden. Authorization muss immer serverseitig durchgesetzt werden, da der Server der einzige vertrauenswürdige Ort ist. Frontend-Prüfungen dienen nur der Benutzerfreundlichkeit.

14. Was ist Token-Refresh?

Token-Refresh ist der Prozess, ein neues Access Token mit einem Refresh Token zu erhalten. Access Tokens bleiben kurzlebig, Refresh Tokens erlauben eine längere Sitzung ohne erneute Passworteingabe.

15. Was sind typische Fehler bei API Sicherheit?

Typische Fehler sind unverschlüsselte Übertragung, langlebige Token, fehlende Token-Validierung, Berechtigungsprüfungen nur im Client, hartkodierte Schlüssel und unzureichende Logging-Prüfungen.

Quellen

  1. https://datatracker.ietf.org/doc/html/rfc6749
  2. https://openid.net/connect/
  3. https://datatracker.ietf.org/doc/html/rfc7519

Buchempfehlungen zur API-Sicherheit

Wenn Du Dich weiter mit API Authentifizierung, Authorization und API-Sicherheit beschäftigen möchtest, empfehlen wir Dir die folgenden Bücher:

Keine Bücher für Kategorie "security" gefunden.

Zurück zum Blog
Share:

Ähnliche Beiträge