19bytes
  • Home
  • Karriere
    • DevOps Engineer
    • Software Engineer – Java Backend
  • Über uns
  • Blog
  • Menü Menü
  • Twitter
  • Xing
  • LinkedIn
  • Mail

Personio und AzureAD – Authentifizierung mittels SSO

und wie du die Smartphone-App dazu ans Laufen bekommst

byJoscha Burkholz|18.03.2022|inTools|AzureAD, Personio

Im März 2022 haben wir bei 19bytes Personio als HR-Tool eingeführt. Neben den vielen coolen Features hat uns als Microsoft Partner natürlich auch die Anbindung an AzureAD interessiert.
Welche Möglichkeiten die Integration der beiden Plattformen bietet, wo (aktuell) Grenzen existieren und wie du den Login zu Personio für deine Microsoft-Accounts konfigurierst, erfährst du in diesem Blogpost. 

Unser Weg zu Personio 

Angefangen haben wir wie viele junge (IT-) Unternehmen. Wir haben uns eine eigene Software geschrieben, um Arbeitszeiten bzw. Projektzeiten zu erfassen. Auch die Beantragung von Urlaub oder Abwesenheitszeiten hatten wir auf dem Schirm. Das hat anfangs auch super funktioniert. Als Unternehmen mit drei Leuten gibt es halt nicht so viele Prozesse. Schnell kam aber der Punkt, dass unser Tool mehr abbilden sollte und wir weitere Anforderungen an Reporting und Controlling hatten. Der Aufwand hinter einer solchen maßgeschneiderten Lösung ist enorm. Also haben wir uns dazu entschieden, bei uns bereits eingesetzte Tools zu nutzen. Das ohnehin genutzte Jira von Atlassian war da naheliegend. Wer regelmäßig in IT-Projekten unterwegs ist, kennt wahrscheinlich Jira aus dem Daily Business. Zur Planung anstehender Aufgaben und ggf. auch zur Dokumentation der Arbeitszeit ist das ein tolles Werkzeug. Für Urlaubs- und Krankheit-Tracking möglicherweise auch noch. Zur Beantragung von Urlaub haben wir beispielsweise ganz trivial auf E-Mails gesetzt. Ein beantragter Urlaub wurde in ein Excel-File eingetragen, die Genehmigung per Mail zurückgemeldet und anschließend ebenfalls in Excel in die Personaleinsatzplanung eingetragen. Wenn dann der Urlaub kam, wurden einfach die entsprechenden Stunden auf das jeweilige Urlaubs-Ticket gebucht.
Das ging auch lange gut. Aber mit der steigenden Teamgröße mussten wir feststellen, dass der manuelle Aufwand hinter vielen so einfach aussehenden Prozessen zu groß wird und wir eine Plattform brauchen, die uns genau diese Tätigkeiten abnimmt. Und sobald datenschutzrechtliche Aspekte dazu kommen oder die digitale Personalakte relevant wird, müssen andere Geschütze aufgefahren werden. 

Bei der Suche nach einer neuen HR-Software stießen wir dann auf Personio. Neben der Verwaltung der Mitarbeiter und dem Self-Service für die Kollegen war für uns auch die Integration in bestehende Tools wichtig. Und die bietet Personio. Neben vielen anderen API-Partnern gehört auch die Anbindung von Microsofts AzureAD zum Portfolio. 

AzureAD Anbindung 

Grundsätzlich funktioniert die Anbindung von Personio an Azure relativ einfach. Einmal in Personio angelegte neue Mitarbeiter werden automatisch auch im AzureAD angelegt. Auch die entsprechenden Daten des Kollegen werden übernommen.

Im Blog von Personio findet sich ein Beitrag, wie man die beiden Dienste miteinander verbindet. Also losgelegt: API-Credentials erzeugt, Azure-Tenant kopiert, einmal manuell als Admin bestätigt und es läuft. Alle 30 Minuten aktualisiert Personio automatisch die vorhandenen Mitarbeiter. Gab es eine Änderung (z.B. eine neue Abteilung oder Telefonnummer), taucht diese auch sehr schnell (innerhalb des 30 Minuten Schedules) im AD-Account auf und kann in der Office-365-Welt von anderen genutzt werden.
Auch für neue Mitarbeiter wird automatisch ein neuer Account erstellt und mit den entsprechenden Metadaten gefüttert. Wird der Vertrag eines Mitarbeiters beendet, wird zum Vertragsende auch automatisch der Zugriff auf den AD-Account gesperrt und somit sichergestellt, dass der ausgeschiedene Mitarbeiter mit seinem ehemaligen Account keinen Zugriff mehr auf unternehmensinterne Ressourcen hat. 

So weit, so nett. Nein, um ehrlich zu sein, sehr cool. Schließlich wird damit wieder eine manuelle (und damit fehleranfällige) Tätigkeit eingespart. So können sich alle Beteiligten im Backoffice auf andere Dinge konzentrieren. 

Allerdings ist der Umfang der Integration noch etwas begrenzt. Noch nicht implementiert ist beispielsweise die Synchronisation von Azure Richtung Personio. Will heißen, dass bereits in Azure angelegte Accounts nicht automatisch in Personio angelegt werden. Für uns mit einem knappen Dutzend Mitarbeitern war das kein Problem. Zumal Personio so schlau ist, die E-Mail-Adresse eines Mitarbeiters mit der E-Mail-Adresse des AD-Accounts zu verknüpfen und dadurch automatisch die Zuordnung zu einem bereits vorhandenen Account hergestellt werden kann. Für größere Unternehmen kann das aber durchaus zu Aufwand führen, um die bereits angelegten Azure-Accounts in Personio zu importieren.
Auch schön wäre es, wenn die Rollen in Personio auch an Rollen in Azure gebunden werden könnten. Damit wäre beispielsweise die Zuweisung zu Gruppen möglich, also z.B., um damit den Zugriff auf Teams oder einzelne Spaces in Sharepoint zentral zu steuern. 

Login über Microsoft

Als ITler interessierte mich aber besonders auch der Login zu Personio. Standardmäßig gibt es Nutzer/Passwort je Mitarbeiter, um sich anzumelden. Eine native 2-Faktor-Authentifizierung bringt das Portal leider nicht mit. Ein Unternehmen mit Google-Accounts könnte den Login zwar darüber abbilden, ab das kam für uns nicht infrage. Stattdessen wollten wir unsere Azure-Accounts (Microsoft) direkt verwenden. Und wenn wir einmal angemeldet sind, gerne auch Single-Sign-On nutzen.
Die “Anmelden mit Microsoft”-Funktion wurde aber (zum Zeitpunkt der Veröffentlichung dieses Beitrags) noch nicht integriert.
Aber dann: Personio hat den OAuth2-Flow implementiert. Also wieder losgelegt. Nach einer kurzen Recherche kam sogar ein Blogbeitrag zum Konfigurieren des OAuth-Flows direkt mit Azure zutage. Das funktioniert auch super. Auf der Anmeldeseite zu Personio wird dann “Mit OAuth anmelden” angezeigt und es kann der wohlbekannte Microsoft-Flow genutzt werden. Ebenfalls ist es möglich, den Zugriff der Mitarbeiter über die Personio-Credentials zu deaktivieren und damit eine möglicherweise vorhandene 2-Faktor-Authentifizierung über Microsoft sicherzustellen. Insbesondere in Anbetracht der sensiblen Daten, die in einem HR-Tool liegen, kann und sollte das jeder in Betracht ziehen. 

Konfiguration für die Personio-App 

Zusätzlich zur WebApp bietet Personio noch eine native App für Smartphones an. Das ist natürlich besonders charmant, um vielleicht im Zug, abends auf der Couch oder von wo auch immer mal eben seine Arbeitszeiten einzutragen, noch vorhandenen Urlaub zu checken oder sich einen Überblick zu verschaffen, welcher der Teamkollegen denn heute eigentlich da ist. 

Redirect URI für die App fehlte

Und dann das böse Erwachen. Der Login über OAuth öffnet auf dem Smartphone den Browser, um den Microsoft-Flow zu starten. Nachdem das Passwort eingegeben wurde und der Login in einem eventuellen Authenticator bestätigt wurde, kommt nur die Fehlermeldung, dass die übermittelte Redirect-URL nicht der konfiguriertem URL entspricht. Großes Rätselraten. Zum Veröffentlichungszeitpunkt dieses Artikels war leider auch keine Google-Suche dazu hilfreich.
Als Softwareentwickler mit Know-How in des OAuth-Flows wissen wir uns aber zu helfen. Der Client (in diesem Fall die App, bzw. der Browser) sendet die URL mit, an die der autorisierende Server den Nutzer nach erfolgreichem Login zusammen mit den sensiblen Login Daten (i.d.R Tokens) weiterleiten soll. Offenbar scheint aber die App eine andere Redirect-URL zu haben als die, die im o.g. Einrichtungsprozess konfiguriert wurde.

Schaut man sich die URL an, die die App im Browser geöffnet hat, stellt man fest, dass als ein Query Parameter “redirect_url” mitgegeben wird. Und siehe da: Die konfigurierte URL für den Zugriff über die WebApp ist eine andere als die von der App mitgegebene. Und die Lösung ist somit ziemlich simpel: Einfach in der App Registration in Azure folgenden weiteren Redirect Endpunkt eintragen:

https://auth.personio.de/providers/oauth/callback

Dann klappts auch mit den Cloud-Nachbarn und die Mitarbeiter können Sie in der Personio-App über Azure einloggen. 

Hat dir der Artikel gefallen?

Dann teile ihn gerne!

  • Teilen auf Facebook
  • Teilen auf Twitter
  • Teilen auf LinkedIn
  • Per E-Mail teilen

Über den Author

Joscha Burkholz

Joscha ist Gründer und Geschäftsführer von 19bytes und hat sich auf DevOps und Spring Boot spezialisiert. Neben der Softwareentwicklung und Automatisierung von Infrastruktur kümmert er sich um Organisatorisches bei 19bytes und treibt die Themen Mitarbeiterentwicklung und New Work voran.

Weitere Artikel

Frau am Macbook

IT-Consulting als Software Engineer – Wie sieht so ein Arbeitsalltag als „Externer“ in IT-Projekten eigentlich aus?

Agile, Entwicklung
0 Kommentare
/
29.11.2022
https://19bytes.de/wp-content/uploads/2022/11/computer-1185626_1920.jpg 1280 1920 Philipp Haltermann https://19bytes.de/wp-content/uploads/2021/01/logo-wordpress-1-1500x426.png Philipp Haltermann2022-11-29 07:27:472023-01-27 09:44:58IT-Consulting als Software Engineer – Wie sieht so ein Arbeitsalltag als „Externer“ in IT-Projekten eigentlich aus?

Homeoffice und Remote Work – Tipps & Tricks

Allgemein
0 Kommentare
/
14.11.2022
https://19bytes.de/wp-content/uploads/2022/11/Tipps.png 788 940 Jana Bayrami Alwandi https://19bytes.de/wp-content/uploads/2021/01/logo-wordpress-1-1500x426.png Jana Bayrami Alwandi2022-11-14 10:00:002022-11-14 09:35:20Homeoffice und Remote Work – Tipps & Tricks

INSIDE 19bytes – ein Blick hinter die Kulissen

Allgemein
0 Kommentare
/
08.09.2022
https://19bytes.de/wp-content/uploads/2022/09/Foto_Blogbeitrag_Janamini.png 708 1200 Jana Bayrami Alwandi https://19bytes.de/wp-content/uploads/2021/01/logo-wordpress-1-1500x426.png Jana Bayrami Alwandi2022-09-08 10:28:002022-09-08 11:37:48INSIDE 19bytes – ein Blick hinter die Kulissen

Wie ist deine Meinung zu dem Thema?

2 Kommentare
  1. BT
    BT sagte:
    16.01.2023 um 16:30

    Hi Joscha, danke für die interessante Einsicht in euren Implementierungsprozess. Wir als Unternehmen mit knapp 1000 Personen haben genau das Problem mit der fehlenden Richtung von Azure nach Personio sowie dem Rollenkonzept. Man kann nur hoffen, dass Personio in ein paar Disziplinen noch ordentlich nachgelegt, um langfristig auch für mittelgroße Unternehmen attraktiv zu werden. ;)

    Antworten
    • Joscha Burkholz
      Joscha Burkholz sagte:
      16.01.2023 um 16:46

      Hallo BT,

      vielen Dank für deinen Kommentar. Tatsächlich merkt man bei Personio, dass die als Startup gestartet sind und sehr agil mit Features live gehen. Find ich einerseits gut. Nur dadurch reduziert man seine Time-to-Market, bekommt frühes Feedback und baut auch das, was der Kunde wirklich braucht.
      Dass am Ende ein paar Prozesse (insbesondere bei Unternehmen eurer Größe) nicht abgebildet werden können ist schade, liegt aber irgendwie auch in der Natur der Sache. Seid ihr mit dem Support von Personio im Kontakt, um eure Wunschliste einzubringen?

      Antworten

Hinterlasse einen Kommentar

An der Diskussion beteiligen?
Hinterlasse uns deinen Kommentar!

Schreibe einen Kommentar Antworten abbrechen

Deine E-Mail-Adresse wird nicht veröffentlicht.

Standort

Kohlenweg 1
44147 Dortmund

+49 (0) 175 22 77 781
info@19bytes.de

Neueste Blogposts

  • IT-Consulting als Software Engineer – Wie sieht so ein Arbeitsalltag als „Externer“ in IT-Projekten eigentlich aus? 29.11.2022
  • Homeoffice und Remote Work – Tipps & Tricks 14.11.2022
  • INSIDE 19bytes – ein Blick hinter die Kulissen 08.09.2022

Öffnungszeiten

Mo-Fr: 9:00 – 17:00

19bytes GmbH © 2018 - 2022
  • Twitter
  • Xing
  • LinkedIn
  • Mail
  • Impressum
  • Datenschutzerklärung
Professional Scrum Master I Zertifizierung – Ein Erfahrungsbericht sowie ... SonarQube, Sonarlint, Actions on Save und IntelliJ – setup your IntelliJ ...
Nach oben scrollen

Diese Seite verwendet Cookies. Durch die Nutzung erklären Sie sich damit einverstanden.

Alle auswählenAuswahl akzeptierenEinstellungen

Cookie and Privacy Settings



How we use cookies

We may request cookies to be set on your device. We use cookies to let us know when you visit our websites, how you interact with us, to enrich your user experience, and to customize your relationship with our website.

Click on the different category headings to find out more. You can also change some of your preferences. Note that blocking some types of cookies may impact your experience on our websites and the services we are able to offer.

Essential Website Cookies

These cookies are strictly necessary to provide you with services available through our website and to use some of its features.

Because these cookies are strictly necessary to deliver the website, refuseing them will have impact how our site functions. You always can block or delete cookies by changing your browser settings and force blocking all cookies on this website. But this will always prompt you to accept/refuse cookies when revisiting our site.

We fully respect if you want to refuse cookies but to avoid asking you again and again kindly allow us to store a cookie for that. You are free to opt out any time or opt in for other cookies to get a better experience. If you refuse cookies we will remove all set cookies in our domain.

We provide you with a list of stored cookies on your computer in our domain so you can check what we stored. Due to security reasons we are not able to show or modify cookies from other domains. You can check these in your browser security settings.

Google Analytics Cookies

These cookies collect information that is used either in aggregate form to help us understand how our website is being used or how effective our marketing campaigns are, or to help us customize our website and application for you in order to enhance your experience.

If you do not want that we track your visit to our site you can disable tracking in your browser here:

Privacy Policy

You can read about our cookies and privacy settings in detail on our Privacy Policy Page.

Datenschutzerklärung
Alle Einstellungen akzeptierenAktuelle Auswahl akzeptieren