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

使用UserFlows(注销重定向)时如何配置id-token-hint?

解决AD B2C User Flows + Microsoft.Identity.Web配置注销时id-token-hint缺失问题
  • 确保ID令牌被正确获取存储
    Microsoft.Identity.Web在用户登录成功后,会自动获取ID令牌并存储在HttpContext中。你可以通过await HttpContext.GetTokenAsync("id_token")获取该令牌,默认情况下登录流程已包含openid范围(若未包含,需在配置中添加该范围以确保获取ID令牌)。

  • 自定义注销操作,附加id-token-hint参数
    默认的SignOut操作不会自动携带id-token-hint,需要手动构建注销URL并附加该参数。示例代码如下:

    public async Task<IActionResult> CustomSignOut()
    {
        // 获取已存储的ID令牌
        var idToken = await HttpContext.GetTokenAsync("id_token");
        
        // 从配置中读取AD B2C相关参数
        var authority = Configuration["AzureAdB2C:Authority"];
        var clientId = Configuration["AzureAdB2C:ClientId"];
        var postLogoutRedirectUri = Configuration["AzureAdB2C:PostLogoutRedirectUri"];
        
        // 构建包含id-token-hint的注销URL
        var logoutUrl = $"{authority}/oauth2/v2.0/logout?client_id={clientId}&post_logout_redirect_uri={Uri.EscapeDataString(postLogoutRedirectUri)}&id_token_hint={idToken}";
        
        return Redirect(logoutUrl);
    }
    
  • 修改前端注销入口
    将页面中的注销按钮链接指向上述自定义的CustomSignOut操作,替换默认的Microsoft.Identity.Web注销路由。

  • 验证User Flows配置
    确认在Azure AD B2C门户的目标User Flow中,已启用“注销请求中要求ID令牌”的设置(按之前的配置要求完成)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 05:45:33