【Azure Function App】PowerShell Function 执行 Get-AzAccessToken 的返回值类型问题:System.String 与 System.Security.SecureString

本文涉及的产品
应用实时监控服务-应用监控,每月50GB免费额度
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
任务调度 XXL-JOB 版免费试用,400 元额度,开发版规格
简介: 将PowerShell Function部署到Azure Function App后,Get-AzAccessToken返回值类型在不同环境中有差异。正常为SecureString类型,但部分情况下为System.String类型,导致后续处理出错。解决方法是在profile.ps1中设置环境变量$env:AZUREPS_OUTPUT_PLAINTEXT_AZACCESSTOKEN=false,以禁用明文输出。

问题描述

把PowerShell Function部署到Azure Function App后,发现在不同的环境中,使用Get-AzAccessToken函数得到的返回值类型发生了变化。

正常情况为 System.Security.SecureString 类型(加密类型字符串),但遇见异常的时候类型为System.String(明文字符串),导致了后面获取AccessToken处理时,因类型不对而报错。

正确的类型要求如下:

如果遇见了类型显示为System.String的情况下,如何来缓解这个问题呢?

 

问题解答

在PowerShell Function的 profile.ps1 文件中增加 变量 $env:AZUREPS_OUTPUT_PLAINTEXT_AZACCESSTOKEN 并设置值为 false, 这样就可以是的PowerShell返回AccessToken的时候不适用纯文本(PlainText)。

操作步骤截图如下

 

出现这种情况的解释

Az.Accounts 模块从 5.0 开始计划引入一个破坏性变更,将默认返回值从明文(plain text)改为 SecureString。然而,在变更发布前,Azure Functions 团队评估后认为这会对现有 PowerShell Function 应用造成重大影响,因为用户在未进行任何更改的情况下就会遭遇运行中断。

为了确保 Azure Functions 应用的稳定性,Azure Function团队做出了一个特例处理: Get-AzAccessToken Functions 环境中运行时,它将默认保留 5.0 之前的行为,返回明文。 当然,命令仍然支持 -AsSecureString 参数,该行为保持不变。

虽然锁定旧 Runtime 看似解决了问题,但这并非推荐做法,因其伴随更多潜在问题。如把Function运行时版本指定为  4.1037.1.23605,可以作为一个临时方案。

 

但是,Azure Function还是建议最正确的解决方案是:在profile.ps1中增加 环境变量  $env:AZUREPS_OUTPUT_PLAINTEXT_AZACCESSTOKEN  并设置为false。

 

参考资料

Azure PowerShell release notes : https://learn.microsoft.com/en-us/powershell/azure/release-notes-azureps?view=azps-14.4.0#1400---may-2025

Az.Accounts 5.0.0

  • Changed the default output access token of 'Get-AzAccessToken' from plain text to 'SecureString'.
  • Removed the warning message about failing to initialize PSStyle in automation runbooks. [#26155]
  • Increased the timeout for tab-completion of location, resource group, etc. to 10 seconds.

 



当在复杂的环境中面临问题,格物之道需:浊而静之徐清,安以动之徐生。 云中,恰是如此!

相关文章
|
8天前
|
人工智能 运维 安全
|
6天前
|
人工智能 异构计算
敬请锁定《C位面对面》,洞察通用计算如何在AI时代持续赋能企业创新,助力业务发展!
敬请锁定《C位面对面》,洞察通用计算如何在AI时代持续赋能企业创新,助力业务发展!
|
7天前
|
机器学习/深度学习 人工智能 自然语言处理
B站开源IndexTTS2,用极致表现力颠覆听觉体验
在语音合成技术不断演进的背景下,早期版本的IndexTTS虽然在多场景应用中展现出良好的表现,但在情感表达的细腻度与时长控制的精准性方面仍存在提升空间。为了解决这些问题,并进一步推动零样本语音合成在实际场景中的落地能力,B站语音团队对模型架构与训练策略进行了深度优化,推出了全新一代语音合成模型——IndexTTS2 。
639 22
|
7天前
|
人工智能 测试技术 API
智能体(AI Agent)搭建全攻略:从概念到实践的终极指南
在人工智能浪潮中,智能体(AI Agent)正成为变革性技术。它们具备自主决策、环境感知、任务执行等能力,广泛应用于日常任务与商业流程。本文详解智能体概念、架构及七步搭建指南,助你打造专属智能体,迎接智能自动化新时代。
|
13天前
|
人工智能 JavaScript 测试技术
Qwen3-Coder入门教程|10分钟搞定安装配置
Qwen3-Coder 挑战赛简介:无论你是编程小白还是办公达人,都能通过本教程快速上手 Qwen-Code CLI,利用 AI 轻松实现代码编写、文档处理等任务。内容涵盖 API 配置、CLI 安装及多种实用案例,助你提升效率,体验智能编码的乐趣。
1042 110
人工智能 数据可视化 数据挖掘
232 0