Hinweise für die Authentifizierung über Azure Active Directory (Connect 2024)

Der Connect Server beinhaltet eine eigenständige Benutzerverwaltung auf Basis des Microsoft Identity Frameworks. Diese kann bei Bedarf deaktiviert und durch eine Authentifizierung mittels Azure Active Directory ersetzt werden. Die hierfür notwendigen Schritte zur Konfiguration werden im Folgenden grob umrissen. Die Konfiguration solle unbedingt durch eine Person mit Erfahrung in den Bereichen Azure Active Directory und Authentifizierung über OIDC durchgeführt werden, um eventuelle Sicherheitslücken aufgrund von Konfigurationsfehlern auszuschließen.

Voraussetzungen

Für die Einrichtung benötigen Sie einen Azure AD Mandanten (Tenant). Sofern dieser noch nicht vorhanden ist, folgen Sie bitte den Schritten des Dokuments https://docs.microsoft.com/de-de/azure/active-directory/develop/quickstart-create-new-tenant. Außerdem muss der Connect Server vollständig installiert und für den Zugriff über HTTPS konfiguriert sein.

Vorbereitungen

Registrieren des Connect Servers

  1. Melden Sie sich beim Azure Portal an (https://portal.azure.com) und navigieren Sie zum Dienst Azure Active Directory.

  2. Wählen Sie den Unterpunkt “App registrations” aus und klicken Sie auf “New registration”.

  3. Geben sie einen Namen (z. B. “Connect Server AAD”) ein und wählen Sie die Kontentypen aus, die sich am Connect Server anmelden können (z. B. nur Konten der eigenen Organisation). Das Feld Redirect URI kann leer bleiben, es wird in einem späteren Konfigurationsschritt ergänzt. Sofern Ihre Domäne nicht als Publisher verifiziert wurde, deaktivieren Sie die Checkbox “Permissions → Grant admin consent to openid and offline_access permission” - andernfalls wird diese Checkbox nicht angezeigt. Klicken Sie nun auf die Schaltfläche “Register”, um die neue App im Azure AD zu registrieren.

  4. Nun werden einige Informationen der neu registrierten App angezeigt (im folgenden Screenshot durch xxx… unkenntlich gemacht). Kopieren Sie die Werte für die Felder “Display name“, “Application (client) ID” und “Directory (tenant) ID” oder drucken Sie diese aus. Diese Werte werden für spätere Konfigurationsschritte benötigt.

  5. Navigieren Sie nun in den Bereich “Manage → Branding & Properties” und kopieren Sie die dort unter “Publisher Domain” angezeigte Domäne oder drucken Sie diese Informationen aus. Auch dieser Wert wird für spätere Konfigurationsschritte benötigt.

  6. Wechseln Sie nun in den Bereich “Expose an API” und klicken Sie auf “Add a scope”. Es erscheint ein neuer Bereich mit einem Vorschlag für die URI des neu angelegten Scopes. Klicken Sie auf die Schaltfläche “Save and continue“ um fortzufahren.

  7. Vervollständigen Sie nun die fehlenden Informationen wie im folgenden Screenshot. Kopieren Sie den Scope-Namen (hier: “API.Access”) sowie die darunter angezeigte URI oder drucken Sie die Informationen aus. Diese Werte wird für spätere Konfigurationsschritte benötigt. Klicken Sie auf die Schaltfläche “Add scope”, um die Änderungen zu sichern.

  8. Wechseln Sie nun in den Abschnitt “Authentication“ und klicken Sie im Bereich “Platform configurations“ auf die Schaltfläche “Add a platform”. Daraufhin wird auf der rechten Seite die Auswahl der verfügbaren Plattformen angezeigt. Klicken Sie hier auf “Web”.

  9. Geben Sie im Feld “Redirect URIs” den Wert “https://localhost/authentication/oidc/signin“ ein (sollten Sie für HTTPS nicht den Standard-Port 443 verwenden, so ergänzen Sie die Port-Angabe). Geben Sie im Feld “Front-channel logout URL“ den Wert “https://localhost/authentication/oidc/signout“ ein (sollten Sie für HTTPS nicht den Standard-Port 443 verwenden, so ergänzen Sie die Port-Angabe). Stellen Sie sicher, dass im Bereich “Implicit grant and hybrid flows” die Checkboxen “Access tokens” nicht aktiviert ist. Aktivieren Sie anschließend die Checkbox “ID Tokens“. Klicken Sie anschließend auf die Schaltfläche “Configure”.

  10. Klicken Sie nun im Bereich “Redirect URIs” auf die Schaltfläche “Add URI” und erfassen Sie alle weiteren URIs unter denen die Connect Server Installation erreicht werden kann. Ergänzen Sie hierbei sämtliche URIs um den Pfad “/authentication/oidc/signin“. Sofern die Connect Server Installation vom Internet aus erreichbar ist, ersetzen Sie in unter “Front-channel logout URL” den URI-Teil “https://localhost“ (ggf. inkl. Portangabe) durch den tatsächlich vom Internet aus sichtbaren Hostnamen und Port. Klicken Sie auf die Schaltfläche “Save“, um die Änderungen zu speichern.

  11. Wechseln sie nun in den Bereich “App roles” und legen Sie mit Hilfe der Schaltfläche “Create app role” die in untenstehender Tabelle aufgelisteten Rollen an. Die Rollenliste sollte am Ende folgendermaßen aussehen:

Rollendefinitionen für den Connect Server

Die folgende Tabelle enthält eine Liste der vom Connect Server unterstützten Rollen.

Display Name

Type

Value

Description

Administrator

Users/Groups

Administrator

A Connect Server Administrator with unrestricted access.

Connection Administrator

Users/Groups

ConnectionAdministrator

A user with the authorization to create, change and delete connections.

Database Administrator

Users/Groups

DatabaseAdministrator

A user with the authorization to perform database management tasks.

Flow Administrator

Users/Groups

FlowAdministrator

A user with the authorization to create, change and delete flows.

Monitoring Administrator

Users/Groups

MonitoringAdministrator

A user with the authorization to monitor, modify, restart, and delete tasks.

Monitoring User

Users/Groups

MonitoringUser

A user with the authorization to monitor tasks.

Service Administrator

Users/Groups

ServiceAdministrator

A user with the authorization to create, change and delete service definitions.

Registrieren des Connect Server Frontends

  1. Melden Sie sich beim Azure Portal an (https://portal.azure.com ) und navigieren Sie zum Dienst Azure Active Directory.

  2. Wählen Sie den Unterpunkt “App registrations” aus und klicken Sie auf “New registration”.

  3. Geben sie einen Namen (z. B. “Connect Server Frontend AAD”) ein und wählen Sie die Kontentypen aus, die sich am Connect Server anmelden können (z. B. nur Konten der eigenen Organisation). Das Feld Redirect URI kann leer bleiben, es wird in einem späteren Konfigurationsschritt ergänzt. Sofern Ihre Domäne nicht als Publisher verifiziert wurde, deaktivieren Sie die Checkbox “Permissions → Grant admin consent to openid and offline_access permission” - andernfalls wird diese Checkbox nicht angezeigt. Klicken Sie nun auf die Schaltfläche “Register”, um die neue App im Azure AD zu registrieren.

  4. Nun werden einige Informationen der neu registrierten App angezeigt (im folgenden Screenshot durch xxx… unkenntlich gemacht). Kopieren Sie die Werte für die Felder “Display name“ und “Application (client) ID” oder drucken Sie diese aus. Diese Werte werden für spätere Konfigurationsschritte benötigt.

  5. Wechseln Sie nun in den Abschnitt “Authentication“ und klicken Sie im Bereich “Platform configurations“ auf die Schaltfläche “Add a platform”. Daraufhin wird auf der rechten Seite die Auswahl der verfügbaren Plattformen angezeigt. Klicken Sie hier auf “Single-page application”.

  6. Geben Sie im Feld “Redirect URIs” den Wert “https://localhost/authentication/login-callback“ ein (sollten Sie für HTTPS nicht den Standard-Port 443 verwenden, so ergänzen Sie die Port-Angabe). Stellen Sie sicher, dass im Bereich “Implicit grant and hybrid flows” die Checkboxen “Access tokens” und “ID tokens” nicht aktiviert sind. Klicken Sie anschließend auf die Schaltfläche “Configure”.

  7. Klicken Sie nun im Bereich “Redirect URIs” auf die Schaltfläche “Add URI” und erfassen Sie alle weiteren URIs unter denen die Connect Server Installation erreicht werden kann. Ergänzen Sie hierbei sämtliche URIs um den Pfad “/authentication/login-callback“. Klicken Sie auf die Schaltfläche “Save“, um die Änderungen zu speichern.

  8. Wechseln Sie nun in den Bereich “API permissions”. Die Berechtigung “User.Read” sollte4 in der Übersicht der vorhandenen Berechtigungen bereits eingetragen sein. Sollte die nicht der Falls sein, dann ergänzen Sie diese. Klicken Sie nun auf die Schaltfläche “Add permission” und klicken Sie am oberen Bildrand auf “My APIs”. In der App-Liste sollte nun ein Eintrag für den oben als App registrierten Connect Server angezeigt werden. Klicken Sie nun auf diesen Eintrag.

  9. Markieren Sie nun die zuvor angelegte Berechtigung “Access.API” und klicken Sie auf die Schaltfläche “Add permissions”.

  10. Klicken Sie nun auf die Schaltfläche “Grant admin consent” um die neu zugeordnete Berechtigung zu genehmigen.

  11. Bestätigen Sie die Genehmigung durch einen Klick auf die Schaltfläche “Yes”.

  12. Überprüfen Sie, dass die nun konfigurierten Berechtigungen wie folgt aussehen:

  13. Wechseln sie nun in den Bereich “App roles” und legen Sie mit Hilfe der Schaltfläche “Create app role” die in untenstehender Tabelle aufgelisteten Rollen an. Die Rollenliste sollte am Ende folgendermaßen aussehen:

Rollendefinitionen für den Connect Server Frontend

Die folgende Tabelle enthält eine Liste der vom Connect Server Frontend unterstützten Rollen.

Display Name

Type

Value

Description

Administrator

Users/Groups

Administrator

A Connect Server Administrator with unrestricted access.

Connection Administrator

Users/Groups

ConnectionAdministrator

A user with the authorization to create, change and delete connections.

Database Administrator

Users/Groups

DatabaseAdministrator

A user with the authorization to perform database management tasks.

Flow Administrator

Users/Groups

FlowAdministrator

A user with the authorization to create, change and delete flows.

Monitoring Administrator

Users/Groups

MonitoringAdministrator

A user with the authorization to monitor, modify, restart, and delete tasks.

Monitoring User

Users/Groups

MonitoringUser

A user with the authorization to monitor tasks.

Service Administrator

Users/Groups

ServiceAdministrator

A user with the authorization to create, change and delete service definitions.

Konfigurieren des Connect Servers

In de Konfigurationsdatei des Connect Servers (normalerweise “appsettings.json”) muss folgender Block ergänzt werden:

Die einzelnen Werte haben folgende Bedeutung:

Name

Beschreibung

Security.Identity.AzureAd.Common.Instance

Die Basis-URI der zu verwendenden Azure AD-Instanz. In der Regel muss hier der Wert “https://login.microsoftonline.com/“ stehen.

Security.Identity.AzureAd.Common.Domain

Der Name der Domäne deren Benutzer sich anmelden dürfen (z. B. “galileo-group.de” oder “mycompany.com”).

Security.Identity.AzureAd.Common.TenantId

Die Tenant ID des zugehörigen Microsoft Tenants. Diese wurde in den Schritten zur Azure AD Konfiguration ermittelt.

Security.Identity.AzureAd.Backend.ClientId

Die Client ID der im Azure AD registrierten App für den Connect Server.

Security.Identity.AzureAd.Backend.Audience

Die URI des bei der Azure AD Konfiguration angelegten Scopes ohne “/API.Access”.

Security.Identity.AzureAd.Frontend.ClientId

Die Client ID der im Azure AD registrierten App für das Connect Server Frontend.

Security.Identity.AzureAd.Frontend.Scope

Die URI des bei der Azure AD Konfiguration angelegten Scopes.

Nach dem Ändern der Konfiguration wird eine angepasste Version der Startseite für die WebAssembly-basierte GUI generiert, welche andere JavaScript-Bibliotheken referenziert. Da der Browser beim nächsten Aufruf evtl. eine alte Version dieser Seite aus dem Browser-Cache verwendet, kann dies zu Fehlern bei der Ausführung von JavaScript-Code führen. Erzwingen Sie in diesem Fall die Aktualisierung der zwischengespeicherten Seite, indem sie die Shift Taste gedrückt halten, während Sie im Browser auf die Schaltfläche zur Aktualisierung der Seite klicken.

Verwendung von Basic Authentication für Connections

Sollen einzelne Connection über den Server Handler HttpBasicAuthenticationHandler mit einer Authentifizierung versehen werden, so sind bei der Verwendung von Azure AD einige Dinge zu beachten:

  1. Die App Registrierung für die Server Applikation muss dahingehend angepasst werden, dass eine Anmeldung mittels Benutzer und Passwort möglich ist. Aktivieren Sie hierfür unter Authentifizierung → Erweiterte Einstellungen die Option “Öffentliche Clientflows zulassen”.

  2. Für den verwendeten Benutzer darf die Zwei-Faktor-Authentifizierung nicht aktiv sein, da diese eine Anmeldung mittels Benutzername und Passwort verhindert.

  3. Der verwendete Benutzer muss sich bereits mindestens einmal erfolgreich am Backend des Connect Servers (URI …/server) angemeldet und den angeforderten Berechtigungen zugestimmt haben.

  4. Derzeit wird lediglich die Kombination von Benutzer und Passwort hinsichtlich Gültigkeit geprüft. Die Anforderung spezifischer Scopes wird ggf. in späteren Versionen des Connect Servers ermöglicht.

Insbesondere bei einem öffentlich erreichbaren Connect Server stellen die oben beschriebenen Konfigurationsänderungen eine Schwächung der Sicherheit dar, weshalb Risiko und Nutzen dieses Szenarios sorgfältig gegeneinander abgewogen werden sollten.