Was ist Aident CentralLink?
Aident CentralLink ermöglicht es Business Central cloud, lokale Hardware, Dateisysteme oder benutzerdefinierte .NET-Komponenten sicher und ohne das Öffnen eingehender Firewall-Ports aufzurufen.
Wie funktioniert es?
| Teil | Läuft auf | Zweck |
|---|---|---|
| CentralLink Agent | Windows-Host im Kundennetz | Windows-Dienst, der Plugin-DLLs lädt und eine ausgehende Hybridverbindung zum Azure Service Bus Relay aufrechterhält. |
| Azure Service Bus Relay | Microsoft Azure (PaaS) | Cloud-Relais, das den HTTPS-Verkehr von Business Central zum lokalen Agenten tunneln - kein VPN erforderlich. |
| CentralLink Connector (BC App) | Business Central Online-Mandant | AL-Erweiterung, die sich beim Relay authentifiziert und die Plugin-Endpoints des Agents aufruft. |
Es verlässt nur ausgehender 443-Verkehr das LAN; der Agent hört nicht auf einem öffentlichen Port.
Architektur auf einen Blick
%% System Architecture - Aident CentralLink
graph TD
%% ===== SaaS =====
subgraph BC["Business Central (cloud)"]
Ext["CentralLink Connector<br/>(AL extension)"]
end
%% ===== Azure =====
subgraph Azure["Microsoft Azure"]
Relay["Azure Service Bus Relay<br/>(Hybrid Connection)"]
end
%% ===== On-prem =====
subgraph OnPrem["Kundennetz"]
Agent["CentralLink Agent<br/>(Windows-Dienst)"]
subgraph Plugins["Plugin-DLLs"]
NetDrive["drive.dll"]
NetPrinter["printer.dll"]
Custom["*.dll"]
end
end
%% Flüsse
Ext -->|HTTPS| Relay
Relay <--> |Hybridverbindung.| Agent
Agent -->|/.netDrive/*| NetDrive
Agent -->|/.netPrinter/*| NetPrinter
Agent -->|/<plugin>/*| Custom
Schlüsselfeatures
- Hybridverbindung - Azure Service Bus Relay schließt eingehende Zugriffe aus; alle Verkehr ist agent-initiiert und TLS-verschlüsselt.
- Plugin-Modell - Jedes .NET-Assembly einfügen; Methoden mit
[PluginMethod]erscheinen sofort als REST-Endpoints. - Keine Änderungen am Servercode - Business Central ruft das Relay mit Standard AL HTTP APIs auf; keine zusätzliche Middleware.
- Kein VPN-Fußabdruck - Funktioniert in gesperrten Netzwerken; nur ausgehender Port 443 ist erforderlich.
Installation
Note
Die private NuGet Feed-URL und Zugangstoken (PAT) werden vom Kundenservice bereitgestellt.
Ersetzen Sie <private-feed-url> und <PAT> in den unten stehenden Befehlen.
1. Vorbereiten von Chocolatey
https://chocolatey.org/install
# Installiere Chocolatey (überspringe, wenn vorhanden)
Set-ExecutionPolicy Bypass -Scope Process -Force
iex ((New-Object Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))
# Installiere den Azure DevOps Credential Provider
choco install nuget-credentialprovider-vss -y
2. Das private Feed registrieren
choco source add `
--name=CentralLinkFeed `
--source="<private-feed-url>" `
--user="AzureDevOps" `
--password="<PAT>" `
--priority=1
3. Den CentralLink Agent installieren
choco install CentralLinkAgent --source=CentralLinkFeed
Der Installer:
- Installiert CentralLink Agent.
- Erstellt den Standard-Plugin-Ordner
C:\ProgramData\Aident\CentralLink\Plugins.
4. Verwendung von CentralLink
- Aufrufen: Starten Sie CentralLink über die Desktopverknüpfung.
- System Tray: Nach dem Start wird CentralLink im System-Tray für schnellen Zugriff angezeigt.
- Autostart: Das Autostart-Verhalten kann in den Anwendungseinstellungen konfiguriert werden.
Protokolle werden in Ereignisanzeige → Anwendungen und Dienste-Protokolle → CentralLink geschrieben.
Sicherheit & Deployment-Notizen
- Nur ausgehend - Der Agent öffnet einen persistenten, gesicherten WebSocket zum Relay; keine eingehenden Firewall-Öffnungen.
- Authentifizierung - Shared Access Signature (SAS) Schlüssel für das Relay plus BC Mandanten-Credentials; Rotation nach Bedarf.
- Beobachtbarkeit - JSON-Protokolle integrieren sich mit dem Ereignisprotokoll, ELK, Splunk oder Azure Monitor.
- Upgrades -
choco upgrade CentralLinkAgentführt ein In-place-Update mit Konfigurationserhaltung durch.
Entwicklung von Plug-ins
using CentralLink;
namespace HelloWorldPlugin
{
[AgentPlugin("hello")]
public class HelloWorld : IAgentPlugin
{
[PluginMethod("GET")]
public string SayHello(string name) => $"Hallo, {name}!";
[PluginMethod("POST")]
public string Echo(string body) => body;
}
}
- Kompiliere die DLL und lege sie in
C:\ProgramData\Aident\CentralLink\Plugins. - Endpunkt wird
https://<relay-namespace>.servicebus.windows.net/hello/SayHello.