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

使用终端用户认证配置AAS连接Azure Data Lake Gen1失败排查

问题根因

你获取的OAuth2令牌权限范围不匹配Azure Data Lake Gen1的访问要求,是导致凭据无效的核心原因,另外还有几处配置错误共同触发了报错:

  • 1. 令牌权限范围错误
    你当前请求令牌的scope设置为https://management.azure.com/user_impersonation,该权限仅用于调用Azure资源管理接口,无法用于访问Azure Data Lake Gen1存储资源。访问ADLS Gen1需要将scope替换为https://datalake.azure.net/user_impersonation,同时确保授权请求和令牌请求中都使用该正确scope。
  • 2. 令牌过期时间配置错误
    你在配置凭证的Expires字段时直接使用了当前时间Get-Date -Format r,相当于令牌存入AAS后直接被标记为已过期,AAS自然无法使用该凭证访问数据源。正确的做法是用当前时间加上令牌返回的expires_in(单位为秒)作为过期时间。
  • 3. 数据源名称配置错误
    你在设置object.dataSource和dataSource.name字段时,将地址中的.错误替换为了空格,导致数据源标识符不匹配。
  • 4. 令牌请求参数缺失
    你在调用/oauth2/v2.0/token接口时,scope字段留空,会导致返回的令牌权限不符合预期,需要补充正确的ADLS Gen1 scope值。

修改后的核心代码示例

首先修改授权请求的scope:

$bodyCode = @{
    "client_id" = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
    "redirect_uri"="https://localhost:5000"
    "response_type"="code"
    'scope' = 'offline_access openid https://datalake.azure.net/user_impersonation'
}

然后修改令牌请求的参数:

$TokenResult = Invoke-RestMethod -Method Post -ContentType 'application/x-www-form-urlencoded' -Uri "https://login.microsoftonline.com/$($tenantID)/oauth2/v2.0/token" -Body @{
    client_id     = $bodyCode.client_id
    scope         = 'https://datalake.azure.net/user_impersonation'
    code          = $Code
    redirect_uri  = $bodyCode.redirect_uri
    grant_type    = 'authorization_code'
    client_secret = "wU8slkd)di_sadfdfjkl9*klsffkklld"
}

最后修改数据源配置部分的错误:

# 修正过期时间
$expireDate = (Get-Date).AddSeconds($TokenResult.expires_in).ToUniversalTime().ToString("r")
$DataSourcePSObject.createOrReplace.dataSource.credential.Expires = $expireDate
# 修正数据源名称
$dataSourceFullName = "DataLake/https://$($datalakeName).azuredatalakestore.net/"
$DataSourcePSObject.createOrReplace.object.dataSource = $dataSourceFullName
$DataSourcePSObject.createOrReplace.dataSource.name = $dataSourceFullName

修改完成后重新执行脚本即可完成正确的授权配置。

内容的提问来源于stack exchange,提问作者Ashish-BeJovial

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 15:09:05