通过托管专用端点从Fabric Notebook获取Azure Key Vault密钥列表遇认证错误
跨租户Fabric Notebook访问Azure Key Vault密钥列表解决方案
问题核心
你的代码使用DefaultAzureCredential时,默认会采用Fabric工作区所在租户的身份发起认证,但目标Key Vault属于另一个租户,导致身份令牌无法被目标租户的Key Vault识别,最终触发认证失败。结合已配置的托管专用端点,核心要解决跨租户身份定向认证和权限配置问题。
解决方案步骤
显式指定目标租户ID
修改DefaultAzureCredential的初始化逻辑,明确传入Key Vault所在租户的ID,让认证流程定向到目标租户获取有效令牌:from azure.identity import DefaultAzureCredential from azure.keyvault.secrets import SecretClient vault_url = "https://my-key-vault.vault.azure.net/" # 替换为Key Vault所在租户的UUID target_tenant_id = "xxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" credential = DefaultAzureCredential(tenant_id=target_tenant_id) secret_client = SecretClient(vault_url=vault_url, credential=credential) secret_properties = secret_client.list_properties_of_secrets() for secret_property in secret_properties: print(secret_property.name)配置Key Vault访问策略
在目标租户的Azure Key Vault中,给Fabric工作区的托管标识添加**密钥列表(List)**权限:- 登录目标租户的Azure门户,找到对应Key Vault
- 进入「访问策略」页面,点击「创建」
- 在「权限」模块勾选密钥类别的「List」权限
- 在「主体」搜索框中,输入Fabric工作区托管标识的对象ID(可从Fabric工作区的「设置-托管标识」中获取)
- 保存配置
验证托管专用端点连通性
检查Fabric工作区的托管专用端点状态为「已连接」,同时确认Key Vault的专用端点已关联该连接,确保网络层面无阻断。
内容的提问来源于stack exchange,提问作者coding
相关产品推荐
相关产品推荐

