Identity Server не вызывает URL-адреса BackChannelLogout - PullRequest
0 голосов
/ 25 апреля 2019

Я пытаюсь реализовать шаблон единого выхода с Identity Server, но пока он не работает.Что я делал, так это, конечно, регистрировал URL BackChannelLogout для каждого клиента, зарегистрированного на моем Identity Server.Согласно руководству (http://docs.identityserver.io/en/latest/topics/signout.html)), методология серверной части обратного канала работает таким образом, что все клиенты с зарегистрированным URL-адресом BackChannelLogout получают запрос 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 к зарегистрированным клиентам. Как это работает?? Можете ли вы указать мне правильное направление? Спасибо!

1 Ответ

0 голосов
/ 25 апреля 2019

Обнаружено, что конечная точка endession / callback отвечает за вызов всех URL-адресов, зарегистрированных как BackChannelLogout .Контроллер Logout отвечает за весь конвейер.Подробное руководство здесь, надеюсь, это поможет другим с моей же проблемой!https://blog.tretainfotech.com/posts/2018/august/single-sign-out-in-identityserver4-with-back-channel-logout/

...