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

Get-AzAccessToken获取令牌失败:SharedTokenCacheCredential认证不可用

解决PowerShell获取Azure AD认证Function App令牌失败问题

问题描述

尝试通过PowerShell获取访问Azure AD认证Function App的令牌,执行命令:

Connect-AzAccount -Subscription <subscriptionID> -TenantId <tenantID>
Get-AzAccessToken -ResourceUrl "<resourceURL>"

触发错误:

Get-AzAccessToken : SharedTokenCacheCredential authentication unavailable. Token acquisition failed for user <username>. Ensure that you have authenticated with a developer tool that supports Azure single sign on.

浏览器和Postman可正常访问该Function App,且已配置未认证请求返回302重定向。

解决方案

1. 核对ResourceUrl的正确性

Function App的Azure AD认证对应的资源标识符(ResourceUrl)通常是以下两种之一:

  • Function App关联应用注册的客户端ID(可在Azure门户的应用注册页面查看)
  • Function App的默认受众URI:https://<你的FunctionApp名称>.azurewebsites.net

若ResourceUrl填写错误,会直接导致令牌获取失败,先确认该值准确无误。

2. 采用交互式设备认证登录

替换原登录命令,通过设备认证方式确保令牌写入共享缓存:

Connect-AzAccount -Subscription <subscriptionID> -TenantId <tenantID> -UseDeviceAuthentication

执行后按照提示在浏览器完成登录操作,再重新运行Get-AzAccessToken命令。

3. 切换使用Azure CLI获取令牌

如果Az模块的共享缓存问题无法解决,可改用Azure CLI(需提前安装):

az login --tenant <tenantID> --subscription <subscriptionID>
az account get-access-token --resource <resourceURL>

该命令会直接返回可用的访问令牌。

4. 检查Function App的认证受众配置

确认Function App的Azure AD认证设置中,允许的令牌受众包含你指定的ResourceUrl,或设置为默认值https://azurefunctions.net,避免因受众不匹配导致令牌无效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 13:28:10