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

如何在Azure Function多次调用间存储Refresh Token等单个变量

可行的持久化方案

1. Azure Key Vault(最推荐,适配敏感凭据存储场景)

  • 核心逻辑:refresh token属于高敏感身份凭据,存Key Vault是合规性最高的方案,不需要额外维护存储逻辑
  • 实现步骤:
    1. 给你的Function App开启系统分配托管标识,为该标识授予Key Vault的机密读取、机密写入权限
    2. 首次设备码登录拿到refresh token后,调用Key Vault SDK将token作为机密存入,同步设置和refresh token有效期匹配的过期时间
    3. 后续每次定时器触发时,先从Key Vault读取最新的refresh token,完成认证后如果拿到新的refresh token,直接更新Key Vault中的对应机密值即可
  • 优势:原生静态加密、支持权限审计、对现有代码侵入性极低

2. Durable Functions 持久实体(你当前尝试方案的正确实现路径)

  • 核心逻辑:Durable Entities(持久实体)是Durable Functions专门用于跨调用存储状态的原生组件,完全适配单变量持久化需求,你没找到对应场景参考是因为这个属于持久实体的基础通用能力,不需要专门的场景文档
  • 实现步骤:
    1. 定义一个仅暴露GetToken、UpdateToken两个操作的简单持久实体
    2. 首次登录拿到refresh token后,调用实体的UpdateToken方法存入状态
    3. 每次定时器触发时,先调用实体的GetToken方法读取token,刷新后再更新回实体即可
  • 优势:不需要额外引入其他云服务,所有逻辑都在Function体系内完成,状态持久化由Durable Functions底层自动处理

3. 应用服务配置 + Key Vault 关联

  • 核心逻辑:利用Function App自带的应用配置存储能力,敏感值关联Key Vault存储,不需要额外对接存储SDK
  • 实现步骤:
    1. 在Function App的「配置」-「应用程序设置」中新增占位配置项,比如命名为DEFENDER_REFRESH_TOKEN,初始值留空
    2. 首次拿到refresh token后,调用Azure管理SDK更新该配置项的值,设置为Key Vault机密引用避免明文存储
    3. 后续运行时直接通过环境变量读取该配置值即可

4. Azure 存储表/Blob(低成本备选)

  • 核心逻辑:复用Function App默认绑定的存储账户存储token,适合对成本敏感的场景
  • 实现步骤:
    1. 首次拿到refresh token后自行加密,写入存储表指定行或者存为单独的Blob
    2. 每次运行时读取对应存储内容解密使用,刷新token后同步更新存储内容即可
  • 注意:禁止明文存储refresh token,必须自行实现加密逻辑
选型建议

如果你的团队已有Key Vault使用规范,优先选择第一个方案,开发量最小且合规性最高;如果不想额外引入其他服务,直接用Durable持久实体即可,完全符合Durable Functions的设计场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 07:27:05