Система на подобии Microsoft Passport на PHP (межсайтовая авторизация)

Статус
В этой теме нельзя размещать новые ответы.

[slon]

Guest
Система на подобии Microsoft Passport на PHP

Нужны идеи как можно реализовать на PHP что-то на подобии MS Passport.

Есть следующая задача: имеем порядка 10 доменов (на одном сервяке), все эти домены объеденены одним общим делом (некое intrente community). нужно дать возможность пользователю имея одни аккаунтные данные без проблемно использовать все домены данного community, вплодь до того, что залогинился на первом домене, а на седьмой попадаешь уже без логина (тебя "узнают")...
 

KostyaCat

мы где-то рядом
самой простой вариант.

выделяешь центральный сервер для управления пользователями... ну и сессиями. Вообщем вешаешь на него весь "менеджмент" =)

дальше пользуешь
session_set_save_handler()
для задания своих функций на действия сессии.

Ну а общение и между центральным сервером и остальными, думаю уже сам додумаешь =)

Плюсы я думаю понятны. В использовании остаются все те же сессии.

Ну а минусы - система централизованна.
 

tony2001

TeaM PHPClub
KostyaCat:
можно еще раз объяснить для среднего ума?

дано: N серверов/сайтов
задача: сделать так, чтобы логин требовался только на первом из них.

где тут центральный сервер и как между сайтами переходят сессии и идентификаторы сессий?
 

[slon]

Guest
tony2001: не обязательно на первом... на любом можно залогиниться...
 

KostyaCat

мы где-то рядом
А что конкретно тебе подбробнее надо?

session_set_save_handler()
ищи в мане. на php.net тебе там же в нагрузку скорее всего и про сериализацую втюхают инфу.

когда с этим разберешься, появиться пища для размышления над криптованием.

Ну и т.д. =)
 

tony2001

TeaM PHPClub
[slon]:
я именно это и имел ввиду.

KostyaCat:
извини, твои посылки в ман выглядят неубедительно.
сделать свой session handler - не проблема.
как ты предлагаешь передавать ID сессии между сайтами?
 

KostyaCat

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

Ну последнее тебе сможет пригодиться только в том случае, если надо будет обмениваться данными между серверами.

Так что схему можно упростить, до элементраной передачи id сессии.
 

tony2001

TeaM PHPClub
все ясно.
человек не может ответить на прямо поставленный вопрос.
тем не менее, советовать лезет.
 

[slon]

Guest
а мне как то совсем нихрена не ясно :)

tony2001: у тебя есть свои мысли по данному вопросу?
 

KostyaCat

мы где-то рядом
проверка по IP слабовато будет....

а вот если ввести подгрузку ява-скриптика, ставящего id сессии в куки на нужном сервере ?

подгрузка ява-скрипта само-собой с центрального сервера =)

2tony : ты с выводами то неспеши.
работа конечно не волк... но курить хочется всегда =)
 

KostyaCat

мы где-то рядом
Вот что-то в этом роде:

<SCRIPT LANGUAGE=JavaScript src=http://central.server.ru/setcookie.php></SCRIPT>

Заодно можно и сервис счетчика и баннерки прикрутить =)
 

KostyaCat

мы где-то рядом
фреймами решать задачу передачи ID это пошло
даже нулевыми =)
 

[slon]

Guest
с самого начала у меня была вот такая вот мысль:
после авторизации на одном из доменов создавать куки для всех остальных (если я не ошибаюсь, то можно создать куку с одного сервера для другого?). и таким образом я буду знать что юзер авторизирован, а при логофе соответственно убивать эти куки...

но что-то меня тут тревожит...
 

tony2001

TeaM PHPClub
>если я не ошибаюсь, то можно создать куку с одного сервера для другого?
конечно НЕТ, нельзя.
 

[slon]

Guest
а для чего тогда в функции setcookie есть int domain параметр?
 

KostyaCat

мы где-то рядом
2tony: а по-моему кука будет для домена, страницу которого мы отображаем.

А откуда инклудим ява-скрипт это уже неважно.
По-моему так ...
 

tony2001

TeaM PHPClub
[slon]:
To make the cookie available on all subdomains of example.com then you'd set it to '.example.com'. The . is not required but makes it compatible with more browsers. Setting it to www.example.com will make the cookie only available in the www subdomain. Refer to tail matching in the spec for details.
для поддоменов.
 

tony2001

TeaM PHPClub
Kostya:
это была бы дыра в безопасности.
с одного домена нельзя прочесть/поставить куку для другого.
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху