如何无需授予工作区权限调用Microsoft Fabric REST API
我正在通过Python脚本使用应用注册(App Registration)对Microsoft Fabric REST API进行身份验证,已完成以下操作步骤:
- 创建应用程序
- 创建证书和密钥
- 为Fabric\PowerBI端点授予API权限
- 创建用户组并将应用程序加入其中
- 在Microsoft Fabric中启用管理API
- 为应用程序授予工作区访问权限
- 在Notebook中测试REST API身份验证
Notebook中的测试已成功完成,可顺利完成Fabric REST API的身份验证。我的问题是:是否有办法避免必须为应用程序授予工作区访问权限?我希望运行使用Fabric REST API端点的Python代码,而无需授予工作区访问权限。我曾尝试在不获取工作区访问权限的情况下对Microsoft Fabric REST API进行身份验证。
是否需要给应用注册分配工作区访问权限,完全取决于你要调用的Fabric REST API端点类型:
无需工作区权限的场景
若你的Python代码仅调用租户级管理类API(比如获取租户内所有工作区列表、查询租户容量配置、管理租户级权限策略等),只要应用注册已被授予对应的租户级API权限(例如Tenant.Read.All、Capacity.Read.All),且已在Fabric中开启管理API,就不需要额外给应用分配任何工作区访问权限。这类API的权限校验仅基于租户级的应用权限,和工作区层级无关。必须工作区权限的场景
若你的代码需要调用工作区资源相关的API(比如操作工作区内的数据集、数据流、报表,读取或修改工作区内容等),则必须给应用注册分配目标工作区的对应角色权限(管理员、成员或参与者均可,依API需求而定)。因为这类API的权限管控是绑定到工作区层级的,只有拥有工作区访问权限的主体才能访问其中的资源。快速验证方式
直接在Python代码中尝试调用目标API:如果是租户级API,身份验证通过后就能正常返回数据;如果是工作区资源API,会返回权限不足的错误,此时就必须补充工作区权限。
内容的提问来源于stack exchange,提问作者Marcelo A. Eugênio

