Was ist OAuth 2.0?

OAuth ist ein Standard, den Apps verwenden können, um Clientanwendungen „sicheren delegierten Zugriff“ bereitzustellen. OAuth funktioniert über HTTPS und autorisiert Geräte, APIs, Server und Anwendungen mit Zugriffstoken anstelle von Anmeldeinformationen.

Das OAuth 2.0-Protokoll wurde explizit entwickelt, um eine Vielzahl unterschiedlicher Client-Typen zu unterstützen, die auf REST-APIs zugreifen. Dies umfasst sowohl Anwendungen, die auf Webservern innerhalb des Unternehmens ausgeführt werden und die Cloud aufrufen, als auch Anwendungen, die auf mobilen Geräten von Mitarbeitern oder Kunden ausgeführt werden. Das OAuth-Protokoll unterstützt diese Vielzahl von Clienttypen, indem mehrere Mechanismen zum Abrufen eines Tokens definiert werden, wobei die verschiedenen Mechanismen die Einschränkungen des Clienttyps anerkennen.

Token

Zugriffstoken sind die Token, die der Client verwendet, um auf den Ressourcenserver (API) zuzugreifen. Sie sollen kurzlebig sein. Denken Sie an sie in Stunden und Minuten, nicht in Tagen und Monaten. Sie benötigen keinen vertraulichen Client, um ein Zugriffstoken zu erhalten. Sie können Zugriffstoken mit öffentlichen Clients erhalten. Sie wurden entwickelt, um Probleme mit der Internetskalierung zu optimieren. Da diese Token kurzlebig sein und skaliert werden können, können sie nicht widerrufen werden, Sie müssen nur warten, bis sie abgelaufen sind.

Das andere Token ist das Aktualisierungstoken. Dies ist viel langlebiger; Tage, Monate, Jahre. Dies kann verwendet werden, um neue Token zu erhalten. Um ein Aktualisierungstoken zu erhalten, erfordern Anwendungen normalerweise vertrauliche Clients mit Authentifizierung.

Aktualisierungstoken können widerrufen werden. Wenn Sie den Zugriff einer Anwendung in einem Dashboard widerrufen, löschen Sie ihr Aktualisierungstoken. Dies gibt Ihnen die Möglichkeit, die Clients zu zwingen, Geheimnisse zu rotieren. Was Sie tun, ist, dass Sie Ihr Aktualisierungstoken verwenden, um neue Zugriffstoken zu erhalten, und die Zugriffstoken gehen über die Leitung, um alle API-Ressourcen zu treffen. Jedes Mal, wenn Sie Ihr Zugriffstoken aktualisieren, erhalten Sie ein neues kryptografisch signiertes Token. Die Schlüsselrotation ist in das System integriert.

 

Wie es funktioniert?

  1. Der Benutzer (auch bekannt als Ressourcenbesitzer) stellt dem Client seinen Benutzernamen und sein Passwort zur Verfügung.
  2. Der Client stellt eine Token-Anfrage an den Autorisierungsserver und gibt dabei Benutzernamen und Passwort an.
  3. Der Autorisierungsserver prüft die Anmeldeinformationen und stellt dem Client in der Antwort ein Zugriffstoken und optional ein Aktualisierungstoken bereit, wenn sie korrekt sind.
  4. In den Anfragen an den REST-Server (um Daten wie Personen, Artikel … zu erhalten) stellt der Client das Zugriffstoken bereit.
  5. Wenn der REST-Dienst eine Anfrage verarbeitet, validiert er das Zugriffstoken, indem er den Tokenvalidierungsendpunkt des Autorisierungsservers aufruft oder indem er das Token lokal validiert (z. B. wenn das Zugriffstoken ein JWT ist).
  6. Wenn das Zugriffstoken korrekt ist, nicht abgelaufen ist und über die richtigen Berechtigungen (auch bekannt als „Bereiche“) verfügt, gibt der REST-Dienst die Daten zurück, die der Client angefordert hat.
  7. Wenn der Client feststellt, dass access_token abgelaufen ist (z. B. weil der REST-Server einen Fehler zurückgibt), fragt er den Autorisierungsserver nach einem anderen Zugriffstoken unter Verwendung des Refresh-Tokens unter Verwendung des sogenannten Refresh Token Grant/Flow.