=== PROBLEM STATEMENT ===
Currently, variable libraries in Microsoft Fabric lack granular access control mechanisms. When developers have access to a workspace, they can view all variables in the variable library, including sensitive information such as database connection strings, API keys and authentication tokens, service principal credentials, storage account keys, third-party connector credentials, and environment-specific configuration values.
This poses significant security risks in enterprise environments where the principle of least privilege should be enforced.
=== BUSINESS IMPACT ===
Security Risks:
- Exposure of sensitive credentials to unauthorized users
- Potential for credential misuse or data breaches
- Compliance violations with regulations like SOC 2, ISO 27001, and GDPR
- Inability to implement proper separation of duties
Operational Challenges:
- Developers cannot be granted workspace access without exposing sensitive variables
- Administrators must create workarounds like multiple workspaces, increasing management overhead
- Audit trails become difficult to maintain when everyone has blanket access
- Hindrance to collaboration due to security concerns
=== PROPOSED SOLUTION ===
Implement a comprehensive role-based access control (RBAC) system for variable libraries with the following capabilities:
- Variable-Level Permissions
- Admin: Full access to create, read, update, delete, and manage permissions for variables
- Read/Write: Can view and modify variable values but cannot manage permissions
- Read Only: Can view variable values for use in their artifacts
- Use Only: Can reference variables in code/queries without viewing actual values
- No Access: Variable is hidden from the user
- Group-Based Access Control
- Assign permissions to Azure AD security groups rather than individual users
- Support for nested groups
- Bulk permission management for multiple variables
- Sensitive Variable Masking
- Option to mark variables as "sensitive" which masks values in the UI (showing only asterisks), prevents copying to clipboard, requires explicit "reveal" action with logged audit trail, and can only be revealed by users with appropriate permissions
- Variable Categories/Tags
- Ability to categorize variables (e.g., "Development", "Production", "Credentials", "Configuration")
- Apply permissions at the category level for easier management
- Filter and search variables by category
- Inheritance and Defaults
- Set default permissions for new variables
- Inherit permissions from workspace roles with ability to override
- Option to apply permissions template to multiple variables
- Audit and Compliance
- Comprehensive audit logging for variable access attempts (successful and failed), permission changes, variable value reads and modifications, and sensitive variable reveals
- Export audit logs for compliance reporting
- Integration with Microsoft Purview for unified compliance management
=== IMPLEMENTATION CONSIDERATIONS ===
User Interface Changes:
- Add "Permissions" tab to variable library interface
- Show permission indicators (lock icons) next to variables in lists
- Provide clear visual distinction between accessible and restricted variables
- Add permission management dialog similar to Power BI dataset permissions
Backward Compatibility:
- Existing variable libraries should default to current behavior (all workspace members have access)
- Provide migration path with warnings before enabling restricted access
- Allow gradual rollout with feature flag
API Support:
- Extend REST API to support permission management
- Add permission validation in variable reference resolution
- Include permission metadata in GET requests
1 Comment
- frithjof_vCommunity ChampionYou shouldn't use variable library to store sensitive information like passwords. Use Azure Key Vault instead.
Recent ideas
Power BI UX Suggestion: Preserve Selection When Switching Between Report and Model Views
When developing a Power BI report, if I select a visual in Report View and then switch to Model View, the selected table/column context is lost and everything becomes unselected. This can be inconv...Murtaza_Ghafoor1 hour agoSuper UserNew3Views0likes0CommentsPower BI UX Suggestion: Preserve Selection When Switching Between Report and Model Views
When developing a Power BI report, if I select a visual in Report View and then switch to Model View, the selected table/column context is lost and everything becomes unselected. This can be inconv...Murtaza_Ghafoor1 hour agoSuper UserNew4Views0likes0CommentsDefault Scrollable Time-Series Charts to Most Recent Data
Currently, Power BI time-series charts always open scrolled to the earliest (leftmost) date by default, which is inconvenient for reports where users are interested in the most recent (rightmost) dat...CStillwell3 hours agoNew MemberNew3Views0likes0CommentsPower BI Desktop Data Load: Can We Get Better Progress Visibility?
One UX improvement I’d really like to see in Power BI Desktop is better visibility when loading large datasets from Power Query. Currently, when Power Query finishes processing and the data starts l...salmansaifee774 hours agoRegular VisitorNew16Views0likes0CommentsImprove support for calculated tables on remote semantic models
When a report is connected to a remote semantic model, Power BI Desktop allows users to create calculated tables and calculated columns based on that remote model. The issue is that this architectur...alaeddinegaaya8 hours agoNew MemberNew10Views0likes0Comments