身份服务器不调用 BackChannel 注销 url

Identity Server does not call BackChannelLogout urls

我正在尝试使用 Identity Server 实施单一注销模式,但目前还无法正常工作。当然,我一直在为在我的身份服务器中注册的每个客户端注册 BackChannelLogout url。根据手册 (http://docs.identityserver.io/en/latest/topics/signout.html) ,反向通道服务器端方法的工作方式是,所有注册了 BackChannelLogout url 的客户端都会收到带有注销令牌的 http 请求。 不幸的是,这不会发生。通过查看此模式的样本,我看到他们一直指向这部分代码:

[HttpPost]
[AllowAnonymous]
public async Task<IActionResult> BackChannelLogout(string logout_token)
{
        Response.Headers.Add("Cache-Control", "no-cache, no-store");
        Response.Headers.Add("Pragma", "no-cache");

        try
        {
            var user = await ValidateLogoutToken(logout_token);

            // these are the sub & sid to signout
            var sub = user.FindFirst("sub")?.Value;
            var sid = user.FindFirst("sid")?.Value;

            return Ok();
        }
        catch { }

        return BadRequest();
}

但是我没有看到任何迹象直接指向这些针对注册客户端的特定 http 请求。这是如何运作的?你能给我指出正确的方向吗?谢谢!

发现 endession/callback 端点负责调用所有注册为 BackChannelLogout 的 url。 Logout 控制器负责整个管道。详细攻略在此,希望对遇到同样问题的人有所帮助! https://blog.tretainfotech.com/posts/2018/August/single-sign-out-in-identityserver4-with-back-channel-logout