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

Azure B2C自定义策略下Android MSAL静默请求令牌无缓存账户异常

排查解决思路
  • 优先核对自定义策略的签发配置
    该错误的核心原因是MSAL Android本地缓存中无法匹配到对应homeAccountId与clientId的账号记录,90%以上的同类场景问题均出自自定义策略配置不规范:
    需确认自定义策略RelyingParty部分返回的sub声明为用户唯一稳定标识,不得使用会话级临时值;同时在JwtIssuer技术配置中设置固定的IssuerUri,避免令牌签发者值动态变化。homeAccountId由issuer + sub拼接生成,任意一项值发生变动都会导致缓存匹配失败。
  • 校验MSAL Android端配置
    确认配置文件中knownAuthorities列表已包含所有用到的自定义策略对应的authority地址,不可仅添加登录用的策略地址。如果是多策略使用场景,需将account_mode设置为MULTIPLE,避免不同策略的账号缓存被互相覆盖。
  • 检查账号参数一致性
    登录成功后将返回的Account.getHomeAccountId()值持久化存储,发起静默令牌请求前,确认传入的homeAccountId与存储值完全一致,排查拼写错误、多余空格、首尾换行符等低级问题。
  • 确认刷新令牌发放配置
    检查自定义策略中是否开启了刷新令牌发放权限,在RelyingParty对应的技术配置文件中添加刷新令牌发放的相关规则,确保首次登录后本地可以正常缓存账号和刷新令牌记录。

默认用户流场景下静默请求可正常执行,基本可以排除端侧代码逻辑问题,按上述步骤逐一核对即可快速定位根因。

相关异常堆栈参考:

com.microsoft.identity.client.exception.MsalClientException: No cached accounts found for the supplied homeAccountId and clientId
    at com.microsoft.identity.client.internal.controllers.MsalExceptionAdapter.msalExceptionFromBaseException(MsalExceptionAdapter.java:51)
    at com.microsoft.identity.client.PublicClientApplication$18.onError(PublicClientApplication.java:1903)
    at com.microsoft.identity.client.PublicClientApplication$18.onError(PublicClientApplication.java:1894)
    at com.microsoft.identity.common.internal.controllers.CommandDispatcher.commandCallbackOnError(CommandDispatcher.java:442)
    at com.microsoft.identity.common.internal.controllers.CommandDispatcher.access$800(CommandDispatcher.java:83)
    at com.microsoft.identity.common.internal.controllers.CommandDispatcher$3.run(CommandDispatcher.java:424)
    at android.os.Handler.handleCallback(Handler.java:938)
    at android.os.Handler.dispatchMessage(Handler.java:99)
    at android.os.Looper.loop(Looper.java:223)
    at android.app.ActivityThread.main(ActivityThread.java:7656)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)

内容的提问来源于stack exchange,提问作者Mat-Tap

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 08:24:08