Best way to link multiple CB=CBsubs installs

11 years 1 month ago - 11 years 1 month ago #222729 by ignatius2
Hi,

I am looking for a way to link multiple J3+CB+GJ+CBsubs installs via some sort of SSO or SSI system. Each site and each database resides on its own dedicated server. I like CB connect, but I would rather use my own SSO/SSI solution. The SSO/SSI system would also run on a separate dedicated server.

(1) Is there a ready made tool to do this?

(2) Is there a way to tweak CBconnect so that it can do this job?

(3) If not, could you add this feature to CB connect?

(4) If any, what other avenue should I pursue?

Ideally, that SSO/SSI solution would also sync the CB fields across all the servers and applications.

While most servers would run Joomla, some would eventually run other applications.

(5) It seems that CBconnect makes use of OpenSocial. Is there a way for me to achieve my goals via OpenSocial. Do you have anything I could read to understand how to do this?

Thanks a lot

jon

Please Log in to join the conversation.

11 years 1 month ago #222811 by krileon
Replied by krileon on topic Best way to link multiple CB=CBsubs installs

(1) Is there a ready made tool to do this?

Suggest looking into some multi-site extensions as perhaps they'll work with CB too. Aside from that you could try using CB Auto Actions with external queries to push users data to other databases.

(2) Is there a way to tweak CBconnect so that it can do this job?

Sure if you implement an oAuth usage for your Joomla site then implement the handling for such oAuth usage into CB Connect.

(3) If not, could you add this feature to CB connect?

We've plans to implement oAuth support in a future CB release, but I can't provide as to when this would be available.

(4) If any, what other avenue should I pursue?

Manually moving user rows from 1 database to another I suppose is another option. Maybe a CRON job can be done to do this.

(5) It seems that CBconnect makes use of OpenSocial. Is there a way for me to achieve my goals via OpenSocial. Do you have anything I could read to understand how to do this?

OpenSocial is gone in latest releases.


Kyle (Krileon)
Community Builder Team Member
Before posting on forums: Read FAQ thoroughly + Read our Documentation + Search the forums
CB links: Documentation - Localization - CB Quickstart - CB Paid Subscriptions - Add-Ons - Forge
--
If you are a Professional, Developer, or CB Paid Subscriptions subscriber and have a support issue please always post in your respective support forums for best results!
--
If I've missed your support post with a delay of 3 days or greater and are a Professional, Developer, or CBSubs subscriber please send me a private message with your thread and will reply when possible!
--
Please note I am available Monday - Friday from 8:00 AM CST to 4:00 PM CST. I am away on weekends (Saturday and Sunday) and if I've missed your post on or before a weekend after business hours please wait for the next following business day (Monday) and will get to your issue as soon as possible, thank you.
--
My role here is to provide guidance and assistance. I cannot provide custom code for each custom requirement. Please do not inquire me about custom development.

Please Log in to join the conversation.

11 years 1 month ago #222822 by ignatius2
Replied by ignatius2 on topic Best way to link multiple CB=CBsubs installs
Thanks Kyle,

(1) No extension exist that would span across multiple servers for J3.

(4) A Cron Job would duplicate and sync the user data but it would not free users from having to log into each system as they navigate from one to another. Is this a correct assumption?

(1) I am afraid that CB Auto Actions queries would add to the page load and that under heavy server use, the queries would fail and lead to inconsistencies (as I can already experience in another system). This is why a distinct SSO/SSI system would be better.

(3) I will look into oAuth. Is implementing oAuth support a huge work?

Thanks

Jon

Please Log in to join the conversation.

11 years 1 month ago #222849 by krileon
Replied by krileon on topic Best way to link multiple CB=CBsubs installs

(1) No extension exist that would span across multiple servers for J3.

You'd have to create one or wait for one to become J3.0 ready in this case I suppose.

(4) A Cron Job would duplicate and sync the user data but it would not free users from having to log into each system as they navigate from one to another. Is this a correct assumption?

Correct, only way for that to work is to also sync the session everytime the user logs in. You'd then need to create a cookie to link the session id to the user on the other sites. You may have cross domain problems in that regard.

(1) I am afraid that CB Auto Actions queries would add to the page load and that under heavy server use, the queries would fail and lead to inconsistencies (as I can already experience in another system). This is why a distinct SSO/SSI system would be better.

There's no other solution except to implement oAuth or develop some sort of Authentication plugin for Joomla that checks credentials against all your other sites then registers or logs in and syncs the data. That'd require some sort of RESTful API on your CB sites though to handle the response.

(3) I will look into oAuth. Is implementing oAuth support a huge work?

Massive work.


Kyle (Krileon)
Community Builder Team Member
Before posting on forums: Read FAQ thoroughly + Read our Documentation + Search the forums
CB links: Documentation - Localization - CB Quickstart - CB Paid Subscriptions - Add-Ons - Forge
--
If you are a Professional, Developer, or CB Paid Subscriptions subscriber and have a support issue please always post in your respective support forums for best results!
--
If I've missed your support post with a delay of 3 days or greater and are a Professional, Developer, or CBSubs subscriber please send me a private message with your thread and will reply when possible!
--
Please note I am available Monday - Friday from 8:00 AM CST to 4:00 PM CST. I am away on weekends (Saturday and Sunday) and if I've missed your post on or before a weekend after business hours please wait for the next following business day (Monday) and will get to your issue as soon as possible, thank you.
--
My role here is to provide guidance and assistance. I cannot provide custom code for each custom requirement. Please do not inquire me about custom development.

Please Log in to join the conversation.

11 years 1 month ago - 11 years 1 month ago #222857 by ignatius2
Replied by ignatius2 on topic Best way to link multiple CB=CBsubs installs
Thanks Kyle,

This post is going to involve some hard thinking... :-) and you are the only ones who can tell if there are angles to this that I am missing. I could chop it into smaller chunks but it wouldn't be so good for future reader.

First, we need to answer one important question:

Synchronizing users could be handled by MySQL through the use of MySQL's native Multi-Master Replication capabilities where tables in a master MySQL server are replicated asynchronously to one or more slave MySQL database servers. It is possible to have two-way or "multi-way" replications where servers are both Master and slaves at the same time.

We have 2 cases here. The replication can be limited to the few user tables, or it can affect the entire database:

Case A: 1 small CB server/database for 800K butchers, 1 different CB server/database for 800K bakers and, another one for 800K hair-dressers (sharing cookies and user tables that are synchronized so that users can hop seamlessly from one CB to another),

Case B: 1 single large multipurpose CB server/database for 2.4 million butchers, bakers and hair-dressers replicated on 3 machines sharing the load/traffic (no need to modify cookies here!?)

Q1: Which case is best? In other words, all other things being equal (load-balancing and all), will having 1 giant database with MORE RELATIONSHIPS hurt speed or cripple the system in ways that 3 linked systems sharing only their users would not?

Q1b: It seems that case A would allow J3+CB to scale almost infinitely by linking sites together without speed constraint.


---- STEP 2 ----

If having multiple systems sharing users and sessions is best and fastest, THEN, we can use MySQL to sync the user tables, OR we can use the solution you recommend in your answer: CB-Auto-Actions-queries + Cookies

Q2: Which do you think would be best and safest and why?

Q3: If using MySQL, Which J3+CB+GJ+CBsubs tables should be synchronized?


---- STEP 3 ----

If your solution remains the best, from what I understand here, it would be:

(firstly) to use CB Auto Actions queries to duplicate the user data into each of the other servers when profiles are created or updated.

Q4: Wouldn't this dramatically slow down the whole system and be error prone as the user tables might be unavailable while the queries do their job?

Q5: Which table(s) should be synchronized with J3+CB+GJ+CBsubs?

(Secondly) I would need to figure out a way to have each domain or subdomain generate one or more identical cookies. This thread seems to explain how to do this with Joomla. forum.joomla.org/viewtopic.php?p=1746133#p1746133

Q6: Does CB generate a cookie when users log in? Does the above thread apply to Community builder as well?

Q7: Would that be enough to free visitors from having to login again when they move from site to site?

(Another solution) I found a Joomla Core Hack that replaces tables with views pointing to the tables of a master site (www.ijoomla.com/blog/one-set-of-joomla-users-multiple-joomla-installs/).

This was inspired by this earlier post: forum.joomla.org/viewtopic.php?f=471&t=473666#p2015114

Q8: could something like this be applied to J3+CB+GJ+CBsubs and Joomla3?

Q9: Wouldn't this be much simpler, faster and less error prone than CB Auto Actions queries?

Q10: Which tables should be changed with J3+CB+GJ+CBsubs?

(Yet again!) Rather than any of these solutions, wouldn't it be simpler and more secure to use an external SSO/SSI solution that handles all of the above for us. There are a number of open source cross-domain SSO packages such as JOSSO, OpenSSO, CAS, LASSO, Shibboleth, CAS, openid etc...

Q11: Wouldn't any of the above SSO/SSI solutions make things simpler and safer?

Thanks

Jon

Please Log in to join the conversation.

11 years 1 month ago #223015 by ignatius2
Replied by ignatius2 on topic Best way to link multiple CB=CBsubs installs
friendly bump

Please Log in to join the conversation.

Moderators: beatnantkrileon
Time to create page: 0.219 seconds

Facebook Twitter LinkedIn