Единая регистрация

Black Rabbit

Новичок
Единая регистрация

Здравствуйте
Очень нужна помощь с выбором правильного подхода
Требуется создать единую регистрацию на нескольких веб службах (как у mail.ru),
Авторизация и получение/редактирование регистрационных данных происходят через централизованный сервер.

Какими средствами лучше реализовать подобную систему?
На данный момент разрываюсь между удаленным коннектом каждой службы к центральной базе данных и использованием протокола Soap
 

Black Rabbit

Новичок
Нет, паспортная система как у mail.ru
Каждая служба имеет свою форму для авторизации и смены анкетных данных, но авторизация идет через центральный сервер.
Часть паспортных данных, общая для всех служб - например мейл, имя пользователя, дата рождения - также запрашиваются с паспорта.
Авторизовавшись на одном домене, человек оказывается автоматически залогинен на остальных.

Просто меня интересует, насколько целесообразно использовать протокол соап для общения с центральным сервером. Он меня привлекает с точки зрения создания единого api на паспорте, но опасаюсь за безопасность передачи данных.
 

no_santa

Снегур
1 вариант. Сделать авторизацию с помощью mysql. Таблица с залогиненными юзерами, не забудь указывать время залогинивания и выкидывать неактивных через 15-30 минут (в зависимости от уровня требуемого безопасности сервиса)
2 вариант. А сейчас у тебя логин как организован? У меня просто заводится $_SESSION['user'] = $data['user'], где $data['user'] - данные, полученные из базы данных. (Разумеется, предыдущей строкой идет unset($data['user']['pass']); и тому подобное ;) ).
Все модули в трех субдоменах работают if (isset($_SESSION['user'])) {/*что-то*/} else {/*что-то*/}. Существование user_id в сессии мне позволяет оперативно контролировать права доступа к тем или иным ресурсам на уровне запросов в mysql.
"Общность" регистрации реализована следующим образом:
1. Для модулей и блоков сайта - данные о пользователе получают из $_SESSION['user']
2.Для субдоменов и доменов - они у меня фуфловские, работают даже не через mod_rewrite, а через ошибку 404. Кстати, абсолютно незаметно и на скорости не сказывается. Таким образом, домены и субдомены являются такими-же модулями для сайта.
________________________________________________
Если ты планируешь серьезную нагрузку на сайт - один хрен тебе придется уходить от php и писать движок на C. Если ты это сделаешь, это упростит поставленную в посте задачу - все сессии со всех доменов валяются в одной папке. ;)
 

kruglov

Новичок
no_santa
Вы понимаете, что человек спрашивает, как ему организовать авторизацию на системе из нескольких серверов, а вы ему про базу данных mysql, сессии и 404? Осознаете, что это вещи вообще несколько разного уровня?
 

Alexandre

PHPПенсионер
Просто меня интересует, насколько целесообразно использовать протокол соап для общения с центральным сервером. Он меня привлекает с точки зрения создания единого api на паспорте, но опасаюсь за безопасность передачи данных.
SOAP полностью подходит под твои нужды
используй https и проблем не будет.
как вариант: можешь шифровать любым алгоритмом а затем заворачивать base64и обмениваться кусками: <data>12kjhGjhg123aasa .... iFO==</data>
 

dimagolov

Новичок
Alexandre, а зачем base64 и передавать как текст, когда можно слать бинарными файлами в рамках того же http протокола? при этом еще их можно жать zip-ом для экономии объема.
 

Alexandre

PHPПенсионер
зачем base64 и передавать как текст, когда можно слать бинарными файлами в рамках того же http протокола? при этом еще их можно жать zip-ом для экономии объема.
1) шифрованные данные жать зипом не имеет смысла
2) если слать бинарники тогда использовать соап не имеет смысла.
 

no_santa

Снегур
Автор оригинала: kruglov
no_santa
Вы понимаете, что человек спрашивает, как ему организовать авторизацию на системе из нескольких серверов, а вы ему про базу данных mysql, сессии и 404? Осознаете, что это вещи вообще несколько разного уровня?
внимательно прочтите пост. Там нет "нескольких серверов", там есть "несколько служб". Поэтому (и по многому другому) уровень ответа полностью соответствует уровню вопроса.
А там, где "несколько серверов", такие вопросы обычно не задают.
 

kruglov

Новичок
no_santa
Я бы на вашем месте не учил старожилов жить, это еще хорошо, что я не обидчивый.

Пост я читал внимательно, там есть слова "удаленный коннект" и "централизованный сервер".
 
Сверху