Connect an Azure Subscription to an Existing LCS Project and Deploy a Development VM

Developer series · Episode 4

Cover image for D365 F&O developer series · Episode 4: Connect Azure to LCS and deploy a dev VM

In episode 3, we built a checklist for a development VM. This time, we'll connect an Azure subscription to an existing LCS project and use that checklist to deploy a Microsoft Dynamics 365 Finance & Operations development VM.

Key points

  • This guide is for existing customers using an active LCS project. For new development environments, consider a PPAC-based UDE first.
  • Connecting Azure takes three steps: admin consent → assign the Contributor role → add a connector.
  • You deploy by choosing version → topology → connector → VM size. When you're done, deallocate and then delete the VM.
  1. Route
  2. Project and version
  3. Azure connection
  4. VM deployment
  5. Access and clean-up
  6. Checklist

01First, confirm how your development environment is managed

Route map splitting D365 F&O dev environments into PPAC + UDE, an existing LCS cloud-hosted VM, and a downloadable VHD

JGS explanatory diagram

  • PPAC + UDE: the default route for new customers. Microsoft says UDE replaces the cloud-hosted developer VMs that LCS used to deploy.
  • Existing LCS + cloud-hosted VM: the route this article covers. Since February 16, 2026, new customers can't create LCS cloud implementation projects, but existing active projects can still be used.
  • Downloadable VHD: build a development VM on your PC from a VHD you download from LCS. We'll cover that in the next episode.
  • Cloud-hosted development environments deployed through LCS: according to Microsoft documentation, Copilot and AI agent features aren't supported.

Source: Microsoft Learn · Unified environment types and templates · LCS project creation freeze · Deploy and access development environments · Migrate LCS environments to PPAC (preview)

Caution · The self-service migration from LCS to the Power Platform admin center (preview) doesn't support cloud-hosted developer environments. If you plan to keep a development environment for a long time, consider moving to UDE too.

Terms
· Cloud-hosted environment: a development or test VM environment that LCS creates in your Azure subscription
· UDE (unified developer environment): a Power Platform environment for X++ development by one developer, used with Visual Studio 2022 on your PC
· PPAC (Power Platform admin center): the newer admin center for Dynamics 365 and Power Platform environments

02Check the existing LCS project and version

  1. On the LCS home page, open the implementation project you'll use.
  2. Under Environments on the right of the project page, check the list of production (PRODUCTION) and sandbox environments.
  3. In the sandbox's Full details, check the application and platform versions, then record them in your checklist as the basis for choosing the development VM version.

Project and version check on real screens

These are real screens JGS captured in LCS in September 2024, so they may differ from what you see today.

Order ① Open project → ② Environment list → ③ Version information

LCS home page with the Implementation Project card under Recent projects and menu tiles on the right

① Open the implementation project from the home page

Implementation project page with PRODUCTION and STANDARD ACCEPTANCE TEST under ENVIRONMENTS and Full details highlighted

② Open Full details for the sandbox under Environments

Sandbox environment details with Application release 10.0.40 and Platform release PU64 under ENVIRONMENT VERSION INFORMATION

③ Version information · 10.0.40, PU64 (as of September 2024)

Real screens · 3 real screenshots · September 2024

Point · These versions are from September 2024. When you deploy, pick from the version list LCS shows you that day.

Terms
· Application version: the version of the business functionality (for example, 10.0.40)
· Platform update (PU): the update number of the runtime underneath the application (for example, PU64)

03Connect the Azure subscription to the LCS project

What you need: the subscription ID to deploy to, the subscription owner (or their help), a tenant administrator to give admin consent, and permission to deploy environments in the LCS project

Organization type: prospect organizations can't create Azure connectors. Check your organization type under your name in the upper-right corner of LCS.

① Admin consent: on the Azure connectors tab, select Authorize so the LCS deployment service can deploy to your subscription.

② Contributor role: in the subscription's IAM in the Azure portal, assign the Contributor role to the Dynamics Deployment Services [wsfed-enabled] app.

③ Add a connector: under Add, enter a name, the subscription ID, and the subscription's Microsoft Entra tenant domain, set Azure Resource Manager to Yes, and select Next.

Next, in the subscription's IAM in the Azure portal, also assign the Contributor role to the LCS user (assign the user directly; groups aren't supported). Then select the deployment region, select Connect, and confirm that the list shows ARM Enabled.

You can create only one connector per subscription and region combination.

Menu path
· Azure connector: LCS project › Microsoft Azure settings in the Environments area › Project settings › Azure connectors tab
· Role assignment: Azure portal › Subscriptions › Access control (IAM) › Add › Add role assignment
Route map from admin consent, the Contributor role, and the connector to deploying, signing in to, and cleaning up the dev VM

JGS explanatory diagram

Microsoft documentation example of the Azure Add role assignment pane with Contributor selected for the Dynamics Deployment Services wsfed-enabled app

Microsoft original · Contributor role for the deployment service app

OneNote has no capture for this step, so we use an official Microsoft screen

Source: Microsoft Learn · Deploy a demo environment

Point · There are two ways to authorize subscription access: add an LCS user as Contributor, or upload a management certificate. A certificate has an expiration date. The user method keeps working as long as that user has access to the subscription.

Terms
· Azure connector: the LCS project setting that lets it deploy resources to your Azure subscription
· Admin consent: a tenant administrator granting an app organization-wide permission in one step
· Contributor: an Azure role that manages all resources but can't assign roles to others
· ARM (Azure Resource Manager): the Azure layer that creates and manages resources

04Deploy the development VM with your checklist values

Under Environments in the project, select + and choose the application and platform version.

Choose the environment topology. For a cloud-hosted environment, also choose the Azure connector you'll use.

Enter the environment name (it has to be unique within the subscription) and the VM size from your episode 3 checklist. Microsoft's demo deployment article says to use Ev5-series sizes for finance and operations workloads. For the regional vCPU quota, see 'Quota' in episode 3.

Agree to the terms, select Deploy, and check progress on Cloud-hosted environments.

Menu path
· Start deployment: LCS project › + in the Environments area
· Deployment status: LCS project menu › Cloud-hosted environments
Microsoft documentation example of the LCS deploy confirmation after naming the environment and choosing the VM size (D13)

Microsoft original · Historical LCS screen · the date, topology and D13 size are old examples, not current guidance

Source: Microsoft Learn

Caution · An environment's tenant follows the user who deploys it. If you deploy a Tier 1 environment through LCS, you can't change its tenant settings afterward. So deploy with an account from the tenant you'll actually use.

Terms
· Topology: the type of VM setup for the environment (demo, developer/test, and so on)
· Ev5-series: a memory-optimized family of Azure VM sizes

05Sign in, and clean up when you're done

App access: in Cloud-hosted environments, select the environment and then Login › Log on to finance and operations. The user who requested the environment is its administrator.

Remote Desktop: connect with the accounts shown on the environment page. If the environment was deployed on or after Platform update 12, it has separate developer and admin accounts. Microsoft didn't test or support these environments with Azure Bastion.

Password visibility: set a user's project role to Project team member, and local account passwords are hidden from them. You can't hide them from an Environment manager or Project owner.

Hours of use: while you're not using the VM, Deallocate it to power it down.

Clean-up: Deallocate, then Delete. If deletion fails and you end up removing only the LCS metadata, go to Azure and delete the resource group with the same name as the environment yourself.

Microsoft documentation example of the LCS Cloud-hosted environments list with environment names, topology, deployment status, Add and Microsoft Azure settings

Microsoft original · Historical LCS screen · Cloud-hosted environments list (2016–2017 example)

Source: Microsoft Learn

Point · Microsoft treats development environments as disposable. Keep business-critical data out of them. If troubleshooting drags on, it's better to delete and redeploy.

Terms
· Local account: a Windows account used only inside the VM
· Deallocate: stopping a VM and releasing its compute resources. LCS can delete the environment only in this state.

06Checklist before deployment

We grouped the items most likely to cause problems during deployment by prerequisite. Check them after your episode 3 checklist.

Where it gets stuckCheck before deploying
RouteDo you have an active LCS project, or should you start with UDE?
AccessAdmin consent, Contributor role for the deployment service app, LCS project role
ConnectorARM Enabled, one per subscription and region, expiration date if certificate-based
Deployment valuesApplication and platform version, topology, environment name, VM size, regional vCPU quota
TenantAre you deploying with an account from the tenant you'll use?
Access and costAllowed IPs for RDP, usage hours, who deallocates and deletes the VM

Documentation checked: 2026-10-27

This article is based on Microsoft documentation and real screens from September 2024. We didn't create a connector or deploy a VM for this article.

Source documents · Microsoft Learn

The JGS Consulting team has been part of the journey from Dynamics AX 2009 and AX 2012 to Dynamics 365 Finance & Operations.

Specialists in finance, cost management, and tax, the core of ERP work, are part of the team too.

We handle logistics, manufacturing, and distribution systems as one team, from process design through development and operations, and we bring system and development architecture expertise.

We'll keep going with our Microsoft ERP (MS ERP) system development series.

Contact JGS about development environments

#Dynamics365 #D365 #D365FO #MSERP #MicrosoftERP #JGS #LCS #AzureVM #DevelopmentEnvironment #ERPDevelopment

한국어 글은 네이버 블로그에서 보실 수 있습니다: https://blog.naver.com/jgsconsulting

Comments

Popular posts from this blog

Korean VAT Filing in D365 With Less Spreadsheet Rework

How JGS Uses AI Agents in D365 Projects: Two New Series

Welcome to the JGS Consulting Blog: Dynamics 365 Insights from Korea