I denna artikel går vi igenom hur man integrerar på ett säkert sätt med Dynamics 365 Business Central. Vi visar på ett arkitektoniskt plan hur en Azure Function kan läsa t.ex. ordrar från Azure Service Bus och importera dem till BC via Business Central API.
En Integration mellan t.ex. ett externt ordersystem och Dynamics 365 Business Central (BC) kräver inte bara ett robust meddelandeflöde utan även säker autentisering och hantering av API-nycklar. Den här artikeln beskriver hur en Azure Function kan läsa information från Azure Service Bus och importera dem till BC via Business Central API. Vi går på djupet i hur autentisering sker med Azure Entra ID, hur Key Vault används för säker hantering av nycklar och hur åtkomst ges mellan resurserna.
Arkitekturöversikt
Här visas ett vanligt scenario där en inköpsorder från ett externt system, exempelvis en web shop, landar på en Service Bus-kö för att sedan hanteras av integrationen.
Säker kommunikation mellan resurserna
Service Bus → Function:
- Anslutning till Service Bus ske via connection string i Key Vault eller Azure AD RBAC.
Function → Key Vault:
- Autentisering sker med Functionens Managed Identity.
Function → Entra ID:
-
Function hämtar Client ID/Secret från Key Vault.
-
Anropar Entra för att få ett access token.
Function → Business Central API:
- Access token bifogas i HTTP-anropen.
- BC verifierar token mot Entra och tillåter endast åtkomst för registrerad Application User.
Function → Application Insights:
- Loggning av meddelande-ID, ordernummer, fel.
- Läs gärna får artikel om hur vi på Wizardworks loggar till Application Insights
Autentisering och åtkomst, så gör du.
1. App-registrering i Azure Entra ID
För att Azure Function ska kunna anropa Business Central API krävs en app-registrering i Entra ID:
- Gå till Azure Entra ID → App registrations → New registration.
- Skapa en app (t.ex. bc-integration-app).
- Notera Client ID och Tenant ID.
- Skapa en Client Secret (lagras senare i Key Vault).
- Under API permissions:
2. Skapa Application User i Business Central
Business Central behöver veta vilken Entra-app som motsvarar integrationen:
- Öppna Business Central Admin Center → Environment → Users.
- Skapa en Application User.
- Ange appens Client ID.
- Tilldela relevanta Permission Sets (t.ex. D365 SALES DOC, D365 ITEM, D365 CUSTOMER).
Nu finns en direkt koppling mellan Entra-appen och rättigheter i BC.
3. Tokenhämtning
Azure Function använder OAuth 2.0 client credentials flow:
- Skickar client_id, client_secret, scope=https://api.businesscentral.dynamics.com/.default till Entra ID token endpoint:
https://login.microsoftonline.com/{tenantId}/oauth2/v2.0/token - Får tillbaka ett access token (JWT).
- Använder detta token i Authorization:
Bearer <token>när BC API anropas.
Azure Key Vaults roll
Varför Key Vault?
Alla känsliga uppgifter (t.ex. Client Secret) bör lagras i Azure Key Vault, inte i appsettings.json eller konfigurationsvariabler. Key Vault fungerar som en säker nyckelhanterare som endast kan nås av behöriga resurser.
Hur får då Functions åtkomst?
-
Aktivera Managed Identity för Function App.
-
I Key Vault → Access policies eller RBAC: ge Function identiteten Key Vault Secrets User eller Key Vault Secrets Officer.
-
I Function-koden används Key Vault-referensen (t.ex. via Azure.Identity-biblioteket) för att hämta secrets.
Exempel på lagrade secrets:
- BC-ClientSecret
- BC-ClientId
- BC-TenantId
- BC-Environment
- BC-CompanyId
Genom att använda KeyVault behöver inga hemligheter finnas i klartext i koden och bara behöriga har tillgång till dem.
Slutsats
Denna arkitektur säkerställer att transaktioner kan flöda från externa system till Business Central på ett säkert, robust och spårbart sätt. Kombinationen av Azure Service Bus, Azure Functions, Key Vault och Azure Entra ID skapar en lösning som både utvecklare och IT-drift kan lita på.
Vill du ha hjälp att designa eller implementera en integrationslösning mellan dina system och Business Central? Hör av dig så berättar vi hur vi kan hjälpa dig att ta kontroll över dina flöden och skapa en trygg och framtidssäkrad plattform.

Skriven av
Markus Lundberg
Läs mer om Data & Integrations

Azure Integration Services, nyckeln till moderna integrationer
Många företag står med ena benet i äldre system och det andra i moln- och AI-världen. Hur bygger man en sömlös bro mellan dessa två utan att fastna i komplexa integrationsprojekt? I denna artikeln om Azure Integration Services visar vi hur Microsofts integrerade verktygslåda ger dig kraften att automatisera processer, exponera API:er och skapa eventstyrda flöden med robust säkerhet och skalbarhet.
Läs mer
Azure Events, hur man tar kontroll över sin Azure-miljö.
Vill du ha bättre koll på vad som händer i din Azure-miljö, i realtid? Läs om hur du kan få bättre kontroll på ändringar i din miljö. Vem skapar nya resurser? Finns det något certifikat som snart är expired, etc? Med Azure Events kan du dessutom automatiskt ta actions på när saker händer!
Läs mer
Nyheterna i C# 14 och .NET 10
I november släpps .NET 10 tillsammans med C# 14. En LTS release som kommer med en del roliga nyheter. I denna artikeln går vi igenom vad som är nytt och bra att veta.
Läs mer