Part 6 of 7 in the Logic Apps Agent Loop series
Part 5 covered multi-agent patterns in the Azure Logic Apps agentic workflow series. Each pattern extends your agent’s reach, but that reach comes with a security cost. The more capable and connected your agent, the more important it is to understand who can call it and under what conditions. This post covers the expanded caller surface, the developer key’s limitations, and the full production security stack.
Conventional Logic Apps workflows have a bounded caller surface. The callers are known systems: a scheduler, a service bus, and an HTTP client you control. The authentication model is straightforward: SAS tokens, Managed Identity, and IP filtering. Agentic workflows fundamentally change this, particularly conversational ones. When you expose a chat interface to external callers, those callers can be people, other agents, MCP servers, or automation clients from networks you do not control. The security model has to change with the threat model.

The expanded caller surface
The shift from nonagentic to agentic workflows introduces a qualitatively different caller population. In a nonagentic workflow the trigger is called by a known system at a known time for a known reason. In a conversational agentic workflow the trigger is called by:
- Human users interacting through an external chat client
- External agents invoking the workflow as a tool
- MCP servers routing requests through the workflow
- Automation clients from untrusted or unknown networks
Each of these caller types introduces different identity, trust, and access control requirements. A billing system calling a webhook is easy to reason about. An external agent calling your workflow from an unknown network at unpredictable intervals is not.
This expanded surface area is why Microsoft’s documentation draws a sharp distinction between the developer key used during design and testing in the Azure portal and proper production authentication. Understanding that distinction is the starting point for securing any agentic workflow.
The developer key: what it is and what it is not
Understanding the developer key’s limitations is the starting point for any serious Azure Logic Apps agentic workflow security implementation. When you test a conversational agentic workflow in the Logic Apps designer, the Azure portal authenticates your test calls using a developer key. The developer key is a convenience mechanism that lets you skip manual authentication setup during development. It fires automatically when you run a workflow, call a Request trigger, or interact with the integrated chat interface.
The developer key has five hard limitations that make it unsuitable for production:
- It is not a substitute for Easy Auth, Managed Identity, federated credentials, or signed SAS callback URLs.
- In addition, it is designed for large or untrusted caller populations, agent tools, or automation clients.
- It is also not a per-user authorization mechanism; it has no granular scopes or roles.
- And finally, it is not governed by Conditional Access policies at the request execution layer, only at the portal sign-in layer. And it is not intended for programmatic or CI/CD usage.
The developer key is linked to a specific user and tenant based on an Azure Resource Manager bearer token. Because of that binding, you cannot distribute it externally. It is, in the Microsoft documentation’s own framing, a mechanism for quick testing before you formalize authentication, not a path to production.
Azure Logic Apps agentic workflow security: Standard versus Consumption
The right production authentication mechanism depends on your Logic Apps hosting model.
Setting up Managed Identity for backend connections
Easy Auth secures who can call your agentic workflow. Managed Identity secures what your workflow can call. These are two distinct security concerns and both need to be addressed in production.
When your agent invokes a tool, Azure OpenAI, Azure AI Search, a storage account, or a Service Bus namespace, that call needs to be authenticated. The default approach during development is often to store an API key or connection string in app settings. In production, replace these with Managed Identity connections wherever possible. This removes credentials from app settings entirely. The logic app authenticates to backend services using its Azure AD identity, which is governed by RBAC, auditable, and revocable without rotating keys.
- Go to your
la-agent-loopresource → Identity → System assigned → turn Status to On - Save — Azure assigns a service principal to the logic app
- In each target resource (Azure OpenAI, AI Search, Storage), go to Access control (IAM) → Add role assignment
- Assign the appropriate role to the logic app’s Managed Identity:
- Azure OpenAI: Cognitive Services OpenAI User
- Azure AI Search: Search Index Data Reader
- Azure Blob Storage: Storage Blob Data Reader
- In the Logic Apps connections, switch from API key authentication to Managed Identity for each backend service where possible.
Note: Managed Identity authentication for the agent model connection is only supported when the model type is
AzureOpenAI. If your workflows use theMicrosoftFoundrymodel type, as in this series, the agent connection must use Key authentication. Managed Identity remains the right choice for all other backend connections such as Azure AI Search, Blob Storage, and Service Bus.

la-agent-loop Standard logic app. Once enabled, Azure registers the logic app as a service principal in Microsoft Entra ID. Click Azure role assignments to assign the appropriate RBAC roles to each backend resource: Cognitive Services OpenAI User for Azure OpenAI and Search Index Data Reader for Azure AI Search, so the agent can authenticate to those services without storing any credentials in app settings.Setting up Easy Auth for your Azure Logic Apps agentic workflow
For Standard logic apps, the production authentication path is Easy Auth, also known as App Service Authentication. Easy Auth is an App Service platform feature that sits in front of your logic app and enforces identity-based authentication on every incoming request before it reaches your workflow.
When you enable Easy Auth on a Standard logic app, external callers, whether human users, external agents, or MCP servers, must present a valid identity token. Easy Auth validates the token against Microsoft Entra ID before allowing the request through. This gives you full Conditional Access policy enforcement, per-user identity, token revocation, and audit logging, the full production security stack.
To set up Easy Auth on a Standard logic app:
- In the Azure portal, open your
la-agent-looplogic app resource - Navigate to Authentication in the left sidebar under Settings
- Click Add identity provider
- Select Microsoft as the identity provider
- Under App registration, select an existing registration or choose Create new app registration and name it
la-agent-loop-auth - Under Supported account types, select Current tenant — single tenant for internal workloads
- Set Unauthenticated requests to HTTP 401 Unauthorized: recommended for APIs
- Leave Token store enabled
- Click Add
Note: Easy Auth operates at the App Service host level, before the Logic Apps runtime processes the request. Authentication failures are rejected at the infrastructure layer with a 401 the workflow never executes and no run history entry is created for unauthenticated calls.

la-agent-loop Standard logic app. App Service authentication is enabled, unauthenticated requests return HTTP 401 Unauthorized, and Microsoft Entra ID is registered as the identity provider via the la-agent-loop-auth app registration. Any external caller, human user, external agent, or MCP servermust now present a valid Entra ID token before the Logic Apps runtime processes the request.Consumption: OAuth 2.0 with Microsoft Entra ID
For Consumption logic apps, configure an agent authorization policy on the logic app resource using OAuth 2.0 with Microsoft Entra ID. This provides equivalent identity enforcement to Easy Auth for the Consumption hosting model. For the full configuration steps, see Create conversational agent workflows in Azure Logic Apps on Microsoft Learn.
Key Vault for secrets that cannot use Managed Identity
Not every connection in an Azure Logic Apps agentic workflow supports Managed Identity. Where API keys or connection strings are unavoidable, store them in Azure Key Vault and reference them from Logic Apps app settings using the Key Vault reference syntax:
@Microsoft.KeyVault(SecretUri=https://your-keyvault.vault.azure.net/secrets/your-secret/)
This keeps credentials out of app settings in plain text, provides centralized rotation, and gives you audit logs of every secret access. The Standard logic app accesses Key Vault using its Managed Identity; no separate credentials are needed for the vault itself.
Network controls for Standard workflows
Standard logic apps run on the App Service infrastructure, which gives you network-level controls that Consumption workflows do not have:
Private endpoints allow your logic app to receive inbound traffic only from within a virtual network, removing public internet exposure entirely. This is the recommended configuration for production agentic workflows that serve internal users or agents.
VNet integration allows your logic app to make outbound calls to services within a virtual network, including on-premises systems, private Azure services, and internal APIs, without exposing those services to the internet.
IP access restrictions let you restrict inbound traffic to specific IP ranges at the App Service level, providing a lighter-weight alternative to private endpoints for scenarios where full network isolation is not required.
For production agentic workflows processing sensitive data, patient records, financial data, internal business intelligence, and private endpoints with VNet integration is the right starting point.
Azure Logic Apps agentic workflow security checklist
Before going live with any agentic workflow:
- Easy Auth configured with Microsoft Entra ID (Standard) or OAuth 2.0 agent authorisation policy (Consumption)
- Developer key not used or referenced in any production caller
- Managed Identity enabled on the logic app and assigned to all backend services
- API keys and connection strings moved to Key Vault references
- Private endpoints configured for Standard workflows handling sensitive data
- Conditional Access policies applied to the Entra ID app registration backing Easy Auth
- Run history access restricted to authorised operations personnel
What comes next
The final post in this series concludes with operations: Application Insights integration, agent loop pricing, run history analysis, and deployment of agentic workflows through a CI/CD pipeline. Part 7 covers everything you need to run agent loops confidently in production.



















