OpenID. Как выйти из системы

На веб-сайте я реализовал вход с использованием OpenID (на основе StackOverflow).

Но я не могу выйти из системы.
На моем хосте я могу выйти из системы, но когда пользователь пытается снова войти в систему (особенно с помощью google), аутентификация проходит, не требуя от пользователя ввода имени и пароля.

Как я могу указать поставщику OpenID, что пользователь больше не авторизован на сайте?


person Martin York    schedule 06.09.2009    source источник
comment
Это зависит от провайдера OpenID. Если вы вышли из системы Google, я уверен, вам будет предложено снова.   -  person derobert    schedule 06.09.2009
comment
Для тех, кто пометил это как принадлежащее SuperUser, вы ошибаетесь - это явно вопрос программирования о реализации OpenID в веб-приложении.   -  person Amber    schedule 06.09.2009
comment
@Dav: Извините, я прочитал это слишком быстро, но, к сожалению, нет способа отменить закрытое голосование. К счастью, это не имеет значения, пока четверо других не совершают ту же ошибку.   -  person derobert    schedule 06.09.2009
comment
Не беспокойтесь, все мы иногда делаем ошибки. :)   -  person Amber    schedule 06.09.2009
comment
В любом случае рекомендуется проверить, все ли в порядке с (сессиями | файлами cookie) на вашем сайте.   -  person Alex Bolotov    schedule 06.09.2009


Ответы (4)


OpenID аутентифицирует пользователей вашего сайта, когда затем запускает сеанс на вашем сайте. Вы уничтожаете или аннулируете сеанс вашего сайта отдельно от сеанса пользователя с его провайдером OpenID.

Пользователь посещает сайт joewidgets.com> Пользователь входит в систему с помощью OpenID (с новым или существующим сеансом провайдера)> ... Пользователь нажимает кнопку выхода> joewidgets.com уничтожает / отменяет сеанс.

Если у пользователя есть провайдер OpenID, чтобы он оставался в системе, и ваша система автоматически проверяет, то он создаст новый локальный сеанс. (Не) к счастью, вы не можете / не можете беспокоиться о том, что пользователь делает или не делает у своего провайдера, что является за / против OpenID.

В Social Lipstick есть аргумент, который призывает к "единому знаку - Out ", но OpenID в настоящее время не поддерживает эту функцию.

person arbales    schedule 06.09.2009

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

А пока нам нужно вспомнить провайдера. Если это кто-то из наших знакомых, мы запускаем для них процесс выхода из системы. Для Google это URL,

https://www.google.com/accounts/Logout

Процесс выхода из системы уродлив, но он выполняет свою работу.

person ZZ Coder    schedule 06.09.2009
comment
вот это просто подло! Причина, по которой мне нравится OpenID, заключается в том, что все контролирую я, а не сайт, на котором я нахожусь. Выведите меня из Gmail, и я больше никогда не буду посещать ваш сайт. - person JasonWoof; 06.09.2009
comment
Он должен попросить выйти из системы вместо того, чтобы просто выйти. Это возможно? - person Alfred; 29.06.2011
comment
Вау! Я понятия не имел, что Google позволяет выйти из системы с помощью простого запроса GET. Это практически ожидаемая DoS-атака (например, iframe с этим адресом выйдет из системы чтения сайта из Google!) - person Mikko Rantalainen; 31.01.2012

Обычно этим занимается провайдер OpenID - например, если пользователь остается в своей учетной записи Google и устанавливает флажок, чтобы «запомнить» авторизацию OpenID для вашего конкретного сайта, то провайдер прозрачно зарегистрирует их и перенаправит обратно без отображение приглашения для входа в систему.

person Amber    schedule 06.09.2009

«Это функция, а не ошибка»

Поставщик идентификаторов может сохранить авторизацию пользователя для поставщика с помощью файлов cookie, а также может отказаться от повторного запроса пользователя о предоставлении доступа к той же информации, которая была предоставлена ​​ранее (с запросом). Поэтому, когда пользователь на сайте A запросил авторизацию через сайт B и был перенаправлен, сайт B сначала попросил пользователя аутентифицировать себя. Затем сайт B спросил, следует ли ему делиться какой-либо информацией (а иногда и какой информацией) с сайтом A. На этом этапе он также обычно спрашивает, хотите ли вы автоматически делиться этой же информацией в будущем. Некоторые провайдеры предполагают, что да, некоторые нет, некоторые не спрашивают. Затем сайт B перенаправляется на сайт A и делится информацией, теперь вы вошли в систему.

Если сайт A выполняет второе перенаправление на сайт B для запроса входа в систему, сайт B может 1) уже иметь файл cookie, который аутентифицирует текущего пользователя сайта B. 2) уже есть запись о том, какая информация может быть предоставлена ​​сайту B. 3) Автоматически делитесь этой информацией с помощью перенаправления, вообще не делая паузы для запроса пользователя.

Эта функция сосредоточена на удобстве.

person dlamblin    schedule 06.09.2009