产品在V10版本之后提供了内置的tocken单点登录配置,详见 令牌tocken单点登录【内部】 ;正常不再继续使用该文档中的方式配置。
该文档方案跟 内置tokcen单点登录 的主要区别:
1、需要配置扩展包,不方便维护。
2、第三方生成tocken串,需要先通过管理员登录Smartbi系统,在调用接口生成tocken,不够安全;产品内置实现只需要调用工具类即可生成tocken串。
3、产品内置方案用户可以自定义密钥,并选择不同的加密方式。
1. 概述
1.1. 功能介绍
用于第三方系统集成Smartbi中单点登录加密传输用户信息,安全系数更高,不会暴露用户的真实密码。
1.2. 原理
第三方系统使用密钥对用户登录信息进行DES加密来形成token,当客户端发起的请求携带有令牌登录参数以及目标跳转地址时,Smartbi服务器拦截到请求后,对token信息进行解析和校验,如果成功解析出用户信息并校验成功,则将用户设置为登录状态,再重定向到对应地址,后续访问其他地址无须重新登录。可用于第三方系统集成Smartbi中单点登录加密传输用户信息,安全系数更高,不会暴露用户的真实密码。
1.3. 名词释义
token:token是客户端使用密钥加密用户登录信息形成的一串字符串,以作客户端进行请求的一个令牌。
2. 功能详解
2.1. 令牌登录配置
访问Smartbi的Config配置界面 (地址为 http://IP:PORT/smartbi/vision/config.jsp),配置令牌登录的信息:密钥、超时时间等
...
配置项 | 说明 | ||
---|---|---|---|
密钥 | 用来解密token信息。客户端需要用密钥来进行加密用户信息。密钥为默认空,表示不支持令牌登录这种方式。
| ||
令牌超时时间 | token有效时间。当【服务器解析请求时间戳 - token的生成的时间戳 > 超时设置 】成立时,则代表token已超时,不能进行登录; | ||
需要校验密码 | 设置token中是否要包含密码,使用密码来进行登录。
|
2.2. 生成令牌Token
Token的结构参考如下:
代码块 | ||||
---|---|---|---|---|
| ||||
{ "timestamp":时间戳, "username":"用户名", "password":"可选,用户密码" } |
...
使用“smartbi-DESUtil.jar”的工具类的encrypt方法来加密token来获得令牌,其中加密类是:DESCryption
该类提供加密、解密方法:
2.3. 使用token登录
链接格式:http://ip:port/smartbi/vision/loginByToken?smartbiToken=用户信息加密串&targetPath=目标跳转链接及其参数
...
代码块 |
---|
http://localhost:8080/smartbi/vision/loginByToken?smartbiToken=54f296bd4649b0d41....&targetPath=mobileX/report?resid=I2c94ea86298cbe6c01298cfd9ba900fa |
4. 示例
web项目使用令牌登录集成Smartbi:使用令牌登录示例.zip