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

无法生成针对Entra ID验证服务主体的令牌,求解决方向

问题

我正在使用Microsoft Entra ID(Azure AD)对Microsoft Translator服务进行身份验证,目前卡在生成令牌的步骤。
重要提示:我的翻译服务实例已禁用基于密钥的身份验证,因此参考官方文档中的PowerShell示例请求令牌,但文档使用的ADAL模块已过时,执行脚本后无报错,但$token返回为空。

执行的脚本如下:

Install-Module -Name ADAL.PS
Import-Module -Name ADAL.PS
$authContext = New-Object "Microsoft.IdentityModel.Clients.ActiveDirectory.AuthenticationContext" -ArgumentList "https://login.windows.net/<TENANT_ID>"
$secureSecretObject = New-Object "Microsoft.IdentityModel.Clients.ActiveDirectory.SecureClientSecret" -ArgumentList $SecureStringPassword   
$clientCredential = New-Object "Microsoft.IdentityModel.Clients.ActiveDirectory.ClientCredential" -ArgumentList $app.ApplicationId, $secureSecretObject
$token=$authContext.AcquireTokenAsync("https://cognitiveservices.azure.com/", $clientCredential).Result
$token

我已填写了已分配角色的服务主体信息,但结果为空。

解决方案
  • 替换过时的ADAL模块为MSAL.PS:ADAL已被微软弃用,兼容性问题可能导致令牌获取失败,先安装并导入最新的MSAL模块:
    Install-Module -Name MSAL.PS -Force
    Import-Module MSAL.PS
    
  • 使用MSAL重新编写令牌请求脚本:
    # 替换为你的实际参数
    $tenantId = "<你的租户ID>"
    $clientId = "<服务主体的应用ID>"
    $clientSecret = ConvertTo-SecureString "<服务主体的客户端密钥>" -AsPlainText -Force
    $scope = "https://cognitiveservices.azure.com/.default"
    
    # 获取令牌
    $tokenResult = Get-MsalToken -TenantId $tenantId -ClientId $clientId -ClientSecret $clientSecret -Scope $scope
    # 输出访问令牌
    $tokenResult.AccessToken
    
  • 验证服务主体权限:确保服务主体已被分配认知服务用户或认知服务参与者角色,且角色作用域明确指向你的Translator服务实例(避免仅分配到订阅级导致权限不匹配)。
  • 核对参数准确性:确认租户ID、客户端ID、客户端密钥无拼写错误或多余空格;Scope必须包含.default后缀,这是客户端凭据流必填的格式。
  • 捕获错误细节:若问题仍存在,添加错误捕获逻辑排查具体原因:
    try {
        $tokenResult = Get-MsalToken -TenantId $tenantId -ClientId $clientId -ClientSecret $clientSecret -Scope $scope -ErrorAction Stop
        Write-Host "令牌获取成功"
    } catch {
        Write-Error "具体错误: $_"
    }
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 01:40:05