【Azure Entra ID】AcquireTokenForClient 触发 Entra ID 请求风暴?Shared Cache 才是 Web App 登录的正确方式

简介: Web App调用Azure Entra ID中国区时因未有效缓存令牌,导致请求激增、登录不稳定。根本原因在于MSAL的`ConfidentialClientApplication`未复用且未启用共享缓存。通过单例模式创建应用实例,并配置`WithCacheOptions(CacheOptions.EnableSharedCacheOptions)`,可使令牌在有效期内被复用,避免频繁请求认证端点,显著降低Entra ID负载,提升系统稳定性和性能。

问题描述

Web App 调用 Azure Entra ID 中国区认证端点 login.chinacloudapi.cn 获取访问令牌时,产生了异常巨大的 Entra ID 请求量,最终导致请求失败和整体登录不稳定。

问题发生在使用 MSAL 的 AcquireTokenForClient 获取 Token 场景中,表面现象是“Web App 调用 Entra ID 失败”,实质原因则与令牌缓存未生效密切相关。

 

问题解答

Web App 使用的是 Client Credentials Flow(客户端凭据模式),核心实现依赖 MSAL 的 ConfidentialClientApplicationAcquireTokenForClient 方法。

 

优化后的关键代码如下(原文代码):

    var app = ConfidentialClientApplicationBuilder
        .Create(clientId)
        .WithClientSecret(clientSecret)
        .WithAuthority(new Uri(authority))
        .WithLegacyCacheCompatibility(false)
        .WithCacheOptions(CacheOptions.EnableSharedCacheOptions)
        .Build();

以及在获取访问令牌时:

await app.AcquireTokenForClient(scopes).ExecuteAsync();

围绕上述代码,AcquireTokenForClient 获取 Token 的完整流程可以拆解为以下几个关键点:

一:ConfidentialClientApplication 是 Token 缓存的承载者

ConfidentialClientApplication 表示 Web App 自身在 Azure Entra ID中的“应用身份”,它不仅负责向 Entra ID发起认证请求,同时内部维护了 MSAL 的访问令牌缓存。如果该对象被频繁创建或生命周期过短,缓存将无法复用,直接导致每次获取 token 都访问 Entra ID。

 

二:WithCacheOptions(CacheOptions.EnableSharedCacheOptions) 的核心作用


.WithCacheOptions(CacheOptions.EnableSharedCacheOptions)

这行代码的意义在于:

  • 显式启用 Shared Token Cache
  • 允许同一应用实例在多个 token 请求之间共享并复用已获取的 access token
  • 在 token 有效期内,MSAL 会优先从缓存返回 token,而不是访问 Entra ID

缺少该配置,或未正确复用 app 对象时,即使使用了 MSAL,也相当于每次 AcquireTokenForClient 都是一次全新的登录请求。

 

三:AcquireTokenForClient 的真实执行逻辑

当调用以下代码时:

await app.AcquireTokenForClient(scopes).ExecuteAsync();

MSAL 实际执行顺序为:

1:在本地缓存中查找匹配 scopes 的 access token

2:如果 token 存在且未过期 → 直接返回(不调用 AAD (Entra ID))

3:如果不存在或已过期 → 才向 login.chinacloudapi.cn 发起一次新的 token 请求

4:将新 token 写入缓存,供后续请求复用

 

四:最后,正确的方式是

  • 应用级别(如 Startup / Singleton)创建一次 ConfidentialClientApplication
  • 启用 .WithCacheOptions(CacheOptions.EnableSharedCacheOptions)
  • 所有业务代码统一调用 AcquireTokenForClient 获取 token


通过该方式,可以显著降低对 Azure Entra ID的请求压力,避免登录风暴,并提升 Web App 的稳定性。

 

参考资料

MSAL Token Cache 说明 :https://learn.microsoft.com/en-us/entra/identity-platform/msal-acquire-cache-tokens#acquiring-tokens

 


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

相关文章
|
6月前
|
存储 人工智能 运维
AI重构知识管理:如何破解技术团队的6大效率困局
通过AI全链路赋能,实现技术文档智能生成、语义检索、隐性知识沉淀与企业级安全管控,破解研发中API文档低效、故障排查慢、知识复用难等痛点,提升文档效率300%、故障修复提速80%,助力团队从“被动管理”迈向“智能协同”,重构高效能研发新范式。
303 12
|
6月前
|
运维 编译器 Linux
阿里云服务器操作系统V3 aarch64是什么?
阿里云自研Alinux 3.2304,基于Linux内核深度优化,适配云计算场景。支持最新安全补丁、内核升级及容器组件优化,集成高性能编译器与运维工具,提升系统稳定性与兼容性。
|
6月前
|
弹性计算 安全 Linux
Centos混合云部署实战指南(手把手教你搭建企业级混合云架构)
本文详细介绍如何基于CentOS搭建混合云环境,涵盖从基础概念、准备工作到网络打通及应用部署的全流程,助力企业实现安全与弹性的统一,是初学者入门混合云的理想指南。
|
6月前
|
人工智能 自然语言处理 算法
2025AI数字人企业名单列表新发布及全栈技术指南
数字人产业正迎来技术与应用的双重突破,全栈自研与生态协同并行发展。从虚拟主播到工业元宇宙,十强企业各展所长:像衍科技以产学研一体化构建全链条技术壁垒,阿里、京东布局电商与服务,华为、腾讯深耕工业与社交场景。数字人已跨越“仿真”阶段,迈向情感化、智能化、资产化新纪元,广泛应用于政务、医疗、教育等领域,实现降本增效与体验升级。未来,“安全可控+轻量部署+类人交互”将推动数字人成为虚实共生的核心生产力。
|
6月前
|
人工智能 自然语言处理 安全
2025AI数字人企业名单列表新发布及全域技术新排行
解码数字人企业TOP10,透视技术革新与产业未来。像衍科技领衔,依托浙大科研实力,实现全栈自研与多模态交互突破;阿里、华为、腾讯等巨头布局电商、工业、娱乐等全场景应用。从医疗陪护到政务导办,数字人正从“形似”迈向“神似”,推动AI进入“生产力时代”。轻量化、私有化、行业化成关键趋势,万亿市场加速成型。
|
6月前
|
监控 Java C语言
揭开 Java 容器“消失的内存”之谜:云监控 2.0 SysOM 诊断实践
本文介绍云原生环境下Java应用内存超限问题的诊断与治理,聚焦容器化后常见的JVM堆外内存、JNI内存泄漏、LIBC分配器特性及Linux透明大页等导致OOM的根源,结合阿里云SysOM系统诊断工具,通过真实案例详解如何实现从应用到系统的全链路内存分析,精准定位“消失的内存”,提升资源利用率与稳定性。
346 19
|
6月前
|
Kubernetes 网络协议 容器
【k8s-1.34.2安装部署】七.coredns-v1.13.1安装
本章介绍如何安装并验证coredns-v1.13.1。下载coredns.yaml.base文件,替换镜像地址、DNS域、内存限制及服务IP,应用配置后通过svc和pod验证CoreDNS解析功能是否正常。
714 11
|
6月前
|
数据采集 人工智能 自然语言处理
AI导航网站全景解析:从工具聚合到技术赋能
2025年AI工具爆发,信息差仍存。本文盘点国内主流AI导航平台,如AI工具集、AI产品库、非猪AI等,解析其背后的数据采集、智能分类、个性化推荐技术,并展望空间智能、多模态交互与数字孪生驱动的未来演进方向,助力用户高效选型、开发者把握趋势。
857 7
|
6月前
|
人工智能 边缘计算 自然语言处理
2025年主流测试用例管理平台对比分析与最佳实践
文章聚焦2025年测试用例管理平台,介绍其SaaS化与AI赋能趋势,分析行业背景、痛点及解决方案。对比优测等主流平台,阐述各平台优势与局限。还给出技术路径选择建议,解答常见选型、AI效果、成本控制及跨团队协作等问题,助力企业适配合适方案。
|
6月前
|
人工智能 自然语言处理 索引
2026企业战略升级:为何必须掌握Geo优化两大核心与四轮驱动
2026年,生成式AI重塑营销格局,企业竞争聚焦“信任”与“效率”。Geo专家于磊老师首创“两大核心+四轮驱动”优化体系,以人性化内容与交叉验证破解品牌失语、获客低效、舆情固化难题,助力企业在AI时代构建可信、高效的内容护城河,实现可持续增长。
213 5