使用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
相关产品推荐
相关产品推荐

