如何为Azure AD注册的应用授予Microsoft Fabric服务权限?调用Fabric API遇空响应或401错误求助
如何为Azure AD注册的应用授予Microsoft Fabric服务权限?调用Fabric API遇空响应或401错误求助
我按照微软的文档一步步搭建了调用Microsoft Fabric API的应用,但现在遇到了权限相关的问题,想请大家帮忙排查:
已完成的操作步骤
步骤1:在Azure AD中注册应用
- 登录Azure门户,进入Microsoft Entra ID(Azure AD) > 应用注册
- 点击**+ 新注册**,填写信息:
- 名称:例如
FabricAPIApp - 支持的账户类型:选择「仅限此组织目录中的账户」
- 名称:例如
- 点击注册完成创建
获取必要的配置值
- 应用(客户端)ID → 后续作为
APP_ID使用 - 目录(租户)ID → 认证时需要用到
- 对象ID(主要用于权限配置环节)
步骤2:创建客户端密钥(使用客户端凭证流时)
- 在已注册的应用详情页,进入证书和机密
- 点击**+ 新建客户端密钥**
- 设置过期时间(比如1年),点击添加
- 务必安全复制并保存生成的客户端密钥值(即
CLIENT_SECRET)
步骤3:配置Fabric工作区角色
在Microsoft Fabric的目标工作区中,我给要使用API的用户分配了参与者角色
步骤4:获取访问令牌
我用以下Python代码成功获取了认证令牌:
%pip install msal import msal CLIENT_ID = "" CLIENT_SECRET= "" AUTHORITY = "https://login.microsoftonline.com/<TENANT_ID>" SCOPES = ["https://api.fabric.microsoft.com/.default"] app = msal.ConfidentialClientApplication( CLIENT_ID, authority=AUTHORITY, client_credential=CLIENT_SECRET ) result = app.acquire_token_for_client(scopes=SCOPES) if "access_token" in result: access_token = result["access_token"] print("[+] Token obtained.") else: print("[-] Error getting token:", result.get("error_description")) exit()
遇到的问题
令牌获取成功后,我调用Fabric的获取工作区接口:
import requests headers = { "Authorization": f"Bearer {access_token}", "Content-Type": "application/json" } url = "https://api.fabric.microsoft.com/v1/workspaces" response = requests.get(url, headers=headers) if response.status_code == 200: print("[+] Response:", response.json()) else: print(f"[-] Error: {response.status_code} - {response.text}")
结果返回[+] Response: {'value': []},调用其他Fabric接口则直接返回401未授权错误。
查官方文档后得知,应用需要Workspace.Read.All或Workspace.ReadWrite.All的委托权限,但我在Azure Portal的「API权限」面板里,无论怎么搜索都找不到和Fabric相关的权限选项——试过在Azure AD门户的应用API权限页面查找,同样没有结果。
有没有人知道该怎么给Azure AD注册的应用授予Microsoft Fabric的API权限?
备注:内容来源于stack exchange,提问作者Cerbero




