2008-10-07 2 views
4

Не уверен, что если название вполне подходит вопрос, но я не могу думать о какой-либо другой способ поставить его ..Multi-сайт Войти ала Google

Предположим, вы хотите создать несколько различных веб-приложений, но вам нужен пользователь, который был зарегистрирован в одном приложении, чтобы иметь возможность перейти прямо в другое приложение без повторной регистрации (при условии, что у них есть perms, чтобы посмотреть и на другое приложение). Если я не ошибаюсь, если вы вошли в gmail, вы можете перейти прямо к iGoogle, googleReader и т. Д. Без повторного входа в систему (если вы правильно настроили его).

Как вы подходите к этому? Что бы вы использовали? Предположим, что приложения уже существуют, и вы не хотите изменять начальную страницу входа для пользователей.

+0

Мне нравится ваш ответ, Филипп, но, увы, я могу выбрать только один ответ. Хм ... может быть, новая особенность? – Leanan 2008-10-08 12:53:54

ответ

6

То, что вы ищете, называется Single Sign On. Если вы перейдете по ссылке, вы найдете несколько реализаций.

Открытый идентификатор, как упоминалось другими, не является такой схемой, поскольку для каждого сайта требуется отдельный логин. Открытый идентификатор - это просто общая система аутентификации.

3

Вы отправили бы cookie против foo.com, который затем будет виден на app1.foo.com, app2.foo.com.

Каждое приложение может затем использовать файл cookie для доступа к централизованной системе аутентификации.

0

Как уже упоминалось, вы можете использовать что-то вроде OpenId или аналогично, чтобы сделать процесс простым. В противном случае, если вы откажетесь самостоятельно, вы можете использовать файл cookie для хранения логина, тогда в основном ВСЕ приложения должны иметь точку входа, которая имитирует базовый URL.

Google, например, использует mail.google.com в качестве маршрута в Gmail, что позволяет ему читать файл cookie, хранящийся в домене google.com.

2

Что вы хотите - это единый вход (SSO).

Есть два подхода к решению этой проблемы:

  1. Ролла своей собственной реализации. В его самой тривиальной форме он может быть реализован на первом сайте, устанавливая cookie, который содержит билет для зарегистрированного пользователя, а второй сайт проверяет этот билет и принимает зарегистрированного пользователя. Есть довольно много потенциальных ловушек здесь:

    • вы должны защитить себя от раскрытия информации - убедитесь, что билет не содержит фактические учетные данные пользователя
    • вы должны защитить себя от подмены - человек в середине кражи действительного билета и выдает себя за одного из пользователей
    • и других
  2. Принять третью сторону SSO механизм. Google, Microsoft, Facebook и другие крупные компании позволяют интегрироваться с поставщиками удостоверений, чтобы ваши пользователи могли войти на свой сайт, и они обрабатывают проверку, выдачу билетов и так далее. Существует также OpenID, который является открытым протоколом, который вы можете использовать для включения единого входа на свой сайт через практически любой поставщик удостоверений, который поддерживает OpenID. Потенциальный недостаток здесь заключается в том, что кто-то еще контролирует ваш доступ к вашей идентификационной информации пользователя и может ограничить возможности, которые вы можете предложить, и данные, которые вы можете использовать для своих пользователей.

3

Попробуйте CAS ему необходимо предоставить функции, которые вы ищете.