Использование OpenID для входа в несколько доменов: возможен ли этот план? - PullRequest
15 голосов
/ 23 июня 2011

Например:

  • У нас работают два сайта сообщества на двух доменах (назовите их 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, который не вошел в систему.
  • Зие переходит на example.net. То же самое.
  • Зие затем входит в систему и продолжает просмотр example.net.
  • Затем Zie возвращается к example.com и из-за «не авторизованного» cookie не проверяется на id.example.org и, следовательно, не регистрируется.
  • Однако, как только zie нажмет кнопку «войти», zie войдет в систему.

Не думаю, что это серьезная проблема.

В целом, я думаю, что это довольно хорошая система. Я просто хотел бы видеть это пересмотренным. Есть ли проблемы, которые я не предвидел? Это будет глючно или медленно? StackExchange использует совсем другой метод. Я полагаю, у них есть на то веские причины?

1 Ответ

1 голос
/ 03 июля 2011

В целом, ваша установка выглядит хорошо. Надеюсь, вы покрыли время окончания сеанса.

Единственная проблема (и больше неудобств), которую я вижу, это необходимость явно нажимать «Войти». Лично я предпочитаю авто логины (например, Google, MS и множество других крупных сайтов).

SO обнаруживает, если вы действительный логин и показывает сообщение с просьбой обновить страницу. Хотя это несколько раздражает, но, по крайней мере, говорит мне, что я вошел в систему.

...