Ga naar de hoofdinhoud

Hoe we bepalen welke tools een AI-agent mag gebruiken

Ask Titan ontdekt capabilities via MCP, bepaalt application policy voor de huidige gebruiker en bindt alleen de toegestane toolset aan het orchestrator-model. Discovery en autorisatie blijven afzonderlijke verantwoordelijkheden.

Enterprise-AI MCP Toolautorisatie LangGraph Least privilege
Capability-autorisatie
vóór modelbinding
MCP-catalogus
SQL Agent
Financiën
Documenten

Alles wat momenteel via MCP beschikbaar is

Policy resolver
bereken doorsnede
Control plane
Capabilitygrants
beheerd via Titan Webadmin
Modelview
✓ SQL Agent
✓ Documenten

Alleen toegestane schema's worden gebonden

✓
Autorisatiegrens
Ontdekt betekent niet toegestaan.

Zeven artikelen, één architectuur

Deel 3 onderzoekt de toolautorisatiegrens die in de orchestratielaag is geïntroduceerd. De serie gaat verder via Power BI en DAX, conversatiecontext, documentretrieval en antwoordtraceerbaarheid.

Tool discovery is geen autorisatie

Een MCP-client kan een catalogus van capabilities ontdekken. Die catalogus beantwoordt een technische vraag: welke tools stelt deze capabilityservice beschikbaar? Hij beantwoordt niet de applicatievraag die Ask Titan nog moet oplossen: welke van die tools mag deze gebruiker voor het model beschikbaar hebben?

We houden die beslissing in applicatiecode. Het model mag kiezen uit een toegestane set. Het model wordt niet gevraagd te bepalen welke capabilities het mag gebruiken.

Wat bestaat er?

Laad de huidige capability catalog en toolschema's die via MCP beschikbaar zijn.

Wat is toegestaan?

Los policy op voor de gevalideerde identity en bereken de effectieve toolset in applicatiecode.

Wat kan het model kiezen?

Bind alleen de effectieve toolschema's zodat niet-beschikbare capabilities voor die modelcall geen normale keuzes worden.

Principe: capability-discovery beschrijft de catalogus. Autorisatie bepaalt het effectieve capabilityoppervlak van het model.

Los toegang op voordat het model een toolschema ziet

Ask Titan valideert de request-identity, ontdekt de actuele MCP-capabilitycatalogus en bepaalt de geconfigureerde capabilitygrants. De runtime-policy-resolver berekent de effectieve toolset voordat de orchestrator wordt opgebouwd en toolschema's aan het model worden gebonden.

Ask Titan-flow voor capability-autorisatie Een gevalideerde aanvraagidentiteit, de ontdekte MCP-capabilitycatalogus en capabilityrechten die via Titan Webadmin zijn geconfigureerd, voeden de runtime-policyresolver. De resolver berekent de effectief toegestane toolset. Alleen toegestane toolschema’s zijn vervolgens beschikbaar voor het orchestrator-model. Ontdekte maar niet-geautoriseerde tools worden vóór modelbinding uitgesloten. REQUESTIDENTITEIT MCP-CATALOGUS APPLICATIEBELEID EFFECTIEVE TOOLS MODEL 01 · IDENTITEIT Gevalideerde gebruiker vertrouwde aanvraag identiteit ONTDEKTE TOOL SQL Agent ONTDEKTE TOOL Financiën ONTDEKTE TOOL Documenten 02 · BELEID Toegang bepalen requestidentiteit ontdekte tools capabilityrechten bereken doorsnede TOEGESTAAN SQL Agent UITGESLOTEN Financiën TOEGESTAAN Documenten 03 · KOPPELEN Model ziet alleen toegestaan schema’s CONTROL PLANE Service voor capabilityrechten beheerd via Titan Webadmin Effectieve tools = ontdekte capabilities ∩ rechten Niet-geautoriseerde capabilities bereiken nooit de modelbinding.

Autorisatie is een doorsnede. Geen promptinstructie

Ask Titan bepaalt tooltoegang vanuit application policy en vergelijkt die grants met de tools die momenteel via MCP beschikbaar zijn. Een grant alleen is niet voldoende als de capability niet meer bestaat. Discovery alleen is niet voldoende als de huidige identity deze niet mag gebruiken.

01

Start vanuit gevalideerde identity

Los policy pas op nadat de applicatie een vertrouwde identity voor de request heeft.

02

Laad applicatiegrants

Gebruik stabiele capability-identifiers om de tools te bepalen die voor die identity zijn toegestaan, inclusief eventuele expliciete baselinepolicy.

03

Snijpunt met discovery

Alleen tools die zowel momenteel discoverable als toegestaan zijn worden onderdeel van de effectieve set.

Vereenvoudigd autorisatiepatroon
available_tools = await discover_mcp_tools()
user_grants = await resolve_policy(identity)

allowed_names = unique([
    *user_grants,
    *baseline_capabilities,
])

effective_tools = [
    tool
    for tool in available_tools
    if tool.name in allowed_names
]
OntdektToegekend via beleidEffectief resultaat
JaJaBind de tool
JaNeeSluit het uit
NeeJaNiet beschikbaar; niet binden

Laat het model geen tools zien die het niet mag gebruiken

Tool calling werkt vanuit schema's die aan het model worden geleverd. In Ask Titan wordt de orchestratorgraph gemaakt met de effectieve toolset en dezelfde set aan het model gebonden. Een niet-toegestane capability is daardoor geen normale kandidaat voor modelselectie in die request.

Een bewust beperkt capability-oppervlak

Begrensd

Toegestaan capability-schema

Naam, beschrijving en inputschema zijn beschikbaar voor model-toolselectie.

Niet gebonden

Niet-geautoriseerde capability

Het schema wordt uitgesloten van de huidige modelcall in plaats van erop te vertrouwen dat het model het negeert.

Vereenvoudigd model-binding-patroon
orchestrator = build_graph(
    tools=effective_tools,
    checkpointer=conversation_memory,
)

# Inside the model node
model_with_tools = (
    model.bind_tools(effective_tools)
    if effective_tools
    else model
)

response = await model_with_tools.ainvoke(context)
Securityboundary: een prompt kan modelgedrag sturen, maar applicatiecode moet bepalen welke toolschema's beschikbaar worden voor selectie.

“Gebruik deze tool niet” is gedragsinstructie

Zodra een toolschema aan het model is gebonden, is die capability onderdeel van het beschikbare beslisoppervlak van het model. Een prompt kan beïnvloeden of het model deze kiest, maar verwijdert de capability niet. Ask Titan bepaalt autorisatie eerst in software en bindt alleen de effectieve toolset aan het model.

Vermijd

Bind elke tool en vertrouw vervolgens op promptinstructies

Het model ziet capabilityschema's buiten de effectieve toolset en kan daarvoor toolcalls uitsturen. Als de prompt de enige beperking is, hangt handhaving af van probabilistisch modelgedrag.

Voorkeur

Los toegang eerst op en bind daarna alleen de effectieve toolset

Runtimebeleid doorsnijdt ontdekte capabilities met geconfigureerde grants vóór model binding. Het model kan alleen redeneren over toegestane capabilities, terwijl autorisatie op bronniveau tijdens uitvoering gehandhaafd blijft.

MCP-autorisatie en application tool policy lossen verschillende problemen op

Moderne MCP-specificaties bevatten autorisatiemechanismen om client-naar-server-toegang te beschermen. Dat is belangrijk, maar het is niet dezelfde vraag als Ask Titan's application policy: welke ontdekte capability-schema's mogen voor deze gevalideerde gebruiker aan de orchestrator worden aangeboden?

We houden deze verantwoordelijkheden gescheiden, zodat toegang op protocolniveau kan evolueren zonder per-user capability policy naar het model te verplaatsen of te vermengen met bronpermissies.

MCP-transport / servertoegang

Bepaalt of een client zich kan authenticeren bij en communiceren met de MCP-service.

Applicatie-capabilitypolicy

Bepaalt welke ontdekte toolschema's in aanmerking komen voor het huidige Ask Titan-request.

Model-toolselectie

Kiest uit de al toegestane schema's die aan het model worden aangeboden.

Bronautorisatie

Bepaalt wat het onderliggende systeem de geselecteerde capability laat lezen of uitvoeren.

Toolautorisatie geeft geen toegang tot de databron

Een gebruiker toestaan een specialistische capability aan te roepen en die capability toegang geven tot data zijn afzonderlijke controls. Ask Titan behandelt applicatiebrede toolautorisatie als één laag, niet als vervanging voor credentials, rollen, grants of bronnatieve controls in gekoppelde systemen.

Capability-autorisatie

Mag deze identiteit deze Ask Titan-capability überhaupt gebruiken?

Capabilityverbinding

Tegen welke geconfigureerde bron of welk semantisch model voert de specialist uit?

Bronhandhaving

Wat staan de credentials, rollen, grants en bronspecifieke securitycontrols daadwerkelijk toe?

Belangrijk: deze architectuur impliceert geen automatische end-to-end row-level of column-level security. Die controls hangen af van de aangesloten bron, het identitymodel en de deploymentconfiguratie.

Policy moet een veranderende toolcatalogus overleven

Enterprise-toolcatalogi veranderen. Capabilities worden toegevoegd, hernoemd, uitgeschakeld of verwijderd. Autorisatie kan daarom geen eenmalige lijst zijn die in een prompt wordt gekopieerd. De effectieve set moet steeds opnieuw tegen de actuele catalogus worden berekend.

Nieuwe tool

Ontdekt, niet granted

Een nieuw ontsloten capability wordt niet automatisch beschikbaar voor bestaande gebruikers.

Verwijderde tool

Toegekend, niet ontdekt

Een verouderde beleidsregel kan geen functie beschikbaar maken die niet meer in de actuele catalogus staat.

Huidige tool

Ontdekt en granted

Alleen de intersectie wordt onderdeel van het effectieve tooloppervlak van de orchestrator.

Autorisatie moet bij fouten toegang beperken

De nuttige eigenschap van het intersection-model is dat de meeste mismatches de effectieve toolset verkleinen. Een verouderde grant, ontbrekende capability of malformed user-specific policy mag niet stilletjes breder modelaccess opleveren.

CaseVerwacht runtimegedrag
Request identity kan niet worden gevalideerdBepaal voor het request geen normale user-toolset.
Gebruikersspecifiek beleid ontbreekt of is ongeldigBreid toegang niet uit voorbij expliciet gedefinieerde baselinepolicy.
Tool is ontdekt maar niet grantedSluit de tool uit vóór graphconstruction en modelbinding.
Policy geeft een tool die niet wordt ontdektDe tool is niet beschikbaar en kan niet in de effectieve set komen.
Onderliggende bron weigert uitvoeringRespecteer de bronboundary; applicatie-tooltoegang overschrijft bronbeveiliging niet.

Discovery ≠ autorisatie

Dat een tool bestaat, betekent niet dat deze beschikbaar is voor de huidige gebruiker.

Prompting ≠ autorisatie

Modelinstructies zijn niet de plek om de effectieve capabilityset af te dwingen.

Tooltoegang ≠ datatoegang

Applicatiegrants vervangen broncredentials, rollen of native security niet.

Policy grant ≠ toolbestaan

Verouderde grants kunnen een capability die niet meer in de huidige catalogus staat niet opnieuw activeren.

Het model moet kiezen binnen permissies. Het moet ze niet definiëren

Ask Titan houdt capability-policy in deterministische applicatiecode en geeft het model alleen de effectieve toolset. Zo blijft modelreasoning binnen een capabilitygrens die de applicatie onafhankelijk kan inspecteren, wijzigen en testen.

Valideer de identiteit voordat beleid wordt bepaald.
Behandel MCP-discovery als catalog discovery.
Bereken een effectieve toolset in applicatiecode.
Bind alleen de effectieve toolschema's aan het model.
Houd bronbeveiliging gescheiden van toolautorisatie.
Bereken toegang opnieuw op basis van de huidige catalogus.
Gebruik promptinstructies niet als primaire access-control-grens.

Deel 4 · Hoe Ask Titan Power BI semantic models bevraagt met DAX

Vervolgens gaan we achter één specialistische capability-grens: semantic-model-metadata, measures en relaties, DAX-generatie, executie en foutfeedback wanneer governed businesslogica in Power BI leeft.

Lees deel 4

Vragen over enterprise-AI-agent-toolautorisatie

Praktische antwoorden over MCP tool discovery, application-level capability policy, model-toolbinding en bronautorisatie.

Wat betekent toolautorisatie in Ask Titan?

Toolautorisatie bepaalt welke ontdekte specialistische capabilities voor de gevalideerde identity zijn toegestaan en daardoor voor de request aan het orchestrator-model kunnen worden gebonden.

Waarom is MCP tool discovery niet hetzelfde als gebruikersautorisatie?

MCP discovery vertelt de client welke tools de capabilityservice momenteel aanbiedt. Ask Titan past nog steeds application policy toe om te bepalen welke van die ontdekte tools beschikbaar worden voor de huidige gebruiker en model-call.

Heeft MCP eigen autorisatie?

Ja. De huidige MCP-specificaties bevatten autorisatiemechanismen om client-to-server-toegang te beschermen. De application tool policy van Ask Titan is een aparte laag die bepaalt welke ontdekte capability-schema's voor een specifieke gevalideerde gebruiker aan de orchestrator worden aangeboden.

Waarom tools filteren vóór model binding?

Toolschema's die tijdens model binding worden aangeleverd definiëren de capabilities die het model normaal kan selecteren. Eerst filteren betekent dat niet-geautoriseerde capabilities worden uitgesloten van het effectieve tooloppervlak van het model in plaats van op promptinstructies te vertrouwen om ze te onderdrukken.

Kan een system prompt worden gebruikt om tooltoegang te beperken?

Een prompt kan modelgedrag sturen, maar hoort niet de primaire autorisatiegrens te zijn. Ask Titan bepaalt capability-toegang in applicatiecode en bindt alleen de effectief toegestane toolset aan het model.

Wat gebeurt er als policy toegang geeft tot een tool die niet meer beschikbaar is?

De tool komt niet in de effectieve set omdat Ask Titan policy grants doorsnijdt met de momenteel ontdekte MCP-catalogus. Een verouderde grant kan een ontbrekende capability niet callable maken.

Vervangt toolautorisatie op applicatieniveau datapermissions van de bron?

Nee. Capability-autorisatie en bronautorisatie zijn afzonderlijk. Credentials, rollen, grants en source-native controls bepalen nog steeds wat het gekoppelde systeem werkelijk toestaat.

Kan het model een tool aanroepen die er niet aan is gebonden?

Het normale tool-callingoppervlak bevat alleen de schema's die voor die request zijn gebonden en de LangGraph-toolnode wordt uit die toegestane set gebouwd. Een uitgesloten capability valt daardoor buiten de geconfigureerde toolset voor de turn.

Hoe veranderen toolrechten wanneer de capability catalog verandert?

De effectieve toolset wordt opnieuw berekend tegen de huidige catalogus. Nieuwe tools erven bestaande grants niet automatisch, terwijl verwijderde tools niet opnieuw effectief worden, zelfs als een verouderde policy-entry blijft bestaan.

Geef AI-agents bruikbare tools zonder iedere tool voor iedere gebruiker beschikbaar te maken

Ask Titan scheidt capability-discovery, application policy, model-toolselectie en bronautorisatie. Hetzelfde patroon kan worden gebruikt in enterprise-AI-systemen die gecontroleerde toegang tot meerdere specialistische capabilities nodig hebben.

Eén request, vier beslissingen

01Valideer de identiteit van de request
02Bepaal toegestane capabilities in applicatiebeleid
03Bind alleen de effectieve toolset aan het model
04Houd bronautorisatie als afzonderlijke grens

Technische referenties

De voorbeelden in dit artikel zijn vereenvoudigde architectuurpatronen. Deze publieke referenties documenteren de richting van MCP-autorisatie en het LangChain/LangGraph tool-bindinggedrag dat in het ontwerp wordt gebruikt.