Что такое правильный выход из системы при входе в OAuth 2.0? - PullRequest
0 голосов
/ 19 февраля 2019

Предположим, что существует Identity Server, который служит для входа и выхода.Затем у вас есть приложение для Android, которое использует OAuth 2.0 для входа и выхода через IS4.Теперь, когда вы входите в систему, вы нажимаете кнопку входа в приложение для Android, через ваш веб-браузер перенаправляетесь на сервер идентификации, где вы входите, а затем вы перенаправляетесь обратно в приложение.Давайте также предположим, что все это работает, и вы получите токен доступа в конце всей процедуры.

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

Чтобы полностью выйти из системы, теперь мне нужно перенаправить пользователя в веб-браузер, чтобы выйти из него какну, так что теперь, по крайней мере, 2 клика для выхода из системы, чтобы фактически выйти из системы.Если я выбрал правильный дизайн, у меня также должно быть окно подтверждения для смягчения определенных атак, которое теперь делает 3 клика для выхода из системы.И после всего этого, куда ты собираешься идти?Это та часть, которая беспокоит меня.Должен ли я оставить вас в веб-браузере или отодвинуть вас обратно на экран входа в приложение?

Просто чтобы уточнить мой вопрос, поскольку их на самом деле два:

  1. Должен ли я перенаправитьпользователя на веб-сайте, который также должен выйти из системы, или я должен только выйти из приложения?
  2. Если я также выйду из системы на веб-сайте, я должен оставить пользователя сидящим с браузеромоткрыть или я должен оставить пользователя, сидящего с открытым приложением?По сути, каков конечный пункт назначения?

1 Ответ

0 голосов
/ 19 февраля 2019

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

Open-Id-Connect предоставляет конечные точки для выполнения запросов на выход из системы.Смотрите раздел 5 спецификации.https://openid.net/specs/openid-connect-session-1_0.html

...