OAuth Verfahren für mehr Funktionen

Wir haben das OAuth 2.0 Protokoll im MANAGER implementiert. Dies bedeutet, dass es nun möglich wird, Drittanwendungen in die SEWOBE Benutzerplattform einzubinden.

OAuth, kurz für „Open Authorization“, ist ein offenes Standardprotokoll, das eine sichere API-Autorisierung ermöglicht.
Konkret bedeutet das: Wenn Sie den Dienst eines Drittanbieters, beispielsweise in eine Webseite einbinden möchten, so müssen Sie sich zuerst bei dem Anbieter des Dienstes autorisieren, um Daten abfragen zu können. Diese Autorisierung läuft dann auf der Basis von OAuth 2.0.

Der Nutzer kann durch OAuth2.0 einen Dienst Anwendungsübergreifend verwenden, ohne dafür seine Zugangsdaten für eben diesen preisgeben zu müssen. Denn das besondere an OAuth 2.0 ist, dass anstatt der Anmeldung mit seinen Zugangsdaten, sogenannte Tokens ausgegeben werden. Diese sind nur für eine bestimmte Anwendung, spezifische Daten der Anwendung und für einen bestimmten Zeitraum gültig. Das erhöht die Sicherheit ungemein. Falls es zu einem Sicherheitsproblem kommen sollte, kann die Gültigkeit des ausgestellten Tokens ganz einfach aberkannt werden. So sind zum einen nicht alle Daten durch das Sicherheitsleck des Accounts betroffen und zum anderen muss nur ein neuer Token erstellt werden, um die gewohnte Funktionalität beizubehalten. Durch die Einbindung von Refresh-Tokens ist die Sicherheit des Protokolls und somit auch die Sicherheit der Daten noch besser sichergestellt. Denn von einem Refresh-Token wird immer nur ein Access-Token mit einer kurzen Gültigkeit erstellt, um die zurzeit benötigten Daten abzufragen.

Im Manager gibt es einen weiteren großen Vorteil. Sollte ein Mitglied aus der Organisation ausscheiden, wird der Benutzer durch die Kündigungsautomatik gelöscht. Dadurch ist dann auch kein Zugang durch OAuth mehr möglich, denn der Zugang per OAuth ist an den Benutzer gekoppelt.

Dienste die im Backend angebunden werden können sind zum Beispiel Storage-Dienste wie Nextcloud. Mit Hilfe einer API wird hier das Hoch- und Herunterladen von Dateien aus einer Cloud oder dem eigenen Server ermöglicht.
Im Frontend können Dienste wie WordPress oder andere bereits bestehende interne Anwendungen angebunden werden.

Im Folgenden werden der Aufbau und der Ablauf des Protokolls erklärt.

Das Protokoll unterscheidet prinzipiell vier Rollen:

  1. Resource Owner: Der User, der einem Dritten Zugriff auf seine geschützten Daten gewähren will.
  2. Resource-Server: Der Server, auf dem die geschützten Daten des Resource Owner´s sind.
  3. Client: Die Anwendung, die auf die geschützten Daten zugreifen soll.
  4. Authorization-Server: Der Server, der den Resource Owner authentifiziert und den Access-Token ausstellt.

Im Grunde läuft eine Autorisierung immer nach diesem Schema ab:

  1. Der Client fordert eine Autorisierung vom Resource Owner an
  2. Der Client erhält eine Autorisierungsgenehmigung vom Resource Owner
  3. Der Client fordert einen Access-Token vom Authorization-Server an und verwendet dafür die Autorisierungsgenehmigung vom Resource Owner
  4. Der Authorization-Server authentisiert den Client und prüft die Autorisierungsgenehmigung des Resource Owner´s. Ist diese Prüfung erfolgreich wird ein Access-Token ausgestellt.
  5. Der Client fragt die geschützten Daten beim Resource-Server an. Zur Authentisierung wird der Access-Token verwendet.
  6. Der Resource-Server prüft den Access-Token und stellt, wenn dieser gültig ist, die angefragten Daten zur Verfügung.