Einrichtung Azure AD-Anmeldung - ACS - Finance 2025.2

Einrichtung Azure AD-Anmeldung - ACS - Finance 2025.2

Vorwort

Azure Active Directory ist jetzt Microsoft Entra-ID.
Zur Vereinfachung sprechen wir im folgenden Text von AAD für Azure Active Directory.

Mit Finance 2023.1 führten wir die ACS-Anmeldemethode ein, also die Anmeldung über das AAD. Um gewisse neue Funktionen von Microsoft zu nutzen, muss der Schritt zu dieser Anmeldemethode gegangen werden.

Wir verlinken hier direkt auf die jeweiligen Anleitungen von Microsoft. Wir gehen nur auf spezifische Sachverhalte ein, die entweder besonders aufgefallen sind oder in der NEVARIS-Umgebung anders sind.

Auch wenn in den Microsoft-Anleitungen von PowerBI etc. gesprochen wird. Wir unterstützen diese Funktionen mit der Azure-Anmeldung explizit nicht. Wir bitten Sie, das zu beachten. Wir zählen hier konkret auf, was unterstützt wird:

  • Die Anmeldung der Benutzer mit ACS (Azure AD-Anmeldung)

  • Nutzung der Email-Funktionen von Business Central (Email-Versand über Office 365 Exchange Online etc.) - keine Nutzung des Outlook-AddIns

  • Nutzung von Universal Print

  • Nutzung von PowerBI

Voraussetzungen

Voraussetzung ist, dass Sie als Kunde Ihr lokales Active Directory bereits mit dem AAD verbunden haben und Ihre Benutzer, die Business Central nutzen sollen, in das AAD synchronisiert sind. Heißt, Sie müssen eine Zahlungsmethode hinterlegt haben, einen Azure AD-Tenant besitzen etc., um die Services zu nutzen.

Informieren Sie sich bitte direkt bei Microsoft, was dazu nötig ist. Weitere Informationen dazu finden Sie hier: https://learn.microsoft.com/de-de/azure/active-directory/hybrid/how-to-connect-sync-whatis  

Es müssen einige Einrichtungsschritte von einem Azure-Administrator ausgeführt werden. Bitte gehen Sie sicher, dass Sie die nötigen Berechtigungen dazu besitzen.

Infos zu der ACS-Anmeldemethode (Azure AD)

Zugrunde liegt folgende Anleitung:

https://learn.microsoft.com/en-us/dynamics365/business-central/dev-itpro/administration/authenticating-users-with-azure-ad-openid-connect

Microsoft kündigte WS-Federation zugunsten von OpenID Connect ab. Deswegen muss diesem Leitfaden gefolgt werden.

Wie Microsoft richtig schreibt, kann man die ganze Umsetzung (heißt Verschlüsselung zwischen Mittelschicht und WebServer, SSL-Zertifikat für den WebClient) mit selbst-signierten Zertifikaten erledigen, die zum Beispiel auf einem Domänen-Controller mit Zertifikatsdiensten erstellt werden und anschließend den nötigen Clients bekannt gemacht werden.

Oder es werden von einer entsprechenden Authentifizierungsstelle Zertifikate mit den jeweiligen DNS-Namen gekauft. Bitte wählen Sie die Möglichkeit, die für Sie und Ihre Umgebung am besten passt.

Ab hier verweisen wir auf den Punkt:

Skript zur automatischen Konfiguration von Azure App-Registrierungen, Konfiguration von Web- und Mittelschichtsserver

Alle manuellen Schritte zur Anlage von Azure App-Registrierungen / Konfiguration der Mittelschicht- oder WebserverInstanz entfallen!
Die noch nötigen Schritte werden unter diesem Punkt deutlich.

Trotzdem bleiben die bisherigen Schritte erhalten, weil sie gut als Grundlage und zum Verstehen der Thematik dienen.

Lesen Sie bei Unklarheiten trotzdem einmal die ausgeblendete Anleitung, schauen Sie auf die Links von Microsoft.

 

 

Preparation und Task 1: Create an Azure AD Tenant

Microsoft geht in "Preparation" und "Task 1" darauf ein, welche Voraussetzungen bereits erfüllt sein müssen. Diese wurden hier bereits auch kurz angeschnitten.

Unter anderem müssen Zertifikate bei dem Mittelschichtsserver und dem Web Server hinterlegt und konfiguriert werden:

https://learn.microsoft.com/en-us/dynamics365/business-central/dev-itpro/deployment/implement-security-certificates-production-environment

Anmerkungen von unserer Seite (generelle Übersicht Instanzkonfiguration)

https://learn.microsoft.com/en-us/dynamics365/business-central/dev-itpro/administration/configure-server-instance

___________________________________________________________________________________________________________________________________

In der Business Central Administration müssen folgende Einstellungen gemacht werden:

General: 

Den Credential-Type bitte erst ändern, wenn alle Einstellungen für AzureAD in der Business Central Administration ordnungsgemäß eingefügt worden sind (Application ID , Valid Audiences etc.) Siehe: Task 4 und 5: Configure Business Central Server and WebServer

Disable Token-Signing Certificate Validation muss aktiviert werden, laut Microsoft.

Microsoft

Disable token signing certificate validation when configuring Azure Active Directory authentication with single sign-on.

Der Thumbprint des Zertifikats kann aus der Zertifikatsverwaltung entnommen werden. Leer- und Sonderzeichen müssen entfernt werden. Es muss unter den Vertrauenswürdigen Stammzertifizierungsstellen zu finden sein! Siehe Anleitung, Implement-Security-Certificates-Production-Environment

Den "Protection Level" unter "Client Services" auf "EncryptAndSign" stellen. Ebenso bei der Web Server-Instanz: "ClientServicesProtectionLevel":  "EncryptAndSign"

Wie man später SSL beim WebServer konfiguriert (dringend notwendig!), kann man hier nachlesen:

https://learn.microsoft.com/en-us/dynamics365/business-central/dev-itpro/deployment/configure-ssl-web-client-connection

Einrichten eines SSL-Zertifikates unter dem Port 443 für den Webserver einer Finance-Installation 2025.1

Task 2: Register an application in the Azure AD tenant

Die Kommunikation von BusinessCentral mit dem Azure AD funktioniert in Azure über sogenannte "Applications".

Heißt: Eine Application für die eigentliche Azure AD-Anmeldung, eine für das Excel-AddIn und eine für die Exchange Online Office365-Funktionalität.

Man legt die Application wie Microsoft es beschreibt an, hier ein paar Beispiel-Screenshots (dienen lediglich als Unterstützung, es können jederzeit Änderungen von Microsoft vorgenommen werden):

Die Redirect URI ist die Webserver-Instanz mit eingerichteter SSL-Verbindung. Zum Beispiel: https://NAMEDESWEBSERVERS/WEBSERVERINSTANZ/SignIn

Bitte genau die Groß- und Kleinschreibung der Webserver-Instanz etc. beachten.

Nachdem die "Application" erstellt ist, muss noch eine "Application ID URI" erstellt werden:

Ansonsten bitte weiter den Microsoft-Leitfaden verfolgen.

Task 3: Associate Azure AD Users with Business Central Users

Microsoft empfiehlt hier die Authentifizierungs-Mail der Business Central-User anzupassen. Dies sollte man unter der Windows-Anmeldemethode zumindest für den Admin-Account vorher eintragen. Ansonsten kann man sich nach dem Umstellen auf die "ACS"-Anmeldemethode nicht mehr anmelden. Natürlich ist es auch möglich, eine 2. Instanz (Mittelschicht- und Webinstanz) für die ACS-Anmeldemethode anzulegen.

Diese kann man aus dem Azure-Portal unter "Users" unter "User Principal name" zu dem jeweiligen Nutzer herausfinden. Voraussetzung ist wie gesagt ein konfiguriertes Azure AD; eventuell sogar mit Office 365 Exchange Online, um die Mail-Funktionen zu nutzen.

Task 4 und 5: Configure Business Central Server and Web Server

Nun geht es darum, die Business Central-Mittelschicht zu konfigurieren.

Alle Informationen, die man dazu benötigt, stehen in der Azure AD Application-Übersicht. Hier ein Beispiel dazu:

Wir empfehlen, die Einstellungen über die PowerShell vorzunehmen. Mit einem späteren Update wird Microsoft die "Business Central Administration" entfernen.

Punkte im Web Server als Unterstützung (unter C:\wwwroot\inetpub\{NamederInstanz}, die navsettings.json):

Hier die Azure AD-Einstellungen in der Business Central Administration:

More Security and configuration tips

Microsoft empfiehlt die access token lifetime auf 10 Minuten zu stellen.

Infos zu den Email-Einstellungen in Verbindung mit Azure AD

https://learn.microsoft.com/de-de/dynamics365/business-central/admin-how-setup-email#setting-up-email-for-business-central-on-premises

Eine App-Registrierung für Business Central im Azure-Portal erstellen

Beim Erstellen des Secrets unbedingt den Value notieren, diesen kann man danach nicht mehr sichtbar machen!

Business Central mit Ihrer App-Registrierung verbinden

Infos zu Universal Print in Verbindung mit Azure AD

https://learn.microsoft.com/de-de/dynamics365/business-central/admin-printer-setup-universal-print

https://learn.microsoft.com/de-de/universal-print/fundamentals/universal-print-connector-installation

https://learn.microsoft.com/de-de/universal-print/fundamentals/universal-print-getting-started

Authorize Azure Services

https://learn.microsoft.com/de-de/dynamics365/business-central/admin-printer-setup-universal-print#erstmaliges-herstellen-einer-verbindung-mit-universal-print

Es kann sein, dass dieser Punkt nicht funktioniert und die Schaltfläche: "Authorize Azure Services" nicht angezeigt wird. Sollte dies so sein, beachten Sie folgenden Leitfaden (nur zu den Control-AddIns):

https://learn.microsoft.com/en-us/dynamics365/business-central/dev-itpro/upgrade/upgrading-cumulative-update-v20#controladdins

Client-AddIns setzen auf dem Mittelschichtsserver
$NewBcServerInstance = "The name of the Business Central server instance, for example: BC200" $AddinsFolder = "The file path to the Add-ins folder of Business Central Server installation, for example: C:\Program Files\Microsoft Dynamics 365 Business Central\200\Service\Add-ins" Set-NAVAddIn -ServerInstance $NewBcServerInstance -AddinName 'Microsoft.Dynamics.Nav.Client.BusinessChart' -PublicKeyToken 31bf3856ad364e35 -ResourceFile ($AppName = Join-Path $AddinsFolder 'BusinessChart\Microsoft.Dynamics.Nav.Client.BusinessChart.zip') Set-NAVAddIn -ServerInstance $NewBcServerInstance -AddinName 'Microsoft.Dynamics.Nav.Client.FlowIntegration' -PublicKeyToken 31bf3856ad364e35 -ResourceFile ($AppName = Join-Path $AddinsFolder 'FlowIntegration\Microsoft.Dynamics.Nav.Client.FlowIntegration.zip') Set-NAVAddIn -ServerInstance $NewBcServerInstance -AddinName 'Microsoft.Dynamics.Nav.Client.OAuthIntegration' -PublicKeyToken 31bf3856ad364e35 -ResourceFile ($AppName = Join-Path $AddinsFolder 'OAuthIntegration\Microsoft.Dynamics.Nav.Client.OAuthIntegration.zip') Set-NAVAddIn -ServerInstance $NewBcServerInstance -AddinName 'Microsoft.Dynamics.Nav.Client.PageReady' -PublicKeyToken 31bf3856ad364e35 -ResourceFile ($AppName = Join-Path $AddinsFolder 'PageReady\Microsoft.Dynamics.Nav.Client.PageReady.zip') Set-NAVAddIn -ServerInstance $NewBcServerInstance -AddinName 'Microsoft.Dynamics.Nav.Client.PowerBIManagement' -PublicKeyToken 31bf3856ad364e35 -ResourceFile ($AppName = Join-Path $AddinsFolder 'PowerBIManagement\Microsoft.Dynamics.Nav.Client.PowerBIManagement.zip') Set-NAVAddIn -ServerInstance $NewBcServerInstance -AddinName 'Microsoft.Dynamics.Nav.Client.RoleCenterSelector' -PublicKeyToken 31bf3856ad364e35 -ResourceFile ($AppName = Join-Path $AddinsFolder 'RoleCenterSelector\Microsoft.Dynamics.Nav.Client.RoleCenterSelector.zip') Set-NAVAddIn -ServerInstance $NewBcServerInstance -AddinName 'Microsoft.Dynamics.Nav.Client.SatisfactionSurvey' -PublicKeyToken 31bf3856ad364e35 -ResourceFile ($AppName = Join-Path $AddinsFolder 'SatisfactionSurvey\Microsoft.Dynamics.Nav.Client.SatisfactionSurvey.zip') Set-NAVAddIn -ServerInstance $NewBcServerInstance -AddinName 'Microsoft.Dynamics.Nav.Client.SocialListening' -PublicKeyToken 31bf3856ad364e35 -ResourceFile ($AppName = Join-Path $AddinsFolder 'SocialListening\Microsoft.Dynamics.Nav.Client.SocialListening.zip') Set-NAVAddIn -ServerInstance $NewBcServerInstance -AddinName 'Microsoft.Dynamics.Nav.Client.VideoPlayer' -PublicKeyToken 31bf3856ad364e35 -ResourceFile ($AppName = Join-Path $AddinsFolder 'VideoPlayer\Microsoft.Dynamics.Nav.Client.VideoPlayer.zip') Set-NAVAddIn -ServerInstance $NewBcServerInstance -AddinName 'Microsoft.Dynamics.Nav.Client.WebPageViewer' -PublicKeyToken 31bf3856ad364e35 -ResourceFile ($AppName = Join-Path $AddinsFolder 'WebPageViewer\Microsoft.Dynamics.Nav.Client.WebPageViewer.zip') Set-NAVAddIn -ServerInstance $NewBcServerInstance -AddinName 'Microsoft.Dynamics.Nav.Client.WelcomeWizard' -PublicKeyToken 31bf3856ad364e35 -ResourceFile ($AppName = Join-Path $AddinsFolder 'WelcomeWizard\Microsoft.Dynamics.Nav.Client.WelcomeWizard.zip') oder New-NavAddIn. Je nachdem ob die Add-Ins schon vorhanden waren oder nicht. Falls Fehlermeldungen auftreten kann das der Grund sein. Wenn Sie nicht vorhanden sind, können Sie nicht mit "Set-NavAddIn" geändert werden, sondern müssen mit "New-NavAddIn" angelegt werden.

Starten Sie danach die entsprechende Mittelschicht neu.

Informationen

Wichtig ist, dass Sie in Azure als Admin die Rolle "Printer Administrator" und eine Universal Print-Lizenz zugewiesen haben. Dies kann sowohl über ein bestehendes Abonnement bereits erfolgt sein wie mit dem Plan E5 oder Sie können einzelne Universal Print-Lizenzen erwerben und den Benutzern zuordnen. Ansonsten ist als Admin später keine Anmeldung am separat zu installierenden Universal Print-Connector möglich, um Ihre lokalen Drucker mit der Azure Cloud zu teilen. Sie können entweder den Universal Print-Connector auf einem Print-Server installieren und Ihre lokalen Netzwerkdrucker im Unternehmen ansprechen oder entsprechende Netzwerkdrucker, die Universal Print-fähig sind, direkt in Azure registrieren. Folgen Sie dazu bitte den vorher angesprochenen Anleitungen.

Voraussetzung ist, dass die Universal Print-Integration Extension in Ihrer Datenbank installiert ist. Diese ist aber mit unserem Update bereits ausgeliefert und installiert worden.

Es benötigen alle Mitarbeiter, die in BusinessCentral arbeiten und Universal Print nutzen möchten, eine zugewiesene Lizenz im Azure-Portal.

Befolgen Sie die Anleitung:
https://learn.microsoft.com/de-de/dynamics365/business-central/admin-printer-setup-universal-print genau, um Universal Print entsprechend einzurichten.

Es kann immer etwas dauern, bis Azure-Berechtigungen beim Benutzer auch wirklich aktiv werden. Bitte bedenken Sie das, genauso wie Lizenzzuweisungen in Azure.

Wir gehen hier nicht weiter auf die Azure App-Erstellung ein. Um Azure-Services  wie Universal Print oder PowerBI zu authentifizieren, muss man folgende Anleitung befolgen:

https://learn.microsoft.com/en-us/dynamics365/business-central/dev-itpro/administration/register-app-azure

Durch ein von uns erstelltes Skript entfällt diese händische manuelle Arbeit für Sie. Auf dieses Skript wird im Folgenden genauer eingegangen.

Skript zur automatischen Konfiguration von Azure App-Registrierungen, Konfiguration von Web- und Mittelschichtsserver

Vorwort

Wir stellen ein PowerShell-Skript bereit, welches Ihnen ermöglicht, alle hier in dieser Anleitung genannten manuellen Schritte zur Erstellung der Azure App-Registrierungen für SSO, Mail, PowerBI, Universal Print etc. von dem Skript automatisch anlegen zu lassen. Es entfallen somit alle manuellen komplexen Schritte der richtigen OAuth-Permissions, richtiger Einstellung der Authentifizierungen etc.

Wenn bereits der Punkt "Automatisches Anlegen der Azure Apps.." mit dem PowerShell-Skript durchgeführt wurde und Sie die notwendigen Daten aus der AppProperties.json vorliegen haben und Sie weitere Mittelschichten und Web-Instanzen auf Azure-Authentifizierung umstellen möchten, beachten Sie bitte den folgenden Punkt und fahren dort fort:

In der Testphase ist es natürlich auch möglich, eine Mittelschicht mit Windows-Auth bestehen zu lassen und eine neue Mittelschicht anzulegen, extra für die Azure-AD-Anmeldung - beide verbunden mit der selben Datenbank. 

Außerdem konfiguriert es im Anschluss (wenn auf dem Mittelschichtsserver und Webserver ausgeführt) alle nötigen Einstellungen in Web- und Mittelschichtsinstanz. Die einzigen Aufgaben, die Sie noch manuell erledigen müssen:

  • Das Anlegen eines SSL-Zertifikates, Auslesen des Fingerabdruckes

Einrichten eines SSL-Zertifikates unter dem Port 443 für den Webserver einer Finance-Installation 2025.1

  • Konfigurieren der Webseite im IIS von der Webinstanz auf SSL

Einrichten eines SSL-Zertifikates unter dem Port 443 für den Webserver einer Finance-Installation 2025.1

  • Eingabe von bestimmten Azure App-Registrierungs-Parametern im WebClient zum Verbinden mit den Azure Services wie Universal Print, Exchange Online (wird später erläutert)

INFO

Beachten Sie unbedingt den Punkt: Ablaufdatum der Client Secrets

Folgende Information sollten bereit stehen, bevor man das Skript startet:

  • Thumbprint / Fingerabdruck (vom verwendeten SSL-Zertifikat, wichtig für OData über SSL, Web- und Mittelschichts-Kommunikation etc.)

  • PublicWebBaseURL (URL vom Webclient) also: https://WEBSERVER/WEBINSTANZNAME

  • DOMÄNENNAME\BENUTZERNAME des Benutzers (meistens nbauen), der SUPER-Rechte auf der BC-Datenbank hat und die dazu passende Email-Adresse aus dem Azure-Portal

  • die erweitere Sicherheits-Konfiguration für den Internet Explorer sollte im Server-Manager deaktiviert werden, da ansonsten keine Authentifizierung möglich ist

Erläuterung des Skriptes

Hier werden wir die einzelnen Steps im Skript genau erklären.

  • Wenn Sie das Skript ausführen, öffnet sich eine PowerShell-Konsole, es wird kurz erklärt, welchem Zweck dieses Skript dient.

  • Kurz darauf wird ein Auswahlmenü angezeigt, welches die unterschiedlichen Möglichkeiten anzeigt

Bei Punkt 1 werden Ihnen alle Mittelschichtskonfigurationen abgenommen, die oben erklärt werden. Wie OData-Konfiguration etc.

Bei Punkt 2 werden Ihnen alle Webserverinstanzkonfigurationen abgenommen, wie Directory Tenant ID eintragen, Anmeldemethode umstellen etc. Ansonsten müsste man einige PowerShell-Befehle manuell zusammen bauen. Diese Arbeit nimmt Ihnen das Skript ab.

Bei Punkt 3 können Sie manuell die Azure App-Registrierungen anlegen lassen, sie werden anschließend nicht genutzt, um den Server entsprechend zu konfigurieren. Zum Beispiel ist das nötig, wenn Web- und Mittelschichtsserver getrennt physikalisch installiert sind. Dann können Sie einmal manuell die Azure App-Registrierungen erzeugen lassen, das Skript auf Mittelschicht- und Webserver kopieren und jeweils Punkt 1 und Punkt 2 ausführen und die Daten der Azure App-Registrierungen manuell eintragen.

Bei Punkt 4 (sinnvoll bei einer AIO-Installation, also Web-und Mittelschichtsserver zusammen auf einer Maschine) werden erst die Azure App-Registrierungen angelegt und das Skript nimmt automatisch die ermittelten Daten wie AppIDs und übergibt sie entsprechend an Punkt 1 und 2. Sie müssen dann nicht mehr bestimmte IDs manuell copy/pasten, sondern das Skript nutzt die erzeugten Daten und konfiguriert alles entsprechend.

Bei Punkt 5 handelt es sich um einen neuen Punkt für das Update von 23.2 auf 24.1. Bitte nur in diesem konkreten Fall ausführen. Es wird darauf in der AppImporter-Anleitung konkret verwiesen, ansonsten bitte ignorieren.

Mit der Eingabe von "q" können Sie das Skript anschließend beenden, wenn Sie soweit alles abgeschlossen haben. Es wird anschließend ein Log-File (ähnlich dem vom bereits bekannten AppImporter angezeigt, in dem Sie die Schritte nachvollziehen können). Außerdem wird eine Datei mit dem Namen AppProperties.json generiert. Sie enthält alle nötigen Daten ,um später die erforderlichen Schritte im WebClient abschließend durchzuführen. 

Wichtig: Speichern Sie sich alle Werte dieser Datei sicher ab, z. B. in einem Password-Safe. Diese Daten benötigen Sie bei einer Neueinrichtung oder Ergänzung einer weiteren Mittelschicht. Löschen Sie anschließend die Datei AppProperties.json von Ihrem System.

Folgend wird ausschließlich Punkt 4 erklärt. Punkt 4 enthält alle Schritte. Mit diesem Punkt wurde dann einmal alles gezeigt.

Sie müssen vorab bereits die WebServer-Instanz auf SSL umgestellt haben. Das ist unabdingbar für die Konfiguration mit Azure:

Einrichten eines SSL-Zertifikates unter dem Port 443 für den Webserver einer Finance-Installation 2024.2

  • Nachdem Sie Punkt 4 mit ENTER bestätigt haben, geht es weiter: Sie müssen hier nun die PublicWebBaseURL eingeben. Diese setzt sich aus dem WEBSERVERCOMPUTERNAMEN und der zur Mittelschicht zugehörigen WEBSERVERINSTANZ zusammen.
    Heißt: Bei einer AIO-Installation ist alles zusammen auf einem Server installiert (Mittelschicht und Webserver). Wenn der Computername also SRV-BCAIO ist und die Webserverinstanz BAU (verbunden mit der Mittelschicht BAU ist), ergibt sich hier folgende Eingabe: