Über den Wolken… – Cloud-Anbindung für doXisafe – Teil 2

Teil 2: Authentifizierung via OAuth 2.0

Wie versprochen geht es heute weiter mit meinem Bericht über die Anbindung von Microsoft OneDrive an unser doXisafe.

Damit eine Anwendung, in diesem Fall doXisafe, auf die REST-Schnittstelle von OneDrive zugreifen darf, muss sie sich gegenüber Microsoft authentifizieren. Dafür legt man sich ein Konto beim Microsoft Application Registration Portal an. In diesem Portal wird der Anwendung eine eindeutige ID gegeben, mit der sie sich gegenüber der API als zugriffsberechtigt ausweisen kann.

Soweit, so gut. Etwas fehlt aber noch, damit doXisafe auf die Microsoft Graph API* zugreifen kann: Der Benutzer-Login. Schließlich soll doXisafe ja auf Dateien zugreifen können, die in dem OneDrive eines Benutzers liegen.

Die Graph API bietet hierfür zwei Möglichkeiten an: den Token Flow und den Code Flow. Beide sind in einem Standard namens OAuth 2.0 definiert. Für die erste benötigt man lediglich einen Webbrowser, für die zweite empfiehlt sich ein Programm wie z.B. Postman, um die REST-Aufrufe durchzuführen.

Hier eine Grafik, die den Token Flow zeigt:

Der Client ist z.B. die doXisafe web App.

Und hier der Code Flow:

Der Code Flow ermöglicht es der Anwendung, auch nach längerer Zeit auf die API zuzugreifen, sodass der Benutzer sich nicht nach einer bestimmten Zeit neu einloggen muss.

Nachdem ich die beiden Authentication Flows nach OAuth 2.0 verstanden hatte, musste ich nur noch die entsprechenden REST-Aufrufe in Java schreiben, und voilà – fertig war die Authentifizierung für doXisafe in OneDrive.

Nächstes Mal geht’s dann um den ganzen REST 😉

* so heißt die REST-Schnittstelle für OneDrive

Bilder von https://docs.microsoft.com/de-de/onedrive/developer/rest-api/getting-started/graph-oauth

Teile diesen Post:

Über den Wolken… – Cloud-Anbindung für doXisafe – Teil 1

Teil 1: Recherche und Einarbeitung

Wie versprochen berichte ich heute über meine erste Mitwirkung in einem größeren Software-Projekt bei CIB.

Wie ihr vielleicht mitbekommen habt, wurde Ende Januar ein neues doXisafe web freigegeben. Dort könnt ihr euch jetzt bei eurem Lieblings-Cloud-Anbieter (Google Drive, Microsoft OneDrive oder Dropbox) anmelden und Dateien in doXisafe importieren oder in die andere Cloud exportieren.

Ich habe vor ca. einem Jahr die Aufgabe bekommen, die Anbindung an OneDrive zu entwickeln, und zwar hauptsächlich den Backend-Teil. Also den Teil, den man im Endprodukt nicht sieht, der aber im Hintergrund (bzw. auf dem Server) die ganze Arbeit erledigt.

Da ich vorher noch nie so ein umfangreiches Projekt in meinem work-space liegen hatte, habe ich erstmal angefangen, mich ganz allgemein in das Thema Web-Entwicklung einzuarbeiten. Dazu habe ich einige Begrifflichkeiten, Technologien und Frameworks recherchiert. Die Ergebnisse habe ich in den folgenden zwei MindMaps zusammengefasst:

(Zum Vergrößern auf das Bild klicken)

(Zum Vergrößern auf das Bild klicken)

Die zwei wichtigsten Begriffe für mich waren REST und API, zusammen ergeben sie REST-API. Das ist ganz allgemein eine Schnittstelle, über die man unter Verwendung des REST-Standards bestimmte Dienste von einem Web-Server anfragen kann. Das einfachste Beispiel für so eine Anfrage ist der Aufruf einer Website im Browser.

Microsoft stellt so eine REST-Schnittstelle für seinen Cloud-Dienst One-Drive bereit. Außerdem gibt es eine Dokumentation dazu, in der man alles findet, was man über die Schnittstelle so alles an Funktionen verwenden kann.

Für den Anfang sollte ich drei Funktionen implementieren: eine Datei hochladen, eine Datei herunterladen sowie alle Dateien in OneDrive auflisten. Klingt erstmal simpel oder?

Damit mein Programm aber auf die Schnittstelle zugreifen kann, muss es sich bei Microsoft authentifizieren bzw. der Benutzer muss sich mit seinem Microsoft-Konto einloggen.

Wie ich das bewerkstelligt habe und was ich dabei gelernt habe, lest ihr beim nächsten Mal, wenn es wieder heißt:

Let’s CIB and code!

Teile diesen Post:

Hallo aus der Entwicklung

So jetzt schreib ich auch mal was hier. Ich arbeite jetzt seit ca. einem Jahr im Entwickler-Team und werde mal kurz (oder lang) zusammenfassen, was ich da eigentlich gemacht habe bzw. mache.

Vorher aber noch ein Zitat, was so ein Entwickler/eine Entwicklerin eigentlich ist:

Entwickler: ein Organismus, der Kaffee in Code umwandelt.

– aus den Weiten des Internets

Ja das beschreibt es eigentlich ganz gut…

Ich schreibe hauptsächlich Code in Java, nein nicht die Insel, sondern die Programmiersprache 😉 Als Entwicklungsumgebung verwende ich Eclipse, das mir schon viel Arbeit abnimmt, indem es mir z.B. alle verfügbaren Methoden für eine Klasse auflistet oder Fehler im Code gleich anzeigt.

Achja, und dann gibt es da noch StackOverflow… Strg-C und Strg-V ist in dem Zusammenhang eine der wichtigsten Tastenkombinationen, die aber mit Vorsicht zu genießen ist: Wenn du selbst nicht mehr weißt, was dein Code eigentlich macht, solltest du dein Copy-and-Paste-Verhalten noch einmal überdenken.

Dazu abschließend noch ein passendes Zitat:

Schreibe deinen Code immer so, als ob der Kerl, der am Ende deinen Code pflegen muss, ein gewalttätiger Psychopath ist, der weiß, wo du wohnst.

Nächstes Mal schreibe ich dann über das erste größere Projekt, bei dem ich schon als Azubi mitwirken durfte 🙂

Let’s CIB and code!

Teile diesen Post: