Authentication with OAuth

It’s pretty safe to say, that everyone using the web has already made an account for some website. For the broad masses the most common ones would be social media sites like facebook, youtube and twitter. Then there are also online shopping platforms like e-bay and amazon, and more techie orientated pages like stack overflow and all sorts of version control repositories.
(And of course various others for anything and everything else…)

Third party applications often allow you to sign in with your account from another website.

The good thing is, that you don’t need to create a separate account for every single one, but are offered the possibility to just sign in with an account you created for a different service.

The page for which you want to use a different account needs to request data from the original website and use it to authenticate the user (without their input).
In order to give both the requesting website and the user assurance that the data will be safe and reliable some sort of standardisation is required.

Most commonly used is the open standard for authorisation OAuth.
With OAuth it is possible for users to grant access to their information from a certain website without giving away their credentials.

This is what it looks like when the user reviews the permissions.

In order for the third party application to obtain specific information about a user, it has to request an access token from the authorisation server, and when the user grants the permission, use that token to access the resources from the website.

In our specific case we want users to be able to log in to Icinga Exchange with their GitHub accounts.

If you now also want to integrate GitHub on your website and/or see how it’s done: they have a detailed tutorial here.

Jennifer Mourek

Autor: Jennifer Mourek

Jennifer hat sich nach Ihrem Abitur erst einmal die große weite Welt angesehen, ehe es sie für Ihre Ausbildung zur Fachinformatikerin für Anwendungsentwicklung ab September 2016 nach Nürnberg zu NETWAYS verschlagen hat. Die Lieblingsfreizeitaktivitäten der gebürtigen Steigerwalderin sind das Zocken, Zeichnen und sich mit Freunden und Kollegen auf gemütliche Spiele- und Filmabende zu treffen.

Warum veranschaulichen wir?

Jedem fällt wohl auf die Schnelle ein Beispiel ein, wo er in seinem Leben schon mal etwas veranschaulicht hat, ob nun für sich Selbst oder für Andere:

  • Das fängt schon in der Schule an; man hält ein Referat über ein kompliziertes Thema und muss dieses seinen Klassenkameraden verständlich erläutern.
  • Man arbeitet in der Uni an einem Text mit einer schier unermessbarer Tiefe und muss sich selbst veranschaulichen, was da nun eigentlich vorgeht.
  • Oder man ist auf der Arbeit in einer Position in der man neue Kollegen in ein Thema einführen muss, um diese nicht mit der Fülle an Informationen zu erschlagen, zieht man zum Vergleich einen ähnlichen, bereits bekannten Ablauf her.

In meinem praktischen Beispiel habe ich das neue Projekt, dass mein Mitazubi und ich nun zu bearbeiten haben.

Wir schreiben im Moment einen “Parser”, der für uns Informationen aus Übersetzungsdateien von Icinga Web 2 auslesen und in eine sortierte Array-Struktur packen soll.

Diese sind in dem .po Format von Poedit strukturiert.

Das sieht ungefähr so aus:

#: /this/is/the/location/toTranslate.php
#| msgid “tranlsate this”

msgid “Translate this.”
“This too, please”
msgtxt “Übersetze dies.”
“Das auch, bitte”

Diese Datei wird nun sortiert nach den verschiedenen Zeilenanfängen, die bereits anzeigen was der sich dahinter befindende String aussagt.

Die Veranschaulichung zur Lösung ist bei uns eine Art Wasserfall/Trichtersystem:
Die Zeile #| msgid “tranlsate this” würde wie folgt sortiert werden

blogpic

 

Im Code haben wir das mit einer sehr verschachtelten Konstruktion mit einigen Switch-Cases gelöst.
(Und dieses Chaos auch schon längst Grundüberholt)

switches

Dies zeigt auch, dass die Visualisierungen die wir machen um uns das Konzept darzustellen teilweise von der Umsetzung her stark abweichen. Solange es uns jedoch hilft die Übersicht zu bewahren, ist eine visuelle Darstellung immer gut.

In den meisten Fällen führt das Programmieren ohne visuelle Umsetzung dazu, dass der Code ungeordnet ist und man viele Fälle übersieht, die man nachher durch “dirty” Fixes wieder zu richten versucht. Das macht den Code unleserlich und führt dazu, dass die gesamte Arbeit umsonst war, da man den Code komplett neu strukturieren und neu schreiben muss.

Dies zeigt sich auch an unserem Projekt. Wir arbeiten gerade an der zweiten Version des Parsers, da wir das Problem in der ersten Version relativ ungeordnet angegangen sind, da wir fälschlicherweise angenommen hatten, dass so ein “kleines” Progrämmchen keiner größeren Planung bedarf. Oh wie wir uns geirrt haben.

Die jetzige Planung hat sich etwas gedehnt…

parser

Also daran denken: erst planen, dann schreiben.

Jennifer Mourek

Autor: Jennifer Mourek

Jennifer hat sich nach Ihrem Abitur erst einmal die große weite Welt angesehen, ehe es sie für Ihre Ausbildung zur Fachinformatikerin für Anwendungsentwicklung ab September 2016 nach Nürnberg zu NETWAYS verschlagen hat. Die Lieblingsfreizeitaktivitäten der gebürtigen Steigerwalderin sind das Zocken, Zeichnen und sich mit Freunden und Kollegen auf gemütliche Spiele- und Filmabende zu treffen.

NETWAYS als “Neidischmacher”

This entry is part 10 of 11 in the series Azubis erzählen

mw-jmourek

Zuerst möchte ich kurz etwas zu meiner Person erzählen:

Mein Name ist Jennifer “Feu” Mourek, ich bin 19 Jahre alt und vertrete nun die Minderheit der Frauen in der
Development-Abteilung als Junior Developer.
Meine Freizeit verbringe ich zumeist damit mit meinen online Freunden Dota 2 zu zocken, mit meinen “Reallife” Freunden durch die Käffer (Substantiv, pl: Dörfer) zu ziehen oder mich um mein Pferdchen zu kümmern.

Ich habe vor einem Jahr mein Abitur erlangt und habe danach Deutschland mit fliegenden Fahnen hinter mir gelassen, mit dem Ziel Europa zu erkunden…
Letztendlich habe ich dann ein halbes Jahr bei meinem Freund in Holland gewohnt, wo ich die Restzeit bis zur Ausbildung verbracht habe; mit kurzen Unterbrechungen wie um zum Bewerbungsgespräch nach Nürnberg tuckern.
Dort habe ich zu meiner großen Freude eine Stelle bei Netways bekommen und bin wieder permanent nach Deutschland gekommen und zu meinen Eltern zurück in die Bude gezogen (6 Stunden pendeln ist dann doch etwas viel, dann gehen die anderthalb Stunden von Scheinfeld aus schon eher)…

Im Zug treffe ich immer mal wieder auf alte Bekannte die sich auch in einer Ausbildung befinden und -wie man es so macht- haben wir unsere Betriebe verglichen und da ist mir erst so richtig aufgefallen wie gut ich es in der Netways-Family eigentlich habe!

Dort wurde ich direkt herzlichst Empfangen und durfte mit meinem Mitazubi Noah und den “alten Hasen” aus dem Development Team mit auf das Dev-Retreat. Das coolste Wochenende seit langem!
Die Atmosphäre ist super gut, und es wird immer auf ein gutes Arbeitsklima und auf eine freundschaftlich-produktive Atmosphäre geachtet.
Angefangen mit einem Feierabends-Umtrunk am Freitag, LAN-Parties, gemeinsamen Team-Building Wochenenden mit Paintball (!) bis zu dem Dauerbuffet – Kaffeemaschine.

Nach der zweiwöchigen Einarbeitung in Linux/Unix, den Softwaretools, den von uns angebotenen Softwarelösungen und PHP bin ich jetzt sogar in der Lage kleinere Bugs in IcingaWeb2 zu fixen und mich nützlich zu machen 🙂
Es gibt viel zu lernen, aber es tut gut ständig gefordert zu werden und über sich hinauszuwachsen!

Jetzt aber zurück zur Arbeit –
Feu out!

Jennifer Mourek

Autor: Jennifer Mourek

Jennifer hat sich nach Ihrem Abitur erst einmal die große weite Welt angesehen, ehe es sie für Ihre Ausbildung zur Fachinformatikerin für Anwendungsentwicklung ab September 2016 nach Nürnberg zu NETWAYS verschlagen hat. Die Lieblingsfreizeitaktivitäten der gebürtigen Steigerwalderin sind das Zocken, Zeichnen und sich mit Freunden und Kollegen auf gemütliche Spiele- und Filmabende zu treffen.