Использование OpenID для входа в несколько доменов: доступен ли этот план?
Например:
- Мы используем два сайта сообщества на двух доменах (назовите их
example.com
и example.net
).
- Мы хотим иметь возможность расширять это до большего количества доменов позже.
- Мы хотим разрешить несколько типов входа (OpenID, Facebook, Twitter, стандартное имя пользователя/пароль).
- Мы хотим, чтобы кто-то, кто вошел в один сайт, автоматически регистрировался в другом.
Другими словами, он немного похож на сеть StackExchange.
В этом случае, будет ли этот план работать?
- Настройте
example.com
и example.net
(и любые последующие добавления) в качестве сторонних пользователей OpenID, которые принимают вход OpenID только из id.example.org
.
- Настройте
example.com
и example.net
для немедленного запроса ответа OpenID при первом посещении, так что, если вы вошли в id.example.org
, вы сразу же и автоматически заходите на сайт, повторное посещение. Они должны установить cookie, если вы не вошли в систему, чтобы сохранить их, делая это при каждом запросе страницы.
- Настройте
id.example.org
как поставщик и потребитель OpenID. Он также должен потреблять Facebook и другие поставщики удостоверений личности и разрешать стандартное использование имени пользователя/пароля. (Несколько учетных методов могут быть прикреплены к одной учетной записи.)
- При выходе из системы просто измените токены аутентификации в базе данных. У пользователя все равно будут файлы cookie, но они будут бессмысленными. Таким образом, пользователь может быть выписан из всех сайтов одновременно. Несколько токенов аутентификации могут храниться у одного пользователя за один раз (и должны быть разными для каждого сайта), так что пользователь может выйти в одном браузере, но все же будет подписан другим. Выход из системы всегда выдается для всех сайтов.
Единственная проблема, которую я вижу выше:
- Кто-то посещает
example.com
. Установлен "не зарегистрированный" cookie.
- Затем Zie переходит на
example.net
. То же.
- Затем Zie регистрируется и продолжает просмотр
example.net
.
- Затем Zie возвращается к
example.com
и из-за "не зарегистрированного" cookie не проверяется на id.example.org
и поэтому не вошел в систему.
- Однако, как только zie нажимает кнопку "войти", zie входит в систему.
Я не думаю, что это серьезная проблема.
В целом, я думаю, что это довольно хорошая система. Я просто хотел бы, чтобы он был рассмотрен. Есть ли какие-то проблемы, которые я не предвидел? Было бы плохо или медленно? StackExchange использует совершенно другой метод. Я полагаю, у них есть веская причина для этого?
Ответы
Ответ 1
В целом, ваша настройка выглядит отлично. Надеюсь, что вы рассмотрели срок действия сеанса или тайм-ауты.
Единственная проблема (и ее больше неудобства), которую я вижу, - это необходимость щелчка "Войти" явно. Лично я предпочитаю автозалоги (например, Google, MS и тонну других крупных сайтов).
SO обнаруживает, что у вас есть действующий логин и отображается сообщение с просьбой обновить страницу. В то время как несколько раздражает, он по-прежнему, по крайней мере, говорит мне, что я вошел в систему.