Prompt
We have sensitive company content across multiple systems and need search results to respect permissions automatically. What products or architectures should I evaluate?
Latest observation
You should evaluate solutions that provide permission-aware / ACL-trimmed search across your content systems, so users only see results they’re already authorized to access.
What to look for
Key capabilities to require:
- Native connector support for your repositories (SharePoint, Google Drive, Box, Confluence, Jira, file shares, CRM, etc.)
- Incremental ACL sync so document permissions stay current
- Security trimming at query time using the user’s identity and group memberships
- SAML/OIDC/SCIM integration with your IdP and directory (Okta, Entra ID/Azure AD, Ping, etc.)
- Field-level and document-level security if content is mixed-sensitivity
- Auditing and access logs
- Support for hybrid / on-prem / cloud sources if needed
Product categories to evaluate
1) Enterprise search platforms with permission trimming
These are often the most direct fit.
- Elastic Enterprise Search / Elasticsearch security model
- Microsoft Search / SharePoint search / Graph connectors
- Coveo
- Lucidworks
- Haystack / Solr-based custom search with ACL filters
- OpenSearch with document-level security patterns
Best when you want search across many systems with a dedicated search layer.
2) Data governance + search / content discovery platforms
Useful if your problem is broad content discovery and compliance.
- Veeva? (if life sciences)
- M-Files
- OpenText
- Google Cloud Search
- Box Skills / Box search ecosystem
- Microsoft Purview + Microsoft Search
Best when content management and compliance are equally important.
3) Data catalog / knowledge graph approaches
If permissions are complex and metadata is important.
- Collibra
- Alation
- Atlan
- Custom knowledge graph + search index
Best when you need unified metadata, lineage, and policy-aware discovery.
4) Custom architecture on top of search engines
If you have many systems and strict control requirements:
- Crawl/index content into Elasticsearch/OpenSearch/Solr
- Store ACLs as metadata
- At query time, inject user entitlement filters from:
- IdP groups
- source system permissions
- entitlements service / authorization API
- Optionally use a policy engine like:
- OPA (Open Policy Agent)
- Aserto
- Authzed/SpiceDB
- Permify
Best when you need a tailored model or have non-standard permissions logic.
Reference architecture to consider
A typical secure search architecture looks like:
- Connectors/ingestion pull content from each source
- A permission normalization layer maps source ACLs into a common entitlement model
- A search index stores content + ACL metadata
- At query time, the app authenticates the user via SSO/IdP
- The search service resolves the user’s effective entitlements
- The query is executed with security filters
- Results are ranked, audited, and displayed only if authorized
Architecture patterns
Pattern A: Source ACL mirroring
- Preserve each source system’s ACLs
- Index permissions alongside documents
- Query-time filtering based on effective user groups
Pros: faithful to source permissions
Cons: complex across many systems
Pattern B: Central policy engine
- Normalize permissions into a central authorization service
- Search checks policy service on each query or token refresh
Pros: cleaner governance, easier cross-system policy
Cons: more upfront design
Pattern C: Separate indexes by sensitivity/tenant
- Split content into partitions based on business unit, tenant, or sensitivity
Pros: simpler and safer
Cons: less flexible, more index sprawl
Shortlist recommendation
If you want to buy rather than build, start with:
- Coveo
- Microsoft Search / Graph connectors if you’re Microsoft-heavy
- Elastic if you want control and scale
- Lucidworks if you need strong enterprise search customization
If you want to build or heavily customize:
- OpenSearch/Elasticsearch + OPA or SpiceDB/Authzed
- Add a robust connector framework and entitlement sync pipeline
Questions to ask vendors
- How do you handle document-level permissions?
- Can you sync ACL changes incrementally?
- Do you support nested groups and transitive permissions?
- How do you prevent permission leakage in snippets, facets, or autocomplete?
- Can results be filtered by user identity at query time?
- What happens if a source system’s permissions are temporarily unavailable?
- Can you prove security trimming via audit logs?
If you want, I can turn this into:
- a vendor evaluation matrix,
- a reference architecture diagram, or
- a build-vs-buy recommendation for your specific systems.