Microsoft Foundry-agents beheren: Identity-First controle voor hosted agents
.png)
Gebouwd voor snelheid: ~10ms latentie, zelfs onder belasting
De razendsnelle manier om je modellen te bouwen, volgen en implementeren!
- Verwerkt 350+ RPS op slechts 1 vCPU — geen tuning nodig
- Productieklaar met volledige enterprise-ondersteuning
Waarom hosted agents een controlepunt nodig hebben
Microsoft Foundry maakt het eenvoudig om een agent op te zetten en naar tools te verwijzen. Het risico is hetzelfde als bij elke krachtige agent: zodra deze een MCP-server met klantgegevens kan aanroepen, moet de vraag "wie deed dat, voor wie, en mocht dat?" beantwoord kunnen worden — en een rechtstreekse agent-naar-server-aanroep beantwoordt daar niets van. Door de MCP gateway in het pad te plaatsen, wordt elke tool-call een beheerde, toegewezen gebeurtenis, wat het hele uitgangspunt is van AI agent governance.
Twee modi: niet-beheerd vs. handelen namens een gebruiker
Welke modus u gebruikt, hangt af van de vraag of er een mens in de loop is:

Hoe de agent wordt gekoppeld aan een TrueFoundry-identiteit
Elke Foundry-agent heeft een Entra-agentidentiteit, beheerd door een agent identity blueprint. U spiegelt deze in de TrueFoundry Agent Registry als een identity-provider-backed entry — hetzelfde registratiepad dat elke extern uitgegeven agent gebruikt:

Entra geeft de identiteit uit; TrueFoundry dwingt het aanroep-pad af. Toegang wordt beheerd door de bekende collaborator grants — welke MCP-servers de agent mag aanroepen en voor welke gebruikers deze mag handelen — het model in enterprise MCP access control.
De Entra-registraties
Drie app-registraties voeren het werk uit, waarvan er twee worden gedeeld door beide modi:
Aan de TrueFoundry-zijde registreert u de MCP-server met Entra-inbound auth en een outbound configuratie van Client Credentials (scope /.default) of JWT Bearer voor on-behalf-of, voegt u vervolgens de agent toe aan de registry en verleent u deze toegang tot de server.
Waar teams de mist in gaan
De tokenversie op 1 laten staan. Stel requestedAccessTokenVersion: 2 in op agent-service, anders vallen de azp- en issuer-claims verkeerd uit en kan de gateway de agent niet oplossen.
Admin consent overslaan. Zonder dit ontbreekt de roles-claim simpelweg en mislukken client-credentials-aanroepen met een insufficient-role-fout.
Een credential opnieuw instellen zonder `--append`. Dit verwijdert bestaande secrets. En preAuthorizedApplications vervangt in plaats van dat het samenvoegt — het opnieuw toevoegen van één entry kan de andere laten vallen.
Scopes met komma's scheiden in Foundry. Scopes zijn daar spatie-gescheiden; client credentials gebruikt /.default, geen benoemde scopes. Kleine syntaxis-fouten hier leiden stroomafwaarts tot audience- of scope-fouten.
Een uitgewerkt voorbeeld
Een team voert een niet-beheerde Foundry-agent uit die records verrijkt vanaf een interne MCP-server. Ze maken de mcp-api- en agent-service-registraties aan, stellen de app-rol Tool.Invoke beschikbaar op mcp-api, verlenen deze aan agent-service en geven hier admin-consent voor. In Foundry stellen ze de MCP-verbinding in op "Microsoft Entra — agent identity"; in TrueFoundry registreren ze de server met Entra-inbound en client-credentials-outbound (/.default), en voegen ze de agent toe aan de registry. Nu krijgt de agent een identiteitstoken, wisselt de gateway deze uit als agent-service, en ontvangt de MCP-server een zuiver Tool.Invoke-applicatietoken — waarbij het auditspoor van de gateway vastlegt welke agent de aanroep heeft gedaan. Wanneer ze later een gebruikersgerichte stroom toevoegen, voegen ze de on-behalf-of-registraties toe en schakelen ze die verbinding om naar identity passthrough.
Valkuilen om rekening mee te houden
- Foundry-agents voeren hun eigen uitwisseling uit, dus in tegenstelling tot Copilot Studio kan de eigen identiteit van de agent mee reizen met de aanroep — nuttig wanneer u wilt dat de agent stroomafwaarts bij naam wordt genoemd, niet alleen in het gateway-logboek.
- Niet-geregistreerde agents worden geweigerd, dus een agent die niet in de registry staat, kan simpelweg niet doorverbinden — deny-by-default, niet fail-open.
- Veelvoorkomende fouten hebben te maken met claims: missing_token, insufficient_scope, insufficient_role en audience mismatches zijn meestal terug te voeren op tokenversie, toestemming of scope-syntaxis.
- Gecachte tokens na een toestemmingswijziging kunnen een oplossing maskeren — forceer een nieuw token bij het valideren.
- Uitwisseling per hop is in ontwikkeling; controleer bij multi-agent-ketens hoe delegatie is ingericht in uw versie.
Wat de gateway concreet toevoegt
"Leid het via de gateway" is makkelijk gezegd; het is de moeite waard om precies te zijn over wat dat daadwerkelijk oplevert, omdat elk punt een controle is die een rechtstreekse agent-naar-server-aanroep simpelweg niet heeft:
- Authenticatie van de aanroeper en agent-resolutie — het inkomende token wordt geauthenticeerd en aan de hand van de claims gekoppeld aan een geregistreerde agent; een niet-geregistreerde agent wordt geweigerd.
- Tool-scoping per agent — u beperkt welke tools een agent mag aanroepen, niet alleen welke servers, zodat een read-only agent geen write-tool kan bereiken die toevallig op dezelfde server staat.
- Limieten voor gebruikersdelegatie — in de on-behalf-of-modus kan de agent alleen handelen namens gebruikers die de agent toegang hebben verleend, ongeacht wat de gebruiker rechtstreeks zou kunnen bereiken.
- Rate limits en guardrails — toegepast per server of tool, zodat een agent in een lus een stroomafwaarts systeem niet kan uitputten of ongecontroleerd gegevens kan exfiltreren.
- Token-uitwisseling — de gateway genereert het exacte token dat de MCP-server verwacht, zodat de server nooit specifieke Foundry- of Entra-details hoeft te begrijpen.
- Auditattributie per agent — elke aanroep wordt geregistreerd op naam van de agent (en, in OBO-modus, de gebruiker), wat het bewijs is waarnaar een auditor vraagt.
Deze blijven in beide modi op dezelfde manier van kracht; alleen de token-brokering verschilt. Die consistentie is het punt — u denkt één keer na over toegang, en het geldt ongeacht of de agent niet-beheerd draait of namens een persoon.
De installatie, stap voor stap
De documentatie splitst de configuratie op in twee delen: eerst client-credentials, daarna on-behalf-of daar bovenop gebouwd. Client credentials is het kortere pad — ongeveer elf stappen — en het is de moeite waard om dit eerst te doen, zelfs als u uiteindelijk OBO wilt, omdat het de werking bewijst voordat u de gebruikersdimensie toevoegt.
- Maak de mcp-api- en agent-service-registraties en hun service principals aan.
- Configureer agent-service met een identifier-URI, tokenversie 2 en een access_as_user-scope.
- Stel de app-rol Tool.Invoke beschikbaar op mcp-api, verleen deze aan agent-service en geef hier admin-consent voor.
- Pre-autoriseer de agent blueprint op agent-service als een afzonderlijke aanroep, en maak een credential aan op agent-service met --append.
- Stel in Foundry de MCP-verbinding in op "Microsoft Entra — agent identity" met audience api:// plus het agent-service-ID.
- Registreer in TrueFoundry de MCP-server met Entra-inbound en "OAuth2 → Microsoft Entra → Client Credentials" outbound (scope /.default), en voeg vervolgens de agent toe aan de registry.
On-behalf-of (deel twee) bouwt daarop voort: voeg een gedelegeerde Tool.Write-scope toe op mcp-api, maak de agent-client-registratie aan met access_as_user en offline_access, pre-autoriseer agent-client op agent-service (toegevoegd, niet vervangen), stel de Foundry-verbinding in op "OAuth identity passthrough → custom OAuth", en schakel de TrueFoundry outbound-configuratie om naar "JWT Bearer".
Problemen met veelvoorkomende fouten oplossen
Vrijwel elke fout hier heeft te maken met claims — de aanroep wordt geweigerd omdat een token is gegenereerd met de verkeerde versie, audience of scope. De oplossingen zijn specifiek:
Nog een punt dat een juiste oplossing kan maskeren: na het wijzigen van de toestemming kan een gecached token blijven mislukken — forceer een nieuw token voordat u concludeert dat de configuratie onjuist is. Als de gateway weigert vanwege een mismatch in het registry subject, controleer dan of het registry subject overeenkomt met het agent identity object ID (client credentials) of het agent-client application ID op azp (on-behalf-of).
Gerelateerde artikelen
- Agent Identity en On-Behalf-Of-delegatie — het onderliggende delegatiemodel
- Microsoft Copilot Studio-agents beheren — de no-code variant
- Wat is een MCP Gateway? — het beheren van tool-calls
- Enterprise MCP Access Control — de bevoegdheden achter elke aanroep
- AI Agent Governance — de vijf pijlers waar dit in past
Conclusie
Foundry maakt het eenvoudig om agents te bouwen; de gateway zorgt ervoor dat ze veilig draaien. Door de TrueFoundry MCP Gateway in het pad te plaatsen, krijgen de tool-calls van een Foundry-agent een door Entra uitgegeven identiteit, een door TrueFoundry afgedwongen beslissing, de juiste token-uitwisseling voor de MCP-server en een auditregel waarin de agent wordt genoemd — en in de on-behalf-of-modus ook de gebruiker. Client credentials heeft betrekking op niet-beheerd werk; on-behalf-of omvat het handelen namens een persoon. Niet-geregistreerde agents komen er simpelweg niet doorheen.
Dat is het verschil tussen een hosted agent die uw systemen kan bereiken en een agent die ze bereikt onder governance.
TrueFoundry AI Gateway levert een latentie van ~3–4 ms, verwerkt 350+ RPS op 1 vCPU, schaalt moeiteloos horizontaal en is klaar voor productie, terwijl LiteLLM last heeft van hoge latentie, moeite heeft boven een gemiddeld aantal RPS, geen ingebouwde schaling heeft en het meest geschikt is voor lichte workloads of prototypes.



Eén gateway voor elk LLM, elke agent en elke MCP-server
Recente blogs
Veelgestelde vragen
How do Foundry agents reach MCP servers under governance?
Through the TrueFoundry MCP Gateway rather than directly. The gateway authenticates the caller, resolves it to a registered agent, applies access policy, performs the token exchange the MCP server requires, and writes an audit line. Unregistered agents are refused.
What's the difference between client-credentials and on-behalf-of mode?
Client credentials is for unattended agents with no user — the MCP server sees an app-only token with the Tool.Invoke role. On-behalf-of is for agents acting for a signed-in user — the token carries both the user and the agent, with a delegated Tool.Write scope.
How is a Foundry agent registered in TrueFoundry?
As an identity-provider-backed entry in the Agent Registry, matched on the agent identity object ID in client-credentials mode, or the agent-client application ID (via the azp claim) in on-behalf-of mode.
Why is my roles claim missing?
Almost always because admin consent wasn't granted after assigning the Tool.Invoke app role, or because token version is still 1. Set requestedAccessTokenVersion to 2 on agent-service and grant admin consent.
Can the agent's own identity travel with the call?
Yes — Foundry agents perform their own token exchange, so the agent identity can be carried downstream, unlike Copilot Studio agents whose Entra Agent ID stays in the gateway audit trail.
Can I run the gateway in my own cloud?
Yes. The TrueFoundry Gateway can be self-hosted or deployed in your VPC, so agent tokens, exchanges, and audit stay within your environment alongside your Azure resources.












.png)

.webp)



.webp)








.webp)





