ASP.NET MVC集成Azure AD B2C登录报错IDX21336求助
解决Azure AD B2C认证时IDX21336错误(缺少id_token或access_token)
针对你遇到的IDX21336错误,核心原因是令牌端点返回的响应中缺少id_token或access_token,可以从以下几个方面排查修复:
调整Scope配置
当前配置仅包含OpenIdConnectScope.OpenId和API scope,建议补充OpenIdConnectScope.Profile,确保请求范围足够触发两类令牌的返回:options.Scope.Clear(); options.Scope.Add(OpenIdConnectScope.OpenId); options.Scope.Add(OpenIdConnectScope.Profile); // 新增此行 options.Scope.Add("https://davidTest.onmicrosoft.com/b516f85d-5329-4e1a-8842-f04f0a500e4f/api");验证Azure AD B2C应用注册设置
- 登录Azure门户,进入你的AD B2C租户,找到对应应用注册
- 进入身份验证页面,确认「隐式授权和混合流」下已勾选ID令牌和访问令牌(即使使用Authorization Code流程,此设置确保客户端能获取到两类令牌)
- 检查API权限,确认已添加目标API的权限并完成管理员同意(若为委托权限)
补充OpenIdConnect配置参数
添加以下配置,确保令牌处理逻辑正确:options.GetClaimsFromUserInfoEndpoint = true; options.TokenValidationParameters = new TokenValidationParameters { ValidateIssuer = true };检查B2C用户流配置
确认你使用的用户流B2C_1_userclaimsdavidtest,在「应用程序声明」中已勾选必要的用户属性,且令牌配置允许颁发id_token和access_token。
内容的提问来源于stack exchange,提问作者Davide Boldrin
相关产品推荐
相关产品推荐

