身份服务器不调用 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
我正在尝试使用 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