За последние 24 часа нас посетили 17611 программистов и 1593 робота. Сейчас ищут 1413 программистов ...

Свой логин-сервер, выбор протокола, технологии и т.д.

Тема в разделе "Прочие вопросы по PHP", создана пользователем Neka, 18 янв 2013.

  1. Neka

    Neka Активный пользователь

    С нами с:
    16 янв 2010
    Сообщения:
    188
    Симпатии:
    0
    Приветствую!

    У нас в сети есть немного проектов, поднятых на разносортных движках (Joomla, Symfoy2, phpBB и т.д.). Проблема в том, что у каждого сайта своя база зарегистрированных пользователей. Порядком поднадоело, да и пользователям не особо удобно во-первых регаться на каждом из них для совершения каких-либо действий, а во-вторых это же надо запомнить все эти логин\пароли.

    И я нашел решение проблемы - написание единого логин-сервера, где будут храниться пользователи. А к движкам прикручивать просто - написание модуля или что-то в этом роде. Короче, разработка в стиле своего OpenID или подобных проектов.

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

    1. На каком сетевом уровне это лучше делать? Может уже есть готовые протоколы для моей цели? Варианты я пока вижу такие - запрос на уровне приложения по http протоколу - в Headers (например WSSE) или в POST-полях (аля Standart Login Form).
    2. На стороне сайта как лучше производить аутентификацию по кукам? При каждом запросе кидать запросы на логин-сервер? Может что-то типа кэша сделать? Тут вопрос больше в безопасности, чем в быстродействии.

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

    Спасибо!
     
  2. iliavlad

    iliavlad Активный пользователь

    С нами с:
    24 янв 2009
    Сообщения:
    1.689
    Симпатии:
    4
    Первый пункт в экономическом обосновании идёт сравнение с аналогами. Пробовали их искать?
    Сейчас же на любом современном сайте можно через вк, фб и десятки других провайдеров заходить.
     
  3. r3l0c

    r3l0c Активный пользователь

    С нами с:
    10 янв 2013
    Сообщения:
    453
    Симпатии:
    4
    А функцию авторизации переделать? Т.е. будет одна таблица с пользователями на все сайты, просто механизмы авторизации во всех движках переделаны для авторизации через эту таблицу%). Ну или просто сделать 1 механизм регистрации, который и заботится об появлении пользователя во всех сайтах--регнулся на "особой" страничке и все, теперь твоя учетка есть во всех сайтах
     
  4. Neka

    Neka Активный пользователь

    С нами с:
    16 янв 2010
    Сообщения:
    188
    Симпатии:
    0
    ВК, фб не подходят, так как ресурсы внутри сети, пользователи далеко не все захотят светить свою инфу такого рода.
    Для учетки на всех сайтах надо будет для каждого сайта свою таблицу пользователей держать почти идентичную. Особенную головную боль доставит добавление полей в таблицы пользователей. Поэтому выбор и пал на такое решение.
     
  5. d1gi

    d1gi Активный пользователь

    С нами с:
    24 май 2009
    Сообщения:
    326
    Симпатии:
    0
    Neka, у нас сейчас таже самая задача стоит :)) центральную базу юзеров написать :))) но мы пока остановились на решении, когда каждый сайт будет держать свою таблицу юзеров с которым он работает, но представиться можно будет с единой,а также все изменения будут попадать и в единую тоже...

    если есть интерес, можем объедениться в реализации этой штуки :)
     
  6. Neka

    Neka Активный пользователь

    С нами с:
    16 янв 2010
    Сообщения:
    188
    Симпатии:
    0
    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/)? Все таки она разрабатывается программистами по всему миру.
     
  7. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.108
    Симпатии:
    1.243
    Адрес:
    там-сям
    Замечательная тема! Сразу видно кто насколько оторван от реальности :)

    Если серьезно, то тут две задачи: собственно аутентификация и синхронизация профилей. Для общей аутентификации есть готовые решения, как для общего домена, так и для разных доменов. В простейшем случае решаем общий формат авторизационной куки. Либо OpenId.
    С объединением профилей всё сложнее -- тут думать надо! :D Нужно городить API и вероятно использовать OAuth.