Webdienstauthentifizierung

Abgeschlossen

Wenn Sie eine Anwendung in einer anderen Programmiersprache wie C#, Python oder Java entwickeln, müssen Sie dem Business Central-Dienst Authentifizierungsdaten bereitstellen, bevor Sie mit verschiedenen Webdiensten arbeiten können. Die Authentifizierung kann sowohl für OData- als auch für SOAP-Webdienste in Business Central verwendet werden.

Es gibt zwei Möglichkeiten, sich bei Business Central zu authentifizieren: Standardauthentifizierung und OAuth2-Authentifizierung. Bei der Standardauthentifizierung müssen Sie einen Benutzernamen und einen Webdienst-Zugriffsschlüssel als Kennwort angeben, während Sie für OAuth2 eine Microsoft Entra ID-Anwendung konfigurieren müssen. Die Standardauthentifizierung wird seit April 2022 für Business Central SaaS nicht mehr unterstützt. Nur für die lokale Version ist die Standardauthentifizierung weiterhin unterstützt.

Das bedeutet, dass OAuth2 die einzige Option für die SaaS-Version ist und die Option, die wir in diesem Lernmodul besprechen werden.

OAuth2 ist ein offener Standard, der von der IETF OAuth Working Group definiert wurde. OAuth2 unterstützt verschiedene Authentifizierungsflows und Business Central unterstützt zwei:

  • Autorisierungscode-Flow

  • Clientanmeldeinformationen-Flow

Mit Autorisierungscode-Flow müssen Sie sich anmelden und Ihren Microsoft Entra ID-Benutzernamen und ihr ‑Kennwort angeben. Es handelt sich dabei um denselben Benutzernamen und dasselbe Passwort, die Sie für die Anmeldung bei der Business Central-Anwendung verwenden. Dies ist oft der gleiche Benutzername, den Sie für Office 365/Microsoft 365-Services verwenden. So meldet sich die Anwendung, die sich über OAuth2 mit Business Central verbindet, mit Ihren Anmeldeinformationen an und verhält sich daher so, als ob Sie sich angemeldet hätten. Das bedeutet auch, dass die Anwendung dieselben Berechtigungen nutzt, die Ihrem Benutzerkonto in Business Central zugewiesen sind. Dieser Flow erfordert keine separate Lizenz, da er unter der Benutzerlizenz ausgeführt wird.

Ein Benutzer wird aufgefordert, seine Anmeldeinformationen einzugeben, und aus diesem Grund wird dem Benutzer jedes Mal ein Anmeldedialogfeld angezeigt. Dies bedeutet, dass Sie diesen Flow nicht für Anwendungen verwenden können, die keine Benutzeroberfläche haben (Beispiele: Dienste, die im Hintergrund ausgeführt werden, oder ein Webshop, der Artikelinformationen abrufen muss).

Dieser Flow verwendet die Berechtigungen mit dem Namen Delegierte Berechtigungen innerhalb von Microsoft Entra ID-Anwendungen.

Der Clientanmeldeinformationen-Flow ist die Lösung für Dienste, die im Hintergrund ausgeführt werden müssen. Dieser Flow braucht nur eine Client-ID und einen geheimen Clientschlüssel, ohne dass sich ein Benutzer anmelden muss. Microsoft bietet eine besondere und kostenlose Lizenz „Anwendung“ zur Verwendung mit dieser Art von Anwendungen an. Sie dürfen diese jedoch nicht für Dienste verwenden, die sich auf einen Benutzer beziehen (Beispiele: Zeit, Registrierung).

Dieser Flow verwendet eine Berechtigung mit dem Namen Anwendungsberechtigungen (Service-to-Service (S2S)) in Microsoft Entra ID-Anwendungen.

Sie müssen in Microsoft Entra ID eine Anwendung erstellen, um OAuth einzurichten. Öffnen Sie das Microsoft Entra ID-Portal, und melden Sie sich mit Ihrem Organisationskonto an.

Nach der Anmeldung können Sie aus dem Servicemenü auf der linken Seite Microsoft Entra ID auswählen. Wenn Sie dies nicht finden können, wählen Sie das Element Alle Dienste aus, um einen Überblick über Microsoft Entra ID-Dienste innerhalb des Portals zu erhalten, und klicken Sie hier auf Microsoft Entra ID.

Screenshot des Microsoft Entra ID-Center

Nachdem Sie ein Microsoft Entra ID-Element geöffnet haben, müssen Sie möglicherweise App-Registrierungen auswählen, um eine neue App zu erstellen.

Screenshot der ausgewählten App-Registrierungen

Wählen Sie die Schaltfläche + Neue Registrierung aus, um eine neue Anwendungsregistrierung zu starten. Geben Sie einen Namen ein, der Ihre Anwendung beschreibt, wählen Sie Konten nur in diesem Organisationsverzeichnis (nur CompanyName – Einzelmandant), Web als Plattform und https://businesscentral.dynamics.com/OAuthLanding.htm als Umleitungs-URI aus. Wählen Sie Registrieren aus, um die Registrierung zu starten.

Es ist wichtig, dass die Umleitungs-URI genau wie oben beschrieben ist, da bei dieser URI Groß- und Kleinschreibung beachtet wird.

Screenshot des Fensters „Eine Anwendungsseite registrieren“

Wählen Sie im Menü Zertifikate und Geheimnisse aus, und erstellen Sie einen neuen geheimen Clientschlüssel. Sie werden dazu aufgefordert, eine Beschreibung und ein Ablaufdatum einzugeben. Dieses Ablaufdatum darf maximal 24 Monate umfassen. Das bedeutet, dass Sie alle 24 Monate (oder früher) einen neuen Schlüssel erstellen sollten.

Stellen Sie sicher, dass Sie den Wert des geheimen Clientschlüssels kopieren, da dieser Wert nicht mehr sichtbar ist, sobald Sie diese Seite verlassen.

Der nächste Schritt ist das Festlegen der API-Berechtigungen. Wählen Sie aus dem Menü API-Berechtigungen und dann die Schaltfläche + Berechtigung hinzufügen aus. Wählen Sie sie aus der Liste Dynamics 365 Business Central aus. Dadurch werden Ihnen jetzt zwei Optionen präsentiert (die oben bereits beschrieben wurden):

  • Delegierte Berechtigungen

  • Anwendungsberechtigungen

Wählen Sie Delegierte Berechtigungen aus, um eine Anwendung zu erstellen, die sich als ein bestimmter Benutzer anmeldet. Nach der Auswahl können Sie aus der Liste die Option Financials.ReadWrite.All und dann Berechtigungen hinzufügen auswählen.

Screenshot der Seite „API-Berechtigungen anfordern“

Wenn Sie mit OAuth2 arbeiten, benötigen Sie einige Werte zum Einrichten der Authentifizierung. Jetzt ist es an der Zeit, alle Werte zu sammeln:

  • Client-ID: Sie finden diesen Wert auf der Seite Übersicht Ihrer Bewerbung. Dies ist der GUID-Wert Anwendungs(client)-ID.

  • Geheimer Clientschlüssel: Wert, den Sie von der Seite Zertifikate und Geheimnisse kopiert haben

  • OAuth 2.0-Autorisierungsendpunkt: Klicken Sie auf die Schaltfläche Endpunkte, um einen Bereich zu öffnen, in dem Sie diesen Endpunktwert auswählen können.

  • OAuth 2.0-Authentifizierungstoken-Endpunkt: Klicken Sie auf die Schaltfläche Endpunkte, um einen Bereich zu öffnen, in dem Sie diesen Endpunktwert auswählen können.

  • Bereich: Dies hängt von der Art des OAuth2-Flows ab, den Sie unterstützen möchten. Für delegierte Berechtigungen ist dies https://api.businesscentral.dynamics.com/Financials.ReadWrite.All, während es für Anwendungsberechtigungen https://api.businesscentral.dynamics.com/.default ist.

Screenshot der OAuth2-Authentifizierungswerte

Sie können jetzt diese Werte verwenden, um eine OAuth2-Authentifizierung einzurichten.