Выйти из IdentityServer спокойно? - PullRequest
       5

Выйти из IdentityServer спокойно?

0 голосов
/ 12 сентября 2018

Я использую OAuth2 из экземпляра IdentityServer 4. На основании этого примера я могу войти в систему и вызвать API, размещенный на сервере.

Как мне выполнить выход из OidcClient без отображения веб-просмотра, предлагающего пользователю подтвердить выход?

В настоящее время я использую следующий код для выхода из системы, но библиотека по-прежнему отображает веб-просмотр с приглашением выйти из системы. В идеале я хотел бы просто обработать выход из системы, не показывая никаких дополнительных всплывающих окон:

await _client.LogoutAsync(
    new LogoutRequest {
        BrowserDisplayMode = DisplayMode.Hidden,
    });

1 Ответ

0 голосов
/ 13 сентября 2018

LogoutRequest содержит свойство IdTokenHint для этого. Если вы хотите отключить приглашение к выходу из системы, вам нужно установить его как id_token для текущего пользователя. См. Спецификации OIDC для этого здесь :

id_token_hint

РЕКОМЕНДУЕТСЯ. Ранее выданный ID-токен передается конечной точке выхода из системы в качестве подсказки о текущем сеансе аутентификации конечного пользователя с клиентом. Это используется как указание идентификатора конечного пользователя, который запрашивает RP, чтобы выйти из OP. ОП не нужно указывать в качестве аудитории идентификатора токена, если он используется в качестве значения id_token_hint.

Предоставляя id_token с этим запросом, власти могут быть уверены, что сам запрос на выход является подлинным, и поэтому считают, что нет необходимости запрашивать пользователя.

Если у вас нет id_token, вам нужно будет запросить его при первой авторизации пользователя, а затем удержать его для дальнейшего использования.

...