Einrichtung Azure AD-Anmeldung - ACS - Finance 2024.2.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.

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.

 

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

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 2024.2

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.

Ich gehe 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:

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 werde ich 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. ZUM BEISPIEL IN EINEN PASSWORDSAFE. 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:

https://SRV-BCAIO/BAU

  • Bestätigen Sie Ihre Eingabe mit ENTER. Sie werden aufgefordert, sich mit einem Azure-Konto anzumelden (am besten der Azure-Administrator). Wenn es nicht der Azure-Administrator ist, muss zumindest sichergestellt sein, dass der User Berechtigungen hat, Azure App-Registrierungen anzulegen.

  • Anschließend werden die Azure App-Registrierungen vollautomatisch im Azure-Portal angelegt.

  • Diese können Sie im Azure-Portal unter portal.azure.com auch anschließend sehen:

  • Hier werden Sie direkt gefragt, welche Mittelschichts-Instanz Sie konfigurieren möchten (das wäre jetzt zum Beispiel auch bei Auswahl von Punkt 1 zu sehen)

  • Bestätigen Sie mit ENTER Ihre Auswahl, Task 3: Associate Azure AD Users with Business Central Users wäre jetzt der folgende Schritt. Sie müssen hier jetzt den UserName eintragen (in der Regel der Admin-Account, der in Business Central angelegt ist, also DOMÄNE\nbauen)

  • Bestätigen Sie mit ENTER Ihre Auswahl, geben Sie nun die Mailadresse ein, die in Azure für diesen Benutzer hinterlegt ist

  • Bestätigen Sie mit ENTER Ihre Auswahl, es wurde nun die Mailadresse für den Benutzer in BusinessCentral gesetzt. Nun müssen Sie den Thumbprint (Fingerabdruck) des Zertifikates eingeben, welches für die Mittelschicht hinterlegt werden soll. Siehe hier: Fingerabdruck des Zertifikates

  • Bestätigen Sie mit ENTER Ihre Auswahl. Einstellungen in der Mittelschicht werden getroffen, Ihr Fingerabdruck des Zertifikates ebenfalls. Geben Sie nochmals die PublicWebBaseURL ein, diesmal mit einem abschließenden "/". Also in unserem Beispiel: https://SRV-BCAIO/BAU/

  • Jetzt werden die AzureIDs abgefragt. Da Punkt 4 angewählt wurde, wird in den [] bereits die richtige ID angegeben. Sie müssen lediglich ENTER drücken und die ID wird übernommen. Bei der manuellen Einrichtung unter Punkt 1 müssten Sie diese ID:

    jetzt manuell aus der AppProperties.json kopieren.

  • Dasselbe gilt für die TenantID. Da Punkt 4 angewählt wurde, wird in den [] bereits die richtige ID angegeben. Sie müssen lediglich ENTER drücken und die ID wird übernommen. Bei der manuellen Einrichtung unter Punkt 1 müssten Sie diese ID:

    jetzt manuell aus der AppProperties.json kopieren.

  • Dasselbe gilt für die Excel App ID. Da Punkt 4 angewählt wurde, wird in den [] bereits die richtige ID angegeben. Sie müssen lediglich ENTER drücken und die ID wird übernommen. Bei der manuellen Einrichtung unter Punkt 1 müssten Sie diese ID:

    jetzt manuell aus der AppProperties.json kopieren.

  • Es wurden ebenfalls die Parameter für WS-Federation-LoginEndpoint etc. bereits gesetzt. Das umständliche "Zusammenbauen" aus verschiedenen URLs und IDs entfällt komplett!

  • Alle IDs wurden soweit gesetzt. Anschließend wird OData korrekt konfiguriert, wie die OData-Base-URL, Nutzung von SSL und Aktivierung der APIs. Nochmal der Hinweis auf Umstellung des Webclients auf SSL. Und dass man sich jetzt nur noch als einziger Benutzer im System mit dem am Anfang eingegebenen Benutzer anmelden kann (DOMÄNE\nbauen hier als Beispiel). Sie müssen jetzt allen anderen Benutzern ebenfalls Ihre eigene Mail-Adresse in BusinessCentral hinterlegen, damit Sie sich in Zukunft mit Ihren Azure-Zugangsdaten am System anmelden können. Eine Anmeldung mit der Windows-Authentifizierung ist ab jetzt nicht mehr möglich. Bedenken Sie das.

  • Nach kurzer Wartezeit und Neustart der ausgewählten Mittelschicht geht es sofort weiter mit der Konfiguration der dazugehörigen Webserver-Instanz. Wählen Sie die zu der eben konfigurierten Mittelschicht passende Webinstanz aus. Im Normalfall ist das die mit dem selben Namen. Geben Sie die Nummer ein und bestätigen mit ENTER.

  • Hier werden Sie direkt gefragt, welche Webserver-Instanz Sie konfigurieren möchten (das wäre jetzt zum Beispiel auch bei Auswahl von Punkt 2 zu sehen)

  • Jetzt werden die AzureIDs abgefragt. Da Punkt 4 angewählt wurde, wird in den [] bereits die richtige ID angegeben. Sie müssen lediglich ENTER drücken und die ID wird übernommen. Bei der manuellen Einrichtung unter Punkt 2 müssten Sie diese Application ID (client ID) :

    und Directory ID (tenant ID)

    jetzt manuell aus der AppProperties.json kopieren.

  • Anschließend werden die IDs in die Webserver-Instanzkonfiguration übernommen und zusätzliche Einstellungen in der jeweiligen navsettings.json getroffen, wie Umstellung auf ACS Anmeldung, DNS-Identität, dass die Verbindung zur Mittelschicht verschlüsselt sein soll etc. Der IIS wird anschließend durchgestartet.

  • Nach kurzer Wartezeit befinden Sie sich wieder im Ausgangsmenü und können das Skript mit "q" beenden. Anschließend öffnet sich das Log und der Verweis im Windows-Explorer zur AppProperties.json.

  • WICHTIG: SPEICHERN SIE SICH ALLE WERTE DIESER DATEI SICHER AB. ZUM BEISPIEL IN EINEN PASSWORDSAFE. 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.

  • Diese Daten sollten Sie sich wie bereits erwähnt sichern.

Mögliche Fehler, die nach dem Verbinden mit dem WebClient auftreten

AADSTS900561:
https://answers.microsoft.com/en-us/microsoftedge/forum/all/trusted-sites-in-edge-browser/22cf12fa-b220-4b51-8f7a-7927a71ba084

https://learn.microsoft.com/en-us/answers/questions/938820/error-aadsts900561-the-endpoint-only-accepts-post

 

AADSTS50000:
https://github.com/microsoft/navcontainerhelper/issues/2390

 

 

microsoft.directory/servicePrincipals/managePermissionGrantsForAll.microsoft-application-admin

 

microsoft.directory/servicePrincipals/appRoleAssignedTo/update

 

 

AADSTS650052:

Dieser Fehler kann auftreten wenn manche Dienste im Azure-Tenant nicht zur Verfügung stehen. Entweder man erwirbt entsprechende Dienste oder entfernt die entsprechende API-Permissions, die man dann nicht nutzen kann.
Diese sind dann für die jeweilige App entsprechend hier zu finden. Es würde dort auch schon eine Meldung stehen, dass das Zielprinzipal nicht zur Verfügung steht.

 

 

IDX20804 und IDX20803:

sollten besagte Fehler im EventLog erscheinen:

Exception: System.InvalidOperationException: IDX20803: Unable to obtain configuration from: 'https://login.microsoftonline.com/APP ID FÜR WEBCLIENT/.well-known/openid-configuration'. Will retry at '10.10.2024 09:01:27 +00:00'. Exception: 'System.IO.IOException: IDX20804: Unable to retrieve document from: '[PII of type 'System.String' is hidden. For more details, see https://aka.ms/IdentityModel/PII.]'. ---> System.Threading.Tasks.TaskCanceledException: The request was canceled due to the configured HttpClient.Timeout of 60 seconds elapsing.

ist es klar an Netzwerk / Proxy / Firewall / Virenschutz / IPS in der jeweiligen Umgebung zu verorten, nach unseren bisherigen Erfahrungen. Wenden Sie sich bitte in solchen Fällen an Ihre IT und besprechen, welche Systeme man nacheinander deaktivieren kann um auszuschließen woran es liegt.
Die OpenID-Anwtort von Azure wird so verändert durch besagte Systeme, dass eine Anmelung über EntraID nicht mehr möglich ist. Gegentests können auch sehr gut auf einem separaten System (welches durch besagte Systeme nicht in der Kommunikation eingeschränkt wird!) mit dem Enable-AzureAD.ps1 & den AppIDs / Secrets aus der AppProperties.json durchgeführt werden. Richtet man dort EntraID auf der Mittelschicht / Webclient entsprechend ein und ein Login über EntraID funktioniert auf Anhieb, kann es nur an besagten Einschräkungen liegen.

Weitere Einrichtung im WebClient

Allgemeine Einstellungen

  • Die Einrichtung ist damit so gut wie abgeschlossen. Wenn Sie sich jetzt mit der Webserver-Instanz im Web-Browser verbinden möchten, erscheint folgendes Fenster:


  • Geben Sie Ihre Azure-Zugangsdaten ein und verbinden Sie sich mit dem WebClient.

  • Hier werden Sie jetzt im Namen Ihrer Organisation gefragt, der erstellten SSO-Azure App-Registrierung zum Anmelden an Azure zu vertrauen. Verfahren Sie wie im Screenshot und fahren Sie fort.

  • Sie sollten sich anschließend in Ihrem WebClient wiederfinden:

Verbinden mit den Azure Services im WebClient

  • Im WebClient suchen Sie bitte nach folgendem Punkt:

  • Gehen Sie anschließend auf folgenden Punkt:

  • Klicken Sie auf Weiter - hier werden jetzt die Verbindungsdaten zur angelegten Azure AIO-App übergeben. Dies ist einmalig notwendig.

  • Geben Sie hier die Zeichenfolge von

    aus der AppProperties.json (ohne "") unter Anwendungs-ID ein.

  • Geben Sie hier die Zeichenfolge von

    aus der AppProperties.json (ohne "") unter Schlüssel ein.

  • Anschließend auf Weiter, die Antwort-URL sollte von selbst gefüllt worden sein.

  • Anschließend auf Fertigstellen

Mail-Einstellungen

  • Suchen Sie anschließend in der Suche nach aad und wählen den folgenden Punkt aus:

  • Die Weiterleitungs-URL sollte automatisch gesetzt sein, geben Sie hier ebenfalls wieder:

  • Geben Sie hier die Zeichenfolge von

    aus der AppProperties.json (ohne "") unter Client-ID ein.

  • Geben Sie hier die Zeichenfolge von

    aus der AppProperties.json (ohne "") unter Geheimer Clientschlüssel ein.

  • Klicken Sie auf Registrierung prüfen.

  • Melden Sie sich wieder mit Ihrem Konto an.

  • Hier werden sämtliche Berechtigungen der App die für PowerBI, Mailversand etc. nötig sind nochmal dargestellt. Verfahren Sie wie im Screenshot und klicken Sie Akzeptieren.

  • Anschließend sollte folgendes Fenster erscheinen:

  • Sie können nun alle Dienste nutzen. Hier ein Beispiel:

Druckdienste

  • Hier würden jetzt alle für die angemeldete Person im Azure-Portal freigegebenen Drucker hinzugefügt.

PowerBI

  • PowerBI-Berichte sind verfügbar, falls welche erstellt wurden.

  • Sie können Exchange Online-Mail-Konten nutzen, sei es SMTP-Konten über OAuth, freigegebene Postfächer oder Ihr eigener aktiver User.

  • Es kann sein, dass Sie aufgrund Ihrer Unternehmens-Richtlinien manuell den Consent bestätigen müssen.

  • Gehen Sie dazu zu der entsprechenden App und klicken einmal auf den entsprechenden Button. In diesem Beispiel ist bereits alles okay.

EntraID OAuth2.0 Anwendungen

  • Suchen Sie nach "Entra" und wählen folgenden Punkt aus.

  • Legen Sie eine neue an.

-

  • Geben Sie immer als Erstes unter "Client-ID" die folgende ID aus der AppProperties.json an: 

  • Nennen Sie diese "AIO Azure Services".

  • Ändern Sie anschließend den Status auf "Aktiviert"

  • Es kommt eine Abfrage, ob Sie dazu einen Benutzer hinzufügen möchten, klicken Sie auf "Ja".

  • Erteilen Sie anschließend die Zustimmung.

  • Melden Sie sich mit dem Azure-Administrator an und ersteilen Sie die Zustimmung.

  • Passen Sie die Benutzerberechtigungssätze bitte folgendermaßen an:

Verwenden Sie immer den Berechtigungssatz mit dem Erweiterungsnamen "Finance", sofern mehrere Gleichnamige zu Verfügung stehen.

  • Sie können die Anwendung nun für die Einrichtung mit anderen Diensten wie dem Build Connector verwenden.

  • Die Anwendung ist für die OAuth 2.0 wichtig.

Die Einrichtung ist damit abgeschlossen.

Bisherige BusinessCentral-User auf Azure Authentication umstellen

Siehe hier:

https://learn.microsoft.com/en-us/dynamics365/business-central/dev-itpro/administration/authenticating-users-with-azure-active-directory?tabs=singletenant%2Cadminshell#task3

Set-NavServerUser
Set-NAVServerUser -WindowsAccount yourdomain\username -AuthenticationEmail "AzureAD_principal_name"

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 derselben Datenbank.

Sonstige Informationen

Scope anpassen bei Verbindungen mit anderen Produkten (Build Connector, Build-Administration, BfW)

Der Scope setzt sich zusammen aus der Application ID URI der WebClient App-Registrierung

und den Berechtigungen .default und offline_access:

Beispiel: api://XXXXXX-XXXXXX-XXXXX-XXXXX/.default offline_access

Die URI finden Sie in Ihrer AppProperties.json:



Bitte beachten Sie, dass Sie diesen Scope für alle Produkte wie (BfW | Bau für Windows), Build Connector in Finance und auch in der Build-Administration nutzen. Ansonsten ist keine Kommunikation möglich. Für weitere Informationen konsultieren Sie bitte die Anleitungen der anderen Produkte.

Zusätzliche Mittelschichten und Webinstanzen auf Azure AD umstellen

Um zusätzliche Mittelschichten und Webserverinstanzen auf Azure Authentication umzustellen, muss man diverse Links in den bereits bestehenden App-Registrierungen ergänzen.

Im Azure-Portal bitte die entsprechende Apps auswählen (WebClient for ... und AIO Azure Services for ...)

Hier als Beispiel die WebClient-App:

Hier als Beispiel für AIO-Azure-App:

Und mit Add URI dann jeweils den Namen des jeweiligen Webservers inklusive Webserver-Instanz ergänzen.
Bitte folgendes beachten: https://learn.microsoft.com/en-us/dynamics365/business-central/dev-itpro/administration/authenticating-users-with-azure-ad-openid-connect?tabs=singletenant%2Cadmintool#task-2-register-an-application-in-the-azure-ad-tenant

Von der Microsoft-Seite folgender Hinweis:

Redirect URI

Specifies the type of application that you're registering and the redirect URI (or reply URL) for your application. Set the type to Web, and in the redirect URL box, enter URL for signing in to the Business Central Web client, for example https://localhost:443/BC220/SignIn.

The URI has the format https://<domain or computer name>/<webserver-instance>/SignIn, such as https://cronusinternationltd.onmicrosoft.com/BC220/SignIn or https://MyBcWebServer/BC220/SignIn.

Important The portion of the reply URL after the domain name (in this case BC220/SignIn) is case-sensitive, so make sure that the web server instance name matches the case of the web server instance name as it is defined on IIS for your Business Central Web Server installation.

Wenn man dies erledigt hat, kann man mit Punkt 1 und Punkt 2 aus dem Skript die jeweilige Web- und Mittelschichts-Instanz auf dem jeweiligen neuen Server mit den bereits festgelegten Daten aus der AppProperties.json-Datei befüllen und entsprechend auch für die Azure AD-Authentifizierung umstellen. Man erstellt somit keine neuen Azure App-Registrierungen, sondern nutzt die bestehenden.

Wenn man Punkt 1 und Punkt 2 jeweils nacheinander ausführt, ist der Ablauf quasi identisch mit dem, was man ab hier sieht. Nachdem man Punkt 1 und 2 ausgeführt hat, muss man sich noch entsprechend auf der dazugekommenen Web-Instanz anmelden und die selben Schritte wie hier nochmals durchführen mit den bereits bestehenden Daten. Und auch dann müssen die User aus BusinessCentral natürlich wieder auf einem anderen Server mit einer anderen Datenbank entsprechend Ihre "Authentication Email" zugewiesen bekommen, siehe: Bisherige BusinessCentral-User auf Azure Authentication umstellen

Ablaufdatum der Client Secrets beachten und entsprechend auf Wiedervorlage setzen


 

 

Gehen Sie nun zurück zur Hauptseite und folgen der weiteren Anleitung
NEVARIS Finance Version 2024.2