Table of Contents

Fundraising Proxy function

Hinter den Webseiten von Spendenorganisationen arbeitet eine leistungsstarke Datenverarbeitungseinheit - die FundraisingBox. Hier werden nicht nur wertvolle Spenden entgegengenommen, sondern auch entscheidende Informationen gesammelt, die für den reibungslosen Betrieb und das Fortbestehen dieser gemeinnützigen Organisationen von grundlegender Bedeutung sind.

Problem: Die Integration in Unternehmensprozesse und -systeme wie Microsoft Business Central (unitop Spendenmanagement) kann nur über eine Proxy-Function geschehen.

Lösung: Die Proxy-Function agiert als Vermittler, der zwischen der FundraisingBox und Microsoft Business Central steht. Eine wesentliche Aufgabe besteht darin, sicherzustellen, dass die übertragenen Informationen vertrauenswürdig sind und den höchsten Sicherheitsstandards entsprechen. Hierbei fungiert Azure Active Directory (Azure AD) Authentifizierungsmechanismus und Datenweiterleitung, um sicherzustellen, dass nur autorisierte Daten den Weg nach Business Central finden.

Infrastruktur Einrichtung

Zur Einrichtung der Fundraising-Schnittstelle wird eine Bereitstellung und Einrichtung von Azure Komponenten durch die Infrastruktur benötigt. Dazu ist eine Azure Subscription beim Kunden unumgänglich. Einzurichten ist die Verbindung zwischen der Funraising-Box und der Business Central Extension mit dem Fundraising-Proxy.

Folgende Schritte müssen in Kooperation mit der Infrastruktur durchgeführt werden.

Azure Functions Bereitstellung

In der Azure Subscription des Kunden muss eine Azure Function bereitgestellt werden. Der Dienst soll mit folgenden Kennzahlen angelegt werden:

Do you want to deploy code or container image? Code
Runtime stack .NET
Version 8 (LTS) Isolated
Operating System Windows
Hosting Consumption (Serverless)

Nach der Bereitstellung der Azure Ressource muss die aktuelle Version des Fundraising-Proxy deployed werden. Für das Deployment steht eine ZIP-Datei im Freigabe Verzeichnis zur Verfügung.

Unter Microsoft Learn findet sich Anleitung zur Bereitstellung einer Azure Function via ZIP-Deployment: Zip push deployment for Azure Functions | Microsoft Learn

Damit die Function benutzt werden kann muss die URL übermittelt werden. Diese befindet sich auf der Azure-Seite der Function App im Overview unter der Function "TransferFundData".

Klicken Sie hier zunächst auf "Get function URL", um im Anschluss den Link "default (Function Key)" zu kopieren.

Azure Functions Einrichtung

Die bereitgestellte Azure Function muss mit einigen Application-Settings eingerichtet werden. Die Einrichtungsdaten werden verwendet, um die Verbindung mit Business Central herzustellen.

Vorab muss eine App-Registration im Entra-ID des Kunden bereitgestellt werden. Die App-Registration muss für den Service-To-Service Zugriff auf einen BC-Webservice konfiguriert sein.

Folgende Application-Settings müssen unter Settings → Environment variables → App-Settings angelegt werden.

OnPrem

FundraisingInterfaceApi:UriOption:BaseUri [host]:[port]/[instance]/
FundraisingInterfaceApi:UriOption:ApiUri [host]:[port]/[instance]/api/publisher]/[group]/[api version]/companies([company id])/
FundraisingInterfaceApi:UriOption:Tenant default
FundraisingInterfaceApi:ApiPage [Api page name]

SaaS

FundraisingInterfaceApi:UriOption:BaseUri https://api.businesscentral.dynamics.com/v2.0/[user domain name]/[environment name]/
FundraisingInterfaceApi:UriOption:ApiUri https://api.businesscentral.dynamics.com/v2.0/[user domain name]/[environment name]/api/[publisher]/[group]/[api version]/companies([company id])/
FundraisingInterfaceApi:ApiPage [Api page name]

OAuth-Authentifizierung

AuthenticationCredential:AuthType [Authentication type, OAuth in this case]
AuthenticationCredential:TenantId [AzureAD tenant id]
AuthenticationCredential:ClientId [App registration Client id]
AuthenticationCredential:ClientSecret [App registration Client secret]
AuthenticationCredential:ApplicationUri [SaaS: 'https://api.businesscentral.dynamics.com' OnPrem: Application uri defined in the app registration]

Basic-Authentifizierung

AuthenticationCredential:AuthType [Authentication type, Basic in this case]
AuthenticationCredential:Username [BC admin user]
AuthenticationCredential:Password [BC password]

Mapper-Parameter

MapperParameter:PartnerGuid [GUID, Need the same as in BC]
MapperParameter:Channel [Channel e.g. Default]