- Vårt erbjudande
- Kundcase
- Insikter & Inspiration
- Om oss

Så bygger du säkra integrationer mot Dynamics 365 Business Central
/ Data & Integrations /
Så bygger du säkra integrationer mot Dynamics 365 Business Central
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 hemligheter. 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:
- Lägg till Dynamics 365 Business Central → Application permissions → Financials.ReadWrite.All.
- Klicka Grant admin consent.
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.
