Home — Zeiterfassung — KB0602: Azure „App-Registrierung“ für OAuth.

KB0602: Azure „App-Registrierung“ für OAuth.

EINLEITUNG

Zugriffe auf Webdienste über Benutzername (Login) und Passwort sind sicherheitstechnisch suboptimal, da wer einmal im Besitz dieser Daten ist, sich jederzeit und überall am Dienst anmelden kann. Neuere Ansätze setzen auf Multifaktor Authentifizierungen, z.B. SMS-Verifikation, Authenticator-Apps, etc…  Dies funktioniert jedoch für automatisierte Zugriffe im Hintergrund schlecht, da keine reale Person hinter dem Zugriff steht. 

Bisher musste man einen technischen User erstellen und ihm weitreichende Zugriffe gewähren, damit TimeSafe die entsprechenden Kalender lesen und schreiben oder E-Mails versenden konnte.

Ab Version 22.0.1 können die Zugriffe auf Exchange nun über eine sogenannte „App-Registrierung“ abgesichert werden. Die Vorteile sind:

  • Sicherheitsmerkmale sind im Rechner gespeichert und nicht in einer Konfiguration der Anwendung.
  • Berechtigungen können für diese App-Registrierung vergeben werden. Es ist nicht notwendig, den User in jedem Kalender zu berechtigen.   

Ab Version 26.1.0 wird der Exchange-Kalender-Abgleich via Microsoft Graph über folgende „Exchange-Service URL“ unterstützt: https://outlook.office365.com

Ab der Version 25.3.0 können auch E-Mails via „App-Registrierung“ versendet werden, was die Sicherheit erhöht und weiterhin die Verwendung eines O365-Accounts für den Mailversand nach der Abschaltung von SMTP AUTH durch Microsoft ermöglicht.

FUNKTIONSWEISE

Die Funktionsweise im Überblick. Eine detaillierte Anleitung folgt weiter unten. 

Im Azure-Portal wird eine App-Registrierung erzeugt:

  • Diese erhält eine Anwendungs-ID (Client-ID) sowie eine Verzeichnis-ID (Mandant-ID, Tenant-ID) über die die Registrierung identifiziert wird.
  • Dieser Registrierung werden API-Berechtigungen zugewiesen. 
  • Der Zugriff wird über das Client-Zertifikat von TimeSafe hergestellt. 

In TimeSafe wird der Exchange-Abgleich oder der Mailversand entsprechend konfiguriert:

  • Client-ID und Tenant-ID müssen aus dem Azure-Portal übernommen werden.
  • Der Abgleichdienst erzeugt ein Zertifikat und speichert sich den privaten Schlüssel im Zertifikatsspeicher des Servers. 

Dieser Lösungsansatz bietet maximale Sicherheit bei minimalem Konfigurationsaufwand.

Da der private Sicherheitsschlüssel nicht exportiert werden kann, muss bei jedem Umzug des Abgleichdienstes auf einen anderen Server ein neues Zertifikat erzeugt werden.

APP-REGISTRIERUNG EINRICHTEN

  1. TimeSafe Zeiterfassung – Einstellungen aufrufen.
  2. Unter „Exchange-Abgleich“ Exchange Sicherheit „API-Zugriff“ auswählen.
    Oder für den Mailversand unter „Mailversand“ Mailversand über „Microsoft 365 (Exchange Online)“ wählen.
  3. Falls das Feld „API Zertifikat (Fingerbadruck)“ leer ist:
    Falls der Abgleich über den Web-Client läuft, stellen Sie sicher das Option „Benutzerprofil laden“ auf dem Anwendungspool des Web-Clients aktiviert ist.
    Drücken Sie links den Menüpunkt „Einstellungen“ und danach „Protokoll“.
    Aktualisieren Sie das Protokoll bis Sie eine „Allgemeine Information“ sehen mit „Neues Zertifikat erstellt“.
    Drücken sie wieder auf „Einstellungen“. Nun sollte das Feld Zertifikat sichtbar sein.
  4. Exportieren Sie das Zertifikat in eine Datei. 
  5. Azure-Portal aufrufen: Azure Active Directory Admin Center
  6. „+ Neue Registrierung“ drücken
  7. Name z.B. „TimeSafe Zeiterfassung“ vergeben und „Registrieren“ drücken.
  8. Kopieren Sie die „Anwendungs-ID (Client)“ sowie „Verzeichnis-ID (Mandant)“ in die entsprechenden Felder der TimeSafe – Konfiguration.
  9. Unter „Zertifikate & Geheimnisse“ laden Sie das exportierte Zertifikat von TimeSafe hoch.
  10. Unter „API-Berechtigungen“ „+ Berechtigung hinzufügen“.
    • Für den Exchange-Abgleich:
      „Microsoft Graph“ und danach „Anwendungsberechtigung“ wählen.
      Suchen Sie nach „Calendars.ReadWrite“ und wählen Sie die Berechtigung „Calendars.ReadWrite (Read and write calendars in all mailboxes)“ aus.
      Suchen Sie anschliessend nach „User.Read“ und wählen Sie „User.Read (Anmelden und Benutzerprofil lesen)“ aus.
      Suchen Sie danach nach„User.Read.All“ und wählen Sie „User.Read.All (Read all users‘ full profiles)“ aus.

      Benötigte Berechtigungen für MS Graph
    • Für den Mailversand:
      „Microsoft Graph“ und danach „Anwendungsberechtigung“ wählen.
      Nach „Mail.Send“ suchen und „Mail .Send (Send mail as any user)“ selektieren.
  11. Drücken Sie „Administratorzustimmung für … erteilen“. Evtl. muss diese durch Ihren Azure-Administrator erteilt werden.

Kontrollieren Sie das TimeSafe-Protokoll um Fehler und Probleme zu analysieren.

Änderungen im Azure-Portal benötigen hin und wieder einige Zeit bis sie wirksam werden.