基于AAD与RBAC实现Power BI访问私有Azure Blob Storage
使用AAD与RBAC实现Power BI访问私有Azure Blob存储的HTML内容
1. 配置AAD和RBAC的步骤
- 确认存储账户访问层级:确保目标存储账户的访问层级为「私有」,禁止设置为公开访问。
- 分配RBAC角色到目标主体:
- 针对Power BI Desktop用户:在Azure门户中找到目标存储账户/容器/具体Blob,进入「访问控制(IAM)」页面,添加角色分配,选择存储Blob数据读取者角色,将权限分配给对应的AAD用户(即使用Power BI Desktop的用户账户)。
- 针对Power BI Service用户:同样在存储资源的IAM页面,将存储Blob数据读取者角色分配给需要访问仪表板的AAD用户组或单个用户。若需基于工作区托管身份访问,也可为Power BI工作区的托管身份分配该角色,但更推荐直接给终端用户分配,符合最小权限原则。
- 配置存储账户CORS规则:由于Power BI Service在浏览器环境中访问Blob,需在存储账户的「CORS」设置中添加规则:
- 允许的来源:
https://app.powerbi.com - 允许的方法:
GET - 允许的头部:
*(或按需限制) - 公开的头部:
* - 最大年龄:
86400
- 允许的来源:
2. Power BI用户所需的具体角色/权限
无需使用管理平面的角色(如存储账户参与者),仅需数据平面的「存储Blob数据读取者」角色。该角色允许用户读取Blob存储中的内容,且可在存储账户、容器或单个Blob级别进行细粒度分配,最小化权限范围。
注意:管理平面的「读取者」角色不具备访问Blob内容的权限,必须分配数据平面的特定角色。
3. Power BI端的特定配置
- Power BI Desktop:
- 确保用户使用已分配Blob权限的AAD账户登录Power BI Desktop。
- 使用支持AAD身份验证的HTML可视化组件(如第三方的「HTML Viewer」视觉对象),配置视觉对象以「当前用户的AAD凭据」访问Blob URL,避免使用固定密钥或SAS令牌。
- Power BI Service:
- 在数据集设置中,将「数据源凭据」的身份验证模式设置为「使用当前用户的凭据」,确保用户访问仪表板时,Power BI会传递其AAD身份到Blob存储进行验证。
- 确认工作区的访问权限已正确分配给目标用户,确保用户能加载仪表板及关联的数据集。
关键注意事项
- 原生Power BI可视化组件不支持直接显示HTML内容,必须依赖支持AAD身份传递的第三方自定义视觉对象。
- 若Blob URL包含容器或路径,需确保用户对该容器及路径下的Blob均有「存储Blob数据读取者」权限。
- 测试时,可在Power BI Desktop中先验证单个Blob URL的访问,再扩展到带筛选器的可视化场景。
内容的提问来源于stack exchange,提问作者KRasal
相关产品推荐
相关产品推荐

