概要说明
在多个系统集成时,为了方便用户使用和统一管理,一般都会要求多个系统实现单点登录。单点登录一般有如下几个步骤:
1、用户信息同步。用户信息同步有多种方式,可参考 用户集成。
2、第三方系统通过链接等方式打开 Smartbi 并传递用户名等信息完成登录,后文详述。
3、Smartbi 实现第三方的登录验证方法。具体请参考“用户集成”中的“使用第三方系统的用户验证”章节。
第三方系统单点登录时的几种方法
可以通过以下五种方法之一,在第三方系统中单点登录到 Smartbi 系统。请根据实际需要,选择其中一种登录方法。
单点登录名称 | 方案简述 | 优点 | 缺点 | 适用系统 |
---|
LoginToken扩展包登录 | 在第三方系统中编写JSP 页面/Java代码调用Smartbi的服务器端SDK方法进行登录后获取Token再使用Token登录。 | token只能使用一次且60秒内有效,不会暴露用户的真实密码,支持集群,安全性高。 | 需要加载扩展包并修改登录验证类。 | 安全性要求高的系统。 |
页面中使用Form登录 | 在页面中提交form表单传递用户密码参数登录,并传递参数告知smartbi登录成功和失败跳转的地址。 | 集成方式简单。 | 用户名和密码暴露在前端,安全性差。 | 安全性要求不高的系统。 |
浏览器端SDK登录 | 通过JSLoader加载bof.usermanager.UserService的js方法登录。 | 简单方便,通用性高。 | 集成方式较麻烦,用户名和密码暴露在前端,安全性差,需要解决跨域问题。 | 安全性要求不高的系统。 |
服务器端 SDK登录 | 在第三方系统中编写 JSP 页面/Java代码调用 Smartbi 的服务器端 SDK获取Cookie进行登录。 | 不会暴露用户的真实密码,安全性高。 | 不支持集群部署,不支持从第三方系统链接转到Smartbi系统首页进行登录。 | 安全性要求高的系统,只适用于在第三方系统中打开和新建Smartbi资源以及在第三方中打开功能模块进行登录。 |
CAS单点登录 | 将Smartbi接入到统一登录认证平台进行登录。 | 安全性高,多系统集成时登录方便。 | 需要加载扩展包,需要修改扩展包配置文件和登录验证类。 | 用户已有CAS服务器的情况。 |
注意事项
1、如果不通过单点登录,那么在集成 Smartbi 资源时必须传入user、password 参数。
2、如果采用 Smartbi 的服务器端SDK方法进行单点登录,在集成资源时除了可以传递参数user、password之外,还可以单独传递参数smartbiCookie,此参数为从服务器端获取的cookie。获取此值的方法,见下面红色方框内代码。

3、如果Smartbi是集群部署模式,不能采用“浏览器端SDK登录”进行单点登录,原因是ClientConnector对象是在jsp页面的java代码块中初始化的,其发起对象是第三方系统服务器,而集成资源是浏览器发起的,浏览器在使用该cookie时,不能保证跟服务器一样访问到同一个节点,在没有访问到同一个节点时,其cookie是无效的。