Приветствую! У нас в сети есть немного проектов, поднятых на разносортных движках (Joomla, Symfoy2, phpBB и т.д.). Проблема в том, что у каждого сайта своя база зарегистрированных пользователей. Порядком поднадоело, да и пользователям не особо удобно во-первых регаться на каждом из них для совершения каких-либо действий, а во-вторых это же надо запомнить все эти логин\пароли. И я нашел решение проблемы - написание единого логин-сервера, где будут храниться пользователи. А к движкам прикручивать просто - написание модуля или что-то в этом роде. Короче, разработка в стиле своего OpenID или подобных проектов. Но тут возникает ряд вопросов, по которым я и хочу проконсультироваться с вами. 1. На каком сетевом уровне это лучше делать? Может уже есть готовые протоколы для моей цели? Варианты я пока вижу такие - запрос на уровне приложения по http протоколу - в Headers (например WSSE) или в POST-полях (аля Standart Login Form). 2. На стороне сайта как лучше производить аутентификацию по кукам? При каждом запросе кидать запросы на логин-сервер? Может что-то типа кэша сделать? Тут вопрос больше в безопасности, чем в быстродействии. Т.к. это только концепция - одни вопросы, поэтому и прощу небольшой помощи у вас. Может был опыт в построении таких систем или есть идеи. Спасибо!
Первый пункт в экономическом обосновании идёт сравнение с аналогами. Пробовали их искать? Сейчас же на любом современном сайте можно через вк, фб и десятки других провайдеров заходить.
А функцию авторизации переделать? Т.е. будет одна таблица с пользователями на все сайты, просто механизмы авторизации во всех движках переделаны для авторизации через эту таблицу%). Ну или просто сделать 1 механизм регистрации, который и заботится об появлении пользователя во всех сайтах--регнулся на "особой" страничке и все, теперь твоя учетка есть во всех сайтах
ВК, фб не подходят, так как ресурсы внутри сети, пользователи далеко не все захотят светить свою инфу такого рода. Для учетки на всех сайтах надо будет для каждого сайта свою таблицу пользователей держать почти идентичную. Особенную головную боль доставит добавление полей в таблицы пользователей. Поэтому выбор и пал на такое решение.
Neka, у нас сейчас таже самая задача стоит ) центральную базу юзеров написать )) но мы пока остановились на решении, когда каждый сайт будет держать свою таблицу юзеров с которым он работает, но представиться можно будет с единой,а также все изменения будут попадать и в единую тоже... если есть интерес, можем объедениться в реализации этой штуки
d1gi, у меня появлялись такие идеи: Сначала думал сделать удаленную аутентификацию на Symfony2.1, плюсом на ней же акаунт менеджер. Но получается оверхед в виде самой симфони плюс апач. Сейчас у меня мысли по этому поводу такие - написать standalone сервер аутентификации на C, C++ (в идеале) или Python, Ruby, Node.JS. Проводить аутентификацию по протоколу WSSE (http://www.xml.com/pub/a/2003/12/17/dive.html , реализация для Symfony Security Bundle - http://symfony.com/doc/current/cookbook/security/custom_aut ... vider.html), т.к. других подобных протоколов не встретил. Пока это все мои мысли Добавлено спустя 6 минут 10 секунд: По поводу вашей подписи - может всетаки лучше кинуть все силы на Symfony CMF (http://cmf.symfony.com/)? Все таки она разрабатывается программистами по всему миру.
Замечательная тема! Сразу видно кто насколько оторван от реальности Если серьезно, то тут две задачи: собственно аутентификация и синхронизация профилей. Для общей аутентификации есть готовые решения, как для общего домена, так и для разных доменов. В простейшем случае решаем общий формат авторизационной куки. Либо OpenId. С объединением профилей всё сложнее -- тут думать надо! Нужно городить API и вероятно использовать OAuth.