Внедрение единого входа и синхронизации данных - PullRequest
0 голосов
/ 25 августа 2009

Мне необходимо реализовать единый вход между Liferay и несколькими системами на основе PHP. Используемая база данных - MySQL.

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

Я сам решу, какая главная таблица будет использоваться для хранения всей информации для входа и разрешений для всех систем.

Мой вопрос: как мне синхронизировать данные между таблицами в разных базах данных? Когда запись вставляется в systemA.userdb, она автоматически вставляется в master.table (наиболее важным столбцом являются имя пользователя и пароль). Так же обновлять и удалять.

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

1 Ответ

0 голосов
/ 25 августа 2009

Я предлагаю создать VIEW для каждого приложения, которое помещает пользовательскую таблицу в любой формат, который они ожидают.

если по какой-то причине вы не можете получить представление, которое делает то, что вам нужно, то следующим лучшим вариантом будет триггер.

если приложения используют разные серверы mysql, объедините любой из двух приведенных выше с федеративными таблицами.

...