Identity Server不会调用BackChannelLogout URL

问题描述 投票:0回答:1

我正在尝试使用Identity Server实现单点登出模式,但到目前为止它还无法正常工作。当然,我一直在为我的Identity Server中注册的每个客户端注册BackChannelLogout url。根据手册(http://docs.identityserver.io/en/latest/topics/signout.html),Back-channel服务器端方法的工作方式是所有注册了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请求直接指向注册的客户端。这是如何运作的?你能指点我正确的方向吗?谢谢!

asp.net single-sign-on identityserver4 identityserver3
1个回答
0
投票

发现exession / callback端点是负责调用注册为BackChannelLogout的所有url的端点。 Logout控制器是负责整个管道的控制器。详细指南在这里,希望它能帮助其他人解决同样的问题! https://blog.tretainfotech.com/posts/2018/august/single-sign-out-in-identityserver4-with-back-channel-logout/

© www.soinside.com 2019 - 2024. All rights reserved.