Are your SharePoint agents suddenly surfacing answers that feel too honest—or worse, too exposed? It’s probably not “AI being spooky.”
It’s your permissions, scope, and DLP. In this episode, we unpack why SharePoint agents leak data, why it’s almost never “hallucination,” and how to fix it with:
- Tight knowledge source scoping
- Permission and inheritance hardening in SharePoint
- Sensitivity labels + Purview DLP that actually block agents
- Approval gates for agents, licensing boundaries, and data policies
- A baseline policy pack you can roll out as an IT admin today
It leaked because you overscoped the agent and left permissions inheritance and DLP in a half-configured state. In this episode, you’ll learn:
- How SharePoint agents actually see data (Graph + ACLs + labels + DLP)
- Why grounding does NOT equal security
- The difference between retrieval filters and permissions boundaries
- How to scope knowledge like a lawyer writes contracts
- How to break inheritance the right way and pair it with sensitivity labels
- How to build DLP patterns that bite, not just log
- How to use PayG / licensing and approval workflows as hard guardrails
- How to monitor, audit, and safely rollback when something goes wrong
- A baseline agent governance pack you can deploy today
- Agents don’t read your intentions; they read Microsoft Graph
- Graph is the bloodstream – if ACLs allow access, agents can see it
- An agent = user persona + retrieval filters
- Persona = the identity and its permissions
- Retrieval = which libraries/folders/URLs you pointed at
- Why grounding filters relevance but doesn’t shrink legal access
- How permissions inheritance becomes silent escalation
- How an overscoped agent “accidentally” pulls HR or Legal content from adjacent libraries
- Why “it’s just one site root” is the fastest way to disaster
- Gate → Find → Enforce
- Permissions (ACLs) gate access
- Retrieval filters help find content
- Labels + DLP enforce what’s allowed to be processed
- Library-level sources only
- No site roots
- No hub-level “everything under here” shortcuts
- Shallow folder depth, avoid recursive “grab the world” patterns
- Metadata filters only
- Only ingest items where Status = Approved, Version = Published, Department = X, etc.
- Exclude drafts, archives, and “Working” trees
- No crawling arbitrary internal/external URLs “for context”
- Many small, narrow agents → safer and more predictable
- One giant “encyclopedic” agent → high blast radius
- Why you should disable general AI knowledge for regulated agents
- How to use an explicit fallback answer: “I’m not authoritative for that. Here’s what I can answer.”
- How to test scope using edge-case queries (in-domain vs out-of-domain)
- Answerability – in-domain questions answered from the right library
- Containment – answers only cite approved sources
- Silence quality – out-of-domain questions get clean, safe refusals
- Site-level inheritance quietly brings in:
- Everyone / Authenticated Users
- Old project groups
- Guests that never got removed
- Agents respect ACLs, not vibes – if the identity can open a file, it can process it
- Identify must-isolate libraries: HR, Legal, Finance, R&D, high-risk policies
- Break inheritance at the library level, not the entire site
- Replace broad groups with:
- Azure AD security groups by role
- Narrow Owners / Members / Readers
- No “All employees” in sensitive libraries
- Tier A – Confidential: minimal owners/members, no guests
- Tier B – Internal-only: department-wide but no external users
- Tier C – Public-internal: all employees but still no guests
- Labels are not stickers; they are policy keys
- Use labels like Confidential – HR, Restricted – Finance, Internal
- Map labels to real behavior through Purview DLP:
- Some labels = agents allowed
- Some labels = agents always blocked, even if the user can view
- HR agent runs with a service identity allowed only in HR Policy library
- Adjacent HR Drafts library uses unique permissions and different labels
- DLP says:
- Agent X can process Confidential – HR
- All other agents get blocked on that label
- Keep agent identities narrow
- Avoid “run as current user” for regulated scenarios
- Separate human visibility from machine processing
- No one spins up a SharePoint agent without:
- Business purpose
- Owner + support contact
- Expiration date
- Exact knowledge source libraries
- Service identity to run as
Become a supporter of this podcast: https://www.spreaker.com/podcast/m365-show-podcast--6704921/support.
Follow us on:
Substack
Information
- Show
- FrequencyUpdated Daily
- PublishedNovember 24, 2025 at 5:00 PM UTC
- Length20 min
- RatingClean
