使用外部SSO进行Joomla用户授权

时间:2014-02-20 23:45:56

标签: joomla

尝试将Joomla网站与内部单点登录系统集成。 SSO用户身份验证&授权系统是本土的,并处理我们所有的用户访问。

我有一个SSO网站,我想将所有Joomla用户发送给他们,一旦他们通过身份验证,他们将被重新重新路由回Joomla网站,他们将登录。

我需要做的是设置会话变量并针对我们的身份验证服务器检查此会话ID,以查看用户会话是否仍然有效,实质上是增加了Joomla会话/授权检查。如果会话无效,我会将用户重定向到SSO登录页面。

是否有一个我可以附加的核心Joomla事件也允许执行授权?

2 个答案:

答案 0 :(得分:2)

这是一个高级概述,你可以做一些事情。

您可以使用两个事件来触发和拦截身份验证过程。

作为系统插件,使用onAfterInitialise(),您可以在执行周期的早期触发身份验证请求:

    // Get the application object.
    $app = JFactory::getApplication();
    $result = $app->login($credentials, $options);

基本上,当用户加载页面时,如果它还没有会话/是访客JFactory::getUser()->guest === 1,您可以根据自己喜欢的内容尝试对用户进行身份验证。

先前触发的请求可以使用身份验证插件拦截,从而实现方法onUserAuthenticate()。在这种方法中,您实际上可以通过任何您喜欢的方式向外部系统发出请求(请参阅现有的身份验证插件)。

答案 1 :(得分:0)

您需要一个身份验证桥。

JFusion应该可以让你做你想做的事。除了与各种现有系统集成之外,它还允许自定义身份验证桥。

http://extensions.joomla.org/extensions/access-a-security/site-access/authentication-bridges/3723