- Error
Wed 29 Jul 2009 |
JConnect - Release Candidate 1
Written by Arunoda Susiripala
No more Fetures >>
I've implemented all the features we were expected to do and implented some other feature which are not decided at the first such as Single Sign On. More details about JConnect features can be found here.
How it works
in this I would like to tell you some of the features(internals) and how they've implements. for this time I would like to express about authentication and single sign On from External Applications.
Single Sign On and Authentication
To implement Sign Sign On and Authentication into JConnect was hard for me. Because although I choosed to integrate Elgg ; JConnect should be designed in a more generalised way and could be able to use with any application.
So at first I choosed an OpenID framework to do that. by using that I convert Joomla into a OpenID identity povider and Elgg becomes and OpenID client. It works. and sometimes it fails on some servers and it takes a lot of process time.
Then I realized that OpenID is not the best solution for this and it does some processes that are meaning less for JConnect. So I read about how openID works and built a customized and minized version of OpenID that will work fine for JConnect.
here's the flow diagram of that Process.

- In this sytem after an user successfully logged into Joomla (we use normal login process of Joomla) it will generate a public token and a private token based on the secret key shared by both Joomla and ExApp.
- when ExApp get the public token It'll generate the private token based on the secret key and opens a html page via fopen() with sending this private token.
- then in that page(Joomla) it'll check the private token is valid and if so prints the user-details as JSON. and invalidate that private key.
- then in the ExApp it'll get the JSON of user-details and do the local login process.
OK! That's authentication where's the Single Sign On ?
- here it is.... We use above system to do both Authentication and Single Sign On.
- once the user-gives login details in this process Joomla! will get logged in that user.
- then the user can go to the Joomla site and he can see he logged in.
- And the vise versa of the this case is also the true.
- If the user has already logged into Joomla! then in the above process it won't ask the login details from the user and just send the public key.
- So user can logged into Elgg with out entering username password!
See it for user-self
- Joomla! Live site: http://livejconnect.co.cc
- Elgg Live site : http://jcelgg.co.cc
- To start above detailed process click `login using JConnect` in the Elgg Live Site
Download and other infomation
http://jconnect.googlecode.com
Feedbacks and Next
I would really like to here feedbacks from you and if there's issue I really like to here about that. anyway in the next blog posts I would like to show about some other internals and Developer version of JConnect.
thank you!

2009-07-29 11:48:12
Any plan for connecting phplist whith this ???
Many thanks
2009-07-30 02:00:47
and I didn't made a list of application's which is about to bridge.
but when I put the developer API + WIKI it'll easy for any-developer to do that.
Anyway I'll made phplist into consideration
thanks
2009-08-04 12:57:17
At first I was wondering how would you do the SSO for all kinda external apps. Finally, yeah OpenID is the solution coz i was thinking there must be a common gateway to hook up to.
Best
2009-08-04 14:15:54
OpenID is the solution ....
but it has some parts which don't need....
eg:-
it use diffie-helmann to transfer a secret key between two ends but we've to pay for it..(perpofmance)...
but in the case of JConnect we've already shared a key .. so we don't need that step....
So I just cut-that part out from the OpenID spec and use the existing shared key..
2009-11-03 03:21:13
2009-11-14 13:28:42