Мультисайтовый логин аля Google - PullRequest
4 голосов
/ 08 октября 2008

Не уверен, что название подходит для вопроса, но я не могу придумать другого способа его сформулировать.

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

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

Ответы [ 5 ]

6 голосов
/ 08 октября 2008

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

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

3 голосов
/ 08 октября 2008

Попробуйте CAS . Он должен обеспечить функции, которые вы ищете.

3 голосов
/ 08 октября 2008

Вы можете создать cookie для foo.com, который будет отображаться на app1.foo.com, app2.foo.com.

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

2 голосов
/ 08 октября 2008

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

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

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

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

0 голосов
/ 08 октября 2008

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...