Системы управления пользователями (единая авторизации и регистрация)

Xeon303

Новичок
Системы управления пользователями (единая авторизации и регистрация)

Во-первых приветсвую всех старожилов форума ;) Давно тут не появлялся.

Объясню коротко ситуацию. Разрабатывая новый сайт столкнулся с трудностью интеграции CMS (eZ publish 4) и форума (phpbb 3). Основная проблема это объединение базы пользователей форума и сайта в одну таблицу, которая включала бы основные регистрационные данные: логин, пароль, дата регистрации и т.д. Дополнительные поля могут оставаться в своих БД.

Отсюда вытекают необходимости:
1. Единой авторизации через БД пользователей (как на форуме, так и на сайте)
2. Единая пользователская сессия форума и сайта

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

В обоих системах есть возможность авторизации через LDAP, но как я понял это не совсем то что мне нужно. По двум причинам: LDAP'а не видел ни на одном из хостингов; нет возможности регистрации через LDAP (только авторизация).

Вопрос к знатокам:
1. Есть ли системы для внутрисайтовой авторизации и регистрации пользователей?
Т.е. такие системы, которые устанавливались бы на сайт (допустим, как CMS), имели бы БД пользователей и желательно возможность администрирования через отдельный интерфейс.
А дальше разработчик CMS внедряет сам возможность взаимодействия с такой системой управления пользователями, то же самое делает разработчик форумного движка.
В результате получается очень удобная возможность объединить две разные системы, где есть регистрация пользователей.

2. Есть ли какие либо решения конкретно для моего случая?
 

Angerslave

Новичок
1. Да полно, почти в каждом нормальном фрейворке есть. Но тебе это не особенно нужно, имхо.
2. Лучше приводить ту систему, что лучше абстрагирована в плане пользователей к той, что хуже - работы меньше будет. Посмотри в обоих системах все методы, которые работают с юзерами и прими решение, какую систему к какой приводить выгоднее. Если хочется совсем по уму, то, конечно, что-то стороннее вводить, но только зачем?
 

fixxxer

К.О.
Партнер клуба
в примитивных случаях можнет оказаться вполне достаточно create view;)
 

Xeon303

Новичок
Angerslave
По вопросу 1.
Честно говоря не встречал подобных систем. Может быть просто объяснил плохо, но хочется познакомится с системами, которые имеют четкий стандартизированный интерфейс для менеджмента учетных записей. Такие системы, которые де факто могут стать стандартом, которого придерживались бы все разработчики. Тогда бы пропали танцы с бубном при интеграции двух систем с объединенной базой юзеров.

Про обычные библиотеки сессий и авторизации я знаю, они и правда есть в любом фреймворке, но хочется отдельный, так сказать, "продукт". На подобие CMS.
 

fixxxer

К.О.
Партнер клуба
ты определись, тебе надо решить поставленную задачу или "познакомиться". ок, пусть и то и другое. в первом случае просто патчится одна из двух систем для использования авторизационных данных второй, тут "не думать а прыгать". во втором погугли по acl и посмотри тот же zend framework.
 

pilot911

Новичок
на цмс давно уже можно пользоваться хуками и задействовать апи от сторонних скриптов авторизации, того же форума phpbb

хук придется писать в любом случае

и еще вопрос:

- как ты представляешь себе стандарт для авторизации?
 

Angerslave

Новичок
Xeon303
OpenID, например. Только это уже совсем другое.
Готовых наборов "библиотека + frontend этой библиотеки" я не встречал, да и не думаю, что кто-то собирается такое делать.
пользователи под каждую систему должны настраиваться по-своему, поэтому все эти "стандартизации" особо никому не нужны - обмена данными-то нет. А там где есть (OpenID), там совсем другая организация.
В общем, или юзай OpenID, или пиши фронтенд для тех же Zend_Acl и Zend_Auth.
 

Xeon303

Новичок
Angerslave
да, OpenID другое. Но в какой-то мере близкое по возможностям. Другое, что им никто не пользуется.

На счет невостребованности не согласен. На мой взгляд проблема очень актуальна. Тут и там приходится интегрировать системы друг с другом и проблемы авторизации и регистрации тут очень актуальны.

Просто если представить, что существовала бы такая система и разработчики CMS, форумных, блоговых движков поддерживали бы совместимостью с ней, то эти проблемы отпали бы сами собой. А сейчас приходится прибегать к модификации кода одной или двух систем, которые интегрируются.

Например, на Яндексе это служба Яндекс.Паспорт. Но естественно, что она закрытая и исходники её никто не раскроет. Да и не надо. Я здесь только принцип сравнивая.

-~{}~ 10.12.08 12:34:

pilot911
Я представляю так:

Отдельная система со стандартизированным API (возможно даже с использованием XML для обмена данными). Своя система авторизации и сессий. Устанавливается на сервере, где функционирует сайт.

Ищется движок совместимый с нашей системой, также форум или любая другая система, которую разрабатывают разные люди.

Все компоненты ставятся на один сервер (хостинг), вписываются настройки (соединения, например) с системой.

При регистрации пользователей движок (форума, цмс или блога) обращается к нашей системе и регистрирует пользователя. Так же и авторизация.

При авторизации также движок обращается к системе, получает ответ от системы (авторизация успешна или нет)

А также если уже пользователь авторизован, то проверяет наличие сессии опять же через нашу систему.

Примерно так.
 

newARTix

Новичок
Xeon303
мне кажется это утопия, фронтенд такой системы сложно представить, так чтобы он удовлетворял всех... (роли, ранги, регистрация, авторизация, подписки, разделение юзеров на различных уровнях, регистрируются ведь только юзеры, но не админы, а где-то и админы, а где-то ролей вообще нет, ресурсы сами регулируют доступ по своей логике, баны, реферы, кросс-авторизация и все это должно удобно управляться при кол-ве пользователей больше 100). Вот и получается, что такую универсальность может обеспечить только абстрактный бэкэнд... ну и набор готовых решений на его основе. А этого как грязи.
Тот же Zend_Acl и Zend_Auth, вся настройка сводится к add(Resource) и addRole... куда уж готовее?
 

Xeon303

Новичок
newARTix
да это и не самое важно (я про фронтэнд).

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

Одно жаль, что нет поддержки ничего подобного даже в современных движках :(
 

Angerslave

Новичок
Например, в IPB вроде как пользователи значительно отделены от всего остального, да и API там есть, только это платная система.
 

dr-sm

Новичок
> Тот же Zend_Acl и Zend_Auth, вся настройка сводится к add(Resource) и addRole... куда уж готовее?

Zend_Auth готовым решением можно назвать с очень большой натяжкой.
чего только стоит дефолтная реализация RememberMe,
хотя там ноги растут из Zend_Session скорее.
 

Crys

Двинутый новичок
Главное - база пользователей, их основные данные и регистрация с авторизацией. Внутренняя политика доступа может храниться отдельно в CMS, отдельно на форуме, т.к. эти политики совершенно не пересекаются и необходимости в их интеграции нет.

Одно жаль, что нет поддержки ничего подобного даже в современных движках
Нет чего, ACL?
 

Xeon303

Новичок
Crys
ACL управляет ролями и ресурсами - всего этого с избытком хватает в существующих системах. Мне ни коем образом не нужно перемешивать роли в разных системах.

А вот пользователей нужно хранить в единой базе с доступом и управлением юзерами через единый API.

Всё что я ищу - это стандарты или подобные системы, если таковые существуют.

Zend Framework мне пока не нужен, т.к. большинство CMS разработаны не на его основе. Да и не предусматривается в них возможность единой БД пользователей (при дальнейшей интеграции с другими системами).

-~{}~ 11.12.08 01:59:

---
Вот я допустим, будучи к примеру разработчиком CMS выбрал бы подобную систему, разработал бы модуль, который взаимодействует с этой системой: регистрирует пользоватлей через нашу систему, авторизует тоже через неё.

Если внутри моей CMS есть разделение ролей, то это не должно затрагивать базу пользоватлей. Эти связи внутренние и не затрагивают дргие движки, поэтому все эти роли и политики можно хранить внутри CMS, а не внутри базы пользоватлей. Поэтому ACL тут не сдался.

Главное, что клиенту не придется копаться в исходниках моей CMS, если он захочет интегрировать её с форумом или любым другим движком.
 

HraKK

Мудак
Команда форума
бред какой-то. Понимаешь когда ты делаешь сам все - то да. А когда надо сторонее прикрутить всегда найдутся нюансы.
 

Xeon303

Новичок
HraKK
на мой взгляд далеко не бред... В плане пользоватлеськой регистрации и авторизации помогло бы очень сильно.

Я конечно же молчу про другие проблемы интеграции, но это самая актуальная на мой взгляд. Не зря ведь LDAP существует? Только вот не подходит он по многим причинам...
 

флоппик

promotor fidei
Команда форума
Партнер клуба
Вот я допустим, будучи к примеру разработчиком CMS выбрал бы подобную систему, разработал бы модуль, который взаимодействует с этой системой: регистрирует пользоватлей через нашу систему, авторизует тоже через неё.
google://OpenId
 

Xeon303

Новичок
флоппик
это похоже, но в масштабах одного сайта нужно :) Здесь лишь некоторые принципы можно позаимствовать.
 

fixxxer

К.О.
Партнер клуба
я бы на месте твоего работодателя тебя бы уже уволил.
вместо того, чтобы пойти и набросать патчик в 10 строк, ты уже второй день тут разглагольствуешь о высоких материях.
 
Сверху