Role-based access control is easy to turn on and hard to keep clean. In an enterprise analytics platform, the same workspace can hold sensitive data sources, half-finished models, and dashboards meant for hundreds of viewers. Without a deliberate design, permissions sprawl: everyone becomes an admin "just to be safe," nobody remembers who can touch what, and access reviews turn into archaeology.
AI Insights 365 — On-Prem Edition gives you the building blocks for a clean model: a multi-tenant hierarchy of organizations and workspaces, three workspace roles, AD security group mapping with inherited roles, and a queryable audit log. The blocks are only as good as how you assemble them. Here are the practices that keep enterprise analytics access defensible over time.
1. Start From Least Privilege, Not Convenience
The default instinct under deadline pressure is to grant broad access and trim later. Trimming later rarely happens. Design from the opposite direction: every user gets the lowest role that still lets them do their job, and you escalate only on demonstrated need.
In practice that means:
- New members start as Viewer unless they have a concrete authoring task.
- Editor is granted to people who actually build reports, datasets, or transforms.
- Admin is reserved for the small group that manages the workspace itself.
Least privilege is not about distrust. It limits blast radius when an account is compromised, and it keeps your audit log meaningful — when most people are Viewers, an Editor or Admin action actually stands out.
A practical test: for any grant you are about to make, ask "what is the smallest role that lets this person finish their current task?" If the honest answer is Viewer, the request for Editor is a future task, not a current one — wait until that task is real. Escalation is cheap when membership is driven from groups; over-provisioning is expensive because it almost never gets walked back.
2. Know Exactly What Each Role Means
Map responsibilities to roles before you start assigning them. The three workspace roles are deliberately coarse, which is a feature: fewer roles means fewer ambiguous edge cases.
| Role | Use it for | Avoid using it for |
|---|---|---|
| Admin | Workspace owners, membership and configuration managers | Anyone who only needs to build content |
| Editor | Report builders, dataset and transform authors | Stakeholders who only read dashboards |
| Viewer | Consumers of published reports | People who need to change anything |
When to choose Admin
Choose Admin only when someone must manage the workspace — adding members, changing mappings, configuring the workspace. Building reports does not require Admin; that is Editor's job. A common anti-pattern is granting Admin so a power user can "share" content. They don't need it.
When to choose Editor
Editor is the working role for analysts and engineers who produce content. It is the right home for the people writing transforms and shaping datasets, but it is broader than read-only, so keep the population intentional.
When to choose Viewer
Most of your users belong here. Executives, business stakeholders, and downstream teams who consume dashboards should be Viewers. If a Viewer occasionally needs to author, escalate that individual rather than promoting the whole group.
3. Structure Organizations and Workspaces Deliberately
The platform is multi-tenant: Organizations contain Workspaces, and users only see resources inside their own organization. That isolation is your strongest structural control, so use the hierarchy intentionally rather than dumping everything into one workspace.
Good structuring habits:
- Use organizations as hard tenant boundaries — separate business units, subsidiaries, or customers that should never see each other's data.
- Use workspaces to separate domains of work within an organization — finance reporting, operations dashboards, a data engineering sandbox.
- Keep production reporting workspaces separate from build/sandbox workspaces so a Viewer audience never lands on half-finished content.
Remember the precedence model when you reason about effective access: workspace owner > OrgAdmin in the same organization > SuperAdmin. SuperAdmin is the only role that crosses organizations, so treat that population as you would domain admins — small, monitored, and reviewed.
A simple structural pattern
A pattern that holds up in most enterprises:
- One organization per hard tenant boundary (business unit, subsidiary, or customer).
- Within each organization, a small set of domain workspaces (for example
finance-reporting,ops-dashboards,data-engineering). - A clear split between a published reporting workspace, where the audience is Viewers, and a build workspace, where Editors and Admins work.
Naming workspaces consistently pays off at review time — when a name tells you the domain and the intended audience, an out-of-place member is obvious at a glance.
4. Drive Membership From AD Groups, Not Spreadsheets
Direct, per-user assignment does not scale and it drifts. The moment your access list lives in someone's memory, it is already wrong. Where you have existing Active Directory security groups that already model team membership, map them to workspaces.
With WorkspaceGroup mappings:
- You map an AD security group to a workspace and assign it an inherited role (Admin, Editor, or Viewer).
- Members of the group inherit that role.
- Sync is bidirectional — adding a user to the AD group grants access; removing them revokes it.
The payoff is that joiner-mover-leaver is handled where it should be: in your directory. When an analyst changes teams, their AD group membership changes and their workspace access follows automatically. You are not chasing orphaned grants months later.
When direct assignment still makes sense
Group mapping is the default, but reserve direct assignment for the exceptions:
- A single person who needs elevated access in one workspace and does not fit an existing group.
- Short-lived access where creating a group would be overkill.
- Service or break-glass accounts that must be explicit and individually visible.
Keep direct assignments rare and documented. They are exactly the entries that escape group-based reviews, so they deserve extra scrutiny.
5. Separate Data-Source Admins From Report Consumers
The biggest risk in an analytics platform is that the people who read a dashboard can also reach into the connectors, datasource configuration, or transforms behind it. With 24 connectors reaching your in-network databases directly to feed these workspaces, the people who configure data sources hold real power.
Enforce a separation:
- Put data-source and transform authoring in workspaces (or roles) controlled by Editor and Admin, limited to engineers.
- Keep the broad consuming audience as Viewer, with no path to the underlying configuration.
- Do not co-locate a sensitive build workspace with a wide-audience reporting workspace — split them so the Viewer population cannot inherit anything more.
This is classic separation of duties applied to analytics: the person who shapes the pipeline and the person who reads the result should not be the same role by default.
It also matters for the AI layer. Whether you run Azure-hosted AI or an air-gapped Ollama model, the people who can author transforms and wire up data sources can influence what feeds those features. Keeping that authoring population inside Editor/Admin in controlled workspaces — and out of reach of the broad Viewer audience — is part of the same separation, not a separate problem.
6. Use Embed Tokens Instead of Promoting Outsiders
When you need to share a report with people who should not hold accounts, do not create Viewer users for them. The platform issues signed, scoped, time-limited embed tokens for anonymous report viewers, and those tokens are revocable through a version counter.
Best practices for shared content:
- Share via embed tokens rather than provisioning accounts for transient or external audiences.
- Treat the version counter as your revocation switch — incrementing it invalidates previously issued embed tokens without disturbing interactive sessions.
- Rotate tokens when a shared link's audience changes or a sharing campaign ends.
This keeps your authenticated user base limited to people who genuinely belong in the org, which in turn keeps role reviews tractable. Every account you avoid creating is one fewer entry to validate every quarter, and one fewer credential to manage if the relationship ends. Embed tokens are the right tool precisely because they are scoped to content rather than to a person, so sharing a dashboard does not quietly expand your identity perimeter the way a stack of new Viewer accounts would.
7. Make Audit Logs Part of the Review Cadence
RBAC is not a set-and-forget configuration. Permissions decay as teams reorganize, projects end, and exceptions accumulate. The audit log records per-user actions — create, edit, delete, and access — and is queryable by organization, by user, and by timeframe. Build a recurring review around it.
A workable cadence:
- Quarterly access review. For each workspace, list current members and their roles. Confirm every Admin and Editor still needs that level.
- Reconcile against AD groups. Where access comes from a WorkspaceGroup mapping, verify the mapped group still represents the right population and the inherited role is still correct.
- Scrutinize direct assignments. These bypass group-based logic — confirm each one is still justified.
- Query the audit log by user and timeframe. Look for elevated actions (edits, deletes) by accounts you expected to be read-only, and for access patterns that don't match someone's role.
- Review SuperAdmin activity specifically, since it crosses organizations.
Audit logs also shorten incident response: when something changes unexpectedly, you can answer who did what, in which org, and when.
8. Protect the Foundations Behind RBAC
RBAC sits on top of authentication and encryption, and a weak foundation undermines a perfect role design.
- Secrets are encrypted with AES-256 at rest, and the key is rotatable from System Settings. Include key rotation in your security calendar.
- Use backup/restore at the organization or workspace level before large permission or structural changes, so a misconfiguration is recoverable.
- Standardize on your SSO methods — form-based AD login and Entra ID — so identity flows through governed channels rather than ad hoc local accounts.
Common Pitfalls to Avoid
- Admin-by-default. Granting Admin so someone can share or build. Use Editor for building; sharing does not require Admin.
- One giant workspace. Collapsing every team and audience into a single workspace defeats the isolation the hierarchy gives you.
- Spreadsheet-driven membership. Maintaining access by hand instead of mapping AD groups guarantees drift and orphaned grants.
- Mixing builders and viewers. Letting a wide Viewer audience share a workspace with sensitive data-source configuration.
- Account sprawl for sharing. Creating Viewer accounts for transient audiences instead of using revocable embed tokens.
- No review cadence. Treating the initial setup as permanent and never querying the audit log.
- Forgetting precedence. Debugging "wrong" access without checking whether a workspace owner, OrgAdmin, or SuperAdmin assignment overrides the group mapping you were looking at.
Closing Thought
Good RBAC in an analytics platform is mostly discipline expressed through structure: least privilege as the default, three roles used for what they mean, organizations and workspaces drawn along real boundaries, membership driven from AD groups, and a review cadence anchored in the audit log. AI Insights 365 gives you the mechanisms — multi-tenant isolation, inherited group roles, revocable embed tokens, and queryable auditing. Assembled with intent, they turn access control from a recurring fire drill into a quiet, reviewable system.