1. 概述
1.1 版本
报表服务器版本 |
---|
11.0 |
1.2 应用场景
用户不想使用平台内置认证,想要自定义认证。例如用户集成单张模板到自己的系统,想要自己控制认证。
1.3 功能简介
HTTP 认证开启后,平台会把输入的用户名密码加密后传送到 HTTP 认证服务器,HTTP 认证服务器根据自定义逻辑认证完成后,将认证结果返回给平台。
注:超级管理员不受 HTTP 认证的影响,依旧使用平台内置认证。
2. 通过 Node 实现认证
2.1 下载认证文件
1)点击下载:http-authentication.zip
2)将下载后的压缩包解压,保存到本地目录,例如E:\HTTP。如下图所示:
在http-authentication\node\auth.js文件中,可看到 HTTP 认证方式,如下图所示:
本章认证通过的逻辑为:用户名与密码相同,才可以正常登录平台系统。
用户可在 auth.js 的if (content.username === content.password)处,根据实际需求修改该默认认证逻辑。
2.2 启动服务器
打开命令提示符,输入下面命令来启动服务器:
1)需要先安装 npm ,安装过程这里不再详细介绍。
2)进入到http-authentication\node路径下:
注:下面命令进入的是E:\HTTP\http-authentication\node路径,用户根据实际情况进入到解压文件存放的路径即可。
e:
cd E:\HTTP\http-authentication\node
3)安装依赖
npm install
4)生成 publickey 和 privatekey,生成的 key 会输出到 key.txt :
npm run key
5)启动服务器。 前两条命令只需在第一次初始化时需要,以后启动直接 npm start 即可:
npm start
认证地址为:http://0.0.0.0:3000/
2.3 获取公钥
服务器启动成功后,打开 Node 文件夹下的 key.txt,复制公钥,如下图所示:
2.4 决策平台开启 HTTP 认证
管理员进入数据决策系统,点击「管理系统>用户管理>全局设置」,选择「HTTP认证」,输入认证地址和公钥,点击「保存」。如下图所示:
注:Http 认证选项也不需要密码一项,因此在手动添加用户或者同步数据集导入用户时,都没有密码一项。
2.5 效果查看
点击「保存」后,提示登录信息失效,重新登录平台。
在登录页输入平台「用户管理」中已经存在的用户名,密码和用户名相同,登录成功;当密码和用户名不相同时,登录失败。
3. 通过 Java 实现认证
本章两种方法认证通过的逻辑为:用户名与密码相同,才可以正常登录平台系统。
3.1 方法一:通过源码工程运行
3.1.1 下载认证文件
下载并解压文件:http-authentication-java.zip
3.1.2 运行工程
使用 IDEA 或 Eclipse 打开 pom.xml 文件,即打开工程,然后运行 WebServerMain,如下图所示:
3.1.3 复制公钥
服务器启动成功后,打开编译目录(target)下的 key.txt,复制 publickey 到决策平台中,服务器地址为:http://0.0.0.0:9090/,如下图所示:
注:如改变 key.txt,则运行 KeyGeneratorMain,再将编译目录(target)下的 key.txt,复制 publicKey 到决策平台中。
3.1.4 效果查看
点击「保存」后,提示登录信息失效,重新登录平台。
在登录页输入平台「用户管理」中已经存在的用户名,密码和用户名相同,登录成功;当密码和用户名不相同时,登录失败。
3.2 方法二:命令行运行
3.2.1 下载文件
1)点击下载 JAR 包:http-authentication-java.jar
2)将下载后的 JAR 文件使用 WinRAR 解压到某个文件夹,如下图所示:
注:解压后的文件所在路径不要有中文和空格。
3.2.2 运行文件
命令行进入解压文件所在路径,输入java WebServerMain启动服务器,如下图所示:
注:确保本地有 Java 环境。
3.2.3 复制公钥
1)服务器启动成功后,打开 key.txt,复制 publickey ,如下图所示:
2)将复制的 publickey 粘贴到平台,服务器地址为:http://0.0.0.0:9090/,如下图所示:
3.2.4 效果查看
点击「保存」后,提示登录信息失效,重新登录平台。
在登录页输入平台「用户管理」中已经存在的用户名,密码和用户名相同,登录成功;当密码和用户名不相同时,登录失败。