作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com
实际情况不同,解决Drupal与其它站点、系统之间的用户同步的方式也不尽相同。Drupal有多个第三方模块,用来解决这样的问题。我们对常用的这些第三方模块加以介绍,方便大家根据自己的实际情况,选择对应的解决方案。
Single sign on(单点登陆)模块
• 项目地址:http://drupal.org/project/sso
• 适用情景:同一台服务器,多个Drupal安装,用户共享,域名不同
• 实现机制:通过建立子站点与主站点之间的会话信息的对应关系,重新实现Drupal的会话机制,来实现单点登陆
Bakery单点登录系统
• 项目地址:http://drupal.org/project/bakery
• 适用情景:Drupal.org官方网站的解决方案,不同的服务器,主域名相同,子域名不同,比如example.com、news.example.com、forum.example.com。
• 实现机制:由于同一个主域名下,cookie可以共享,通过站点之间调整并分发cookie实现。
CAS
• 项目地址: http://drupal.org/project/cas
• 适用情景: JAVA CAS所适用的各种场景,适用范围广。可用于多种情况。
• 实现机制:利用phpCAS库函数,将Drupal与Java的CAS系统相集成,实现统一用户登录。
•
LDAP integration
• 项目地址:http://drupal.org/project/ldap_integration
• 适用情景:符合轻量级目录访问协议的各种情景
• 实现机制:将Drupal与LDAP服务器相集成,利用LDAP服务器解决用户登录。它包含三个子模块ldapauth、ldapgroups、ldapdata。ldapauth可以针对多个LDAP服务器进行认证;ldapgroups可以把ldap group处理为Drupal角色;ldapdata为Drupal访问ldap数据提供读写权限
Services 模块
• 项目地址:http://drupal.org/project/services
• 适用情景:从其它系统访问Drupal中的用户
• 实现机制:Services 模块,对用户进行了封装,对外提供了webservice服务,供其它系统调用。它提供了多种接口方式,比如XMLRPC、 JSON、JSON-RPC、 REST、 SOAP、 AMF等等。Services 模块不是专门用于用户登录的,我们只是借助于它将Drupal的用户信息封装成web service服务。