如何通过PowerShell为当前用户获取Azure Time Series Insights的Azure AD访问令牌?
可以用PowerShell为当前用户获取Azure Time Series Insights的访问令牌
当然没问题!你完全可以在PowerShell中为当前登录用户获取针对Azure Time Series Insights(TSI)的访问令牌,不需要依赖服务主体。下面是具体的实现方法:
方法:使用Az PowerShell模块
Az模块是微软推荐的Azure管理PowerShell工具,其中的Get-AzAccessToken命令可以直接获取当前用户上下文的资源访问令牌,和你在C#中用AzureServiceTokenProvider实现的逻辑类似。
步骤1:确保安装并导入Az.Accounts模块
首先需要确保你已经安装了Az模块的核心账户组件:
# 安装Az.Accounts模块(如果未安装) Install-Module -Name Az.Accounts -Force -AllowClobber # 导入模块 Import-Module Az.Accounts
步骤2:登录当前用户账户
用当前用户身份登录Azure:
Connect-AzAccount
执行后会弹出登录窗口,使用你的Azure AD用户账号完成登录即可。
步骤3:获取TSI的访问令牌
直接调用Get-AzAccessToken,指定TSI的资源标识符(也就是你C#代码中用的https://api.timeseries.azure.com/):
$token = Get-AzAccessToken -ResourceUrl "https://api.timeseries.azure.com/" # 查看令牌内容 $token.Token
返回的$token.Token就是你需要的访问令牌,可以直接用于调用TSI的API接口。
关键说明
- 这个令牌是基于当前登录用户的身份生成的,权限完全取决于该用户在Azure AD中被授予的TSI访问权限,和服务主体令牌的权限逻辑一致,但身份是用户而非应用。
- 令牌有有效期限制,你可以通过
$token.ExpiresOn查看过期时间,过期后重新执行Get-AzAccessToken即可获取新的令牌。 - 如果你是在本地环境执行,
Connect-AzAccount会弹出交互式登录;如果是在Azure虚拟机/函数等支持托管身份的环境中,也可以使用系统/用户托管身份自动登录,不需要手动输入凭据,和C#的MSI场景完全对应。
内容的提问来源于stack exchange,提问作者silent
相关产品推荐
相关产品推荐

