Azure B2C自定义策略本地运行报错AADB2C90232:id_token_hint发行方不被接受
解决Azure AD B2C的AADB2C90232发行方错误
这个错误的核心问题很明确:你传入的id_token_hint里的iss(发行方)值,不在Azure AD B2C自定义策略允许的发行方列表里。结合你本地运行的场景,我给你一步步说怎么解决:
第一步:确认要配置的发行方值
从你提供的令牌内容来看,本地应用的发行方是https://localhost:44351/——这个值必须原封不动地加到B2C策略里,包括末尾的斜杠,半点都不能差,因为B2C对发行方的匹配是严格的完全匹配。第二步:修改自定义策略文件
打开你上传到Azure的那个适配租户的策略XML文件,找到处理id_token_hint的相关配置节点:- 定位到
<ClaimsProvider>节点(对应本地应用作为身份提供者的部分,或者专门处理令牌验证的技术配置)。 - 找到
<AllowedIssuers>节点,如果没有的话,需要在对应的<TechnicalProfile>下添加这个节点。 - 在
<AllowedIssuers>里新增一个<Issuer>子节点,内容就是你的本地发行方URL:<AllowedIssuers> <Issuer>https://localhost:44351/</Issuer> <!-- 其他允许的发行方如果有的话也保留在这里 --> </AllowedIssuers>
- 定位到
第三步:重新上传生效策略
把修改后的XML文件重新上传到Azure AD B2C门户的策略管理页面,覆盖原来的策略。确保Azure加载了新的配置——有时候可能需要等个几分钟让策略完全生效。第四步:验证匹配性
再次启动本地应用,获取新的令牌后,先检查iss字段是否还是https://localhost:44351/,然后用这个令牌作为id_token_hint发起请求,这时候B2C就会认可这个发行方,不会再抛出AADB2C90232错误了。
另外提个小细节:如果你的本地应用是ASP.NET Core这类框架,要确保launchSettings.json里的applicationUrl和令牌里的发行方URL完全一致,避免因为启动URL变动导致iss值不匹配。
内容的提问来源于stack exchange,提问作者Kevin Tahon
相关产品推荐
相关产品推荐

