You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Java SDK在Azure Data Lake Gen1中创建资源及403报错排查

错误根本原因及解决方案

1. 代码中授权请求的资源标识错误(首要原因)

你当前代码中调用acquireToken获取令牌时,传入的资源URI是https://management.core.windows.net/,该范围仅适用于Azure资源管理层操作,比如创建、删除ADLS Gen1账户,不支持ADLS Gen1文件系统的数据平面操作,包括创建目录、读写文件等。
你需要将获取令牌的代码修改为:

Future<AuthenticationResult> result = context.acquireToken("https://datalake.azure.net/", new ClientCredential(clientId, clientSecret), null);

2. 服务主体缺少文件系统ACL权限

你在Azure控制台操作时使用的是个人用户身份,已经默认拥有对应ADLS账户的操作权限,但代码中使用的是服务主体(clientId对应的Azure AD应用)身份,该身份需要单独配置文件系统访问权限:

  • 进入Azure Portal的对应ADLS Gen1账户页面,打开「数据资源管理器」
  • 选中根目录/,点击「访问」选项
  • 添加你的服务主体,分配「读取、写入、执行」权限,权限生效范围选择「此文件夹和所有子文件夹」即可

3. 其他排查项

  • 确认代码中配置的clientId、clientSecret、tenantId参数和Azure AD中注册的应用配置完全一致
  • 确认ADLS Gen1账户的防火墙规则没有拦截你运行代码的主机IP地址

内容的提问来源于stack exchange,提问作者kpgenes

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 22:45:01