Tekunda Team

Tekunda Team

AppExchange security review voor agentic apps: wat er anders is

AppExchange security review voor agentic apps: wat er anders is

Kort antwoord: agentic apps doorlopen dezelfde AppExchange security review als elk ander managed package. Wat verandert is het oppervlak dat die review bestrijkt. Salesforce bepaalt de reikwijdte van de tests door de data te volgen, en in een app met een taalmodel reist klantdata nu een prompt in, vaak de org uit naar een model, en terug als tekst die een actie kan starten. Zorg dat je drie antwoorden klaar hebt: wat er in de prompt gaat, wat de org verlaat, en wat de agent namens een gebruiker mag doen.

Wat verandert er echt als je package agentic is?

Een agentic app is voor de review elk package dat agent actions, topics of prompt templates meelevert, of dat vanuit Apex of Flow een taalmodel aanroept. De richtlijnen zijn daar niet voor herschreven (Salesforce Developers). De reikwijdte is simpelweg groter geworden, omdat Salesforce bepaalt wat er getest wordt door de data te volgen, en er valt veel meer databeweging te volgen dan in een klassiek CRM-package.

In een klassiek managed package waren de risicovolle paden eindig: SOQL, sharing, een paar callouts, wat Visualforce-output. Een agentic app bouwt daarnaast prompts uit klantrecords, stuurt die ergens heen en handelt vervolgens naar het antwoord. Elke tussenstap is een plek waar een reviewer gaat kijken.

Wat vragen reviewers over promptverwerking?

Wees klaar om in de Developer Edition-org die je indient precies te laten zien waar prompttekst vandaan komt en wat hem begrenst. In de praktijk gaat het om vijf dingen:

  • Integriteit van instructies. Tekst van gebruikers mag jouw systeeminstructies niet kunnen herschrijven. Behandel elk vrij tekstveld dat een prompt bereikt als vijandige input.
  • Grounding respecteert rechten. Records die een prompt onderbouwen, moeten in de context van de uitvoerende gebruiker worden gelezen, met sharing en field-level security afgedwongen. Een agent die een record samenvat dat de gebruiker niet mag openen, is gewoon een sharing-overtreding met betere manieren.
  • Modeloutput is onbetrouwbaar. Render hem nooit rauw in markup en plak hem nooit in een query. De oude injectieregels gelden ook voor gegenereerde tekst.
  • Zo min mogelijk data in de prompt. Stuur de velden die de taak nodig heeft, niet het hele record.
  • Logdiscipline. Bewaar je prompts of antwoorden om te debuggen, dan bewaar je klantdata. Vermeld dat, begrens het en laat beheerders het uitzetten.

Wat moet er kloppen aan datauitvoer?

Dit is de vraag die klassieke packages zelden goed hoefden te beantwoorden, en hier verliezen agentic inzendingen weken. Zit een onderdeel buiten Salesforce, dan vraagt de inzending om de URL's en inloggegevens van die externe onderdelen, een Checkmarx-scanrapport en een dynamic application security test-rapport (Salesforce Developers). Daarbovenop wil je reviewer, uit ervaring, dit uitgeschreven zien:

  • Een expliciete lijst van welke objecten en velden de org mogen verlaten, per functie.
  • Een named credential voor elk model-endpoint, zodat endpoint en authenticatie nooit in Apex staan (Salesforce Help).
  • Wie de credential houdt: de sleutel van de klant zelf, of die van jou namens hem. Zeg welke, en waarom.
  • Wat de modelaanbieder bewaart, hoe lang en in welke regio.
  • Of een beheerder de externe aanroep kan uitschakelen en toch een werkende app houdt.

En aanroepen naar modellen van derden?

Waar je de vertrouwensgrens legt, bepaalt hoeveel van de review bij jou terechtkomt. Gebruik je de AI-diensten van het platform, dan ligt die grens grotendeels bij Salesforce. Roep je vanuit je package rechtstreeks een extern model aan, dan moet jij alles aantonen: het endpoint, de authenticatie, het gedrag als de aanbieder plat ligt of onzin teruggeeft, en de isolatie tussen klanten. Geef reviewers werkende testtoegang tot dat externe onderdeel, geen beschrijving ervan.

Wat mag de agent namens een gebruiker doen?

Zodra een actie schrijft, verwijdert, verstuurt of betaalt, gaat de review niet meer over code maar over bevoegdheid. Geef de smalst mogelijke permission set, draai in gebruikerscontext, vraag menselijke bevestiging voor alles wat onomkeerbaar is, en leg vast wat de agent deed en namens wie. Salesforce verwoordde de norm helder toen het zijn agentmarktplaats voor partners opende:

Je moet de AI kunnen vertrouwen. Dat betekent dat wij rechten moeten begrijpen en guardrails moeten respecteren, en dat onze enterprise-klanten compliant moeten blijven met hun oplossingen. (Alice Steinglass, EVP en GM, Salesforce Platform, diginomica)

Wat regel je voordat je indient?

  1. Een managed en released package. Unmanaged en beta packages worden geweigerd.
  2. Een Developer Edition-org met de oplossing geïnstalleerd, schone voorbeelddata, inloggegevens en gebruiksinstructies.
  3. Documentatie van eventuele false positives in je scanresultaten.
  4. Scanrapporten en inloggegevens voor elk extern onderdeel, inclusief je modelgateway.
  5. Een datastroombeschrijving van een pagina per AI-functie: trigger, verzonden velden, bestemming, bewaartermijn en de schakelaar voor beheerders.

De eerste vier zijn de gedocumenteerde inzendingsmaterialen. De vijfde staat niet op die lijst, en juist die verandert een review van meerdere rondes in een enkele ronde, omdat hij de volg-de-data-vragen beantwoordt voordat een reviewer ze hoeft te stellen.

Is AgentExchange een andere review?

AgentExchange ging open op TDX 2025 met meer dan 200 partners die vier componenttypen publiceren: actions, prompt templates, topics en agent templates, die volgens Salesforce allemaal de security review hebben doorstaan (diginomica). Zie het als dezelfde lat, gelegd langs kleinere eenheden. Eén losse action draagt dezelfde drie vragen als een volledige app, met minder code om je achter te verschuilen.

Tekunda is Salesforce PDO en heeft packages door de security review geloodst in de zorg, logistiek en maakindustrie, waaronder het Syntilio CareHub managed package dat inmiddels 12 of meer zorgorganisaties bedient op de AppExchange. Package je een agentic app, praat dan met ons vóór je eerste inzending in plaats van na je eerste afwijzing.

FAQ

Heeft een AI-functie een aparte security review nodig?

Nee. Hij wordt beoordeeld als onderdeel van je package, maar hij verbreedt wel wat er getest wordt, omdat het datapad de objecten verlaat en door een prompt loopt.

Mag ik mijn eigen model-API-sleutel meeleveren in het package?

Je mag het zo bouwen, maar wees expliciet over je keuze. Een gedeelde sleutel maakt isolatie tussen klanten en toestemming per klant jouw bewijslast.

Moet ik sharing afdwingen op data die ik voor grounding gebruik?

Ja. Grounding is een leesactie. De gebruikelijke sharing- en field-level-securityregels gelden, en een samenvatting die een verborgen veld lekt, zakt net zo hard als een rauwe query.

Wat is de meest voorkomende reden dat een agentic inzending terugkomt?

Ongedocumenteerde datauitvoer. De code is meestal prima; wat ontbreekt is een heldere verklaring van welke klantdata de org verlaat, waarheen en hoe lang die daar blijft.

Gerelateerde artikelen