第三方系统LTPA Token单点登录到EAS的二次开发指南
本指南适合EAS75及以后的所有版本。
要从第三方单点登录到EAS,即:从第三方系统中,通过链接直接打开EAS,需要现场进行二次开发。
# 1、修改配置文件:
涉及单点登录的配置文件有三个:
## 1.1、修改ssoClient.properties文件:
将服务端server\profiles\server(1…n)\config\portalConfig目录下的ssoClient.properties文件中的sso.easIsSSOClient参数项的值修改为true;
## 1.2、修改autoLoginConfig.properties文件:
打开服务端server\profiles\server(1…n)\config\portalConfig目录下的autoLoginConfig.properties文件。
文件内容如下:
![image.webp](/download/01008387790ca00744869b664085cfa49df6.webp)
其中需要修改的参数如下:
**Datacenter**: 数据中心代码,即EAS portal要登录的数据中心代码 (即:数据中心编码ID,EAS管理控制台可查看);
**authPattern**:认证模式,值为BaseTrdLtpaToken,一般默认值是这个,不需要修改
**locale**:语言项,其中:L1=英文 L2=简体 L3=繁体;
**dbType**:数据库类型,其中:MS-SQL-SERVER=0 DB2=1 ORACLE=2。
## 1.3、修改LTPA密钥文件:
打开server\profiles\server(1...n)\config\portalConfig\LtpaToken.properties
文件内容如下:
![image.webp](/download/01008f543aa44cf84c258f59928c753add9a.webp)
参数说明:
**cookie.domain**:与Domino集成时才有用的参数,通常无需关注;
**token.expiration**:token串的有效时间,这里以分钟为单位,用于校验token串时检查其是否过期,其有效时间从生成token串时Web应用的系统时间开始算起,因此,LTPA认证集成机制要求被集成的各Web应用服务器的系统时间需要保持一致
**domino.secret**:加密生成token串的密钥,该参数可以是任意指定的一个字符串,没有长度限制,部署实施时注意更换此密钥以增加安全性。
该文件需要在EAS服务器环境和要集成Web应用系统的环境中各保存一份,且密钥必须相同,注意:在EAS服务器环境中该文件的存放路径不用改变,即上述缺省路径即可,在第三方Web应用系统中该文件的存放路径可任意指定 (例如:D:\TrdWebApp\security)。
# 2、获取Ltpa的Token
由于EAS是用JAVA开发的,所以EAS提供的密钥生成的方法是JAVA写的。所以针对第三方系统,我们分成两类:
## 2.1、java:
第三方是java系统的,这个比较简单,首先将附件中的kingdee_Ltpa.jar包和LtpaToken.properties(注意保证与EAS系统中的文件一致)放置到第三方系统中,然后只需要以下几行代码即可获取token串:
```java
//username :用户名,第三方自己通过安全可靠的方式获取;
//filePath:LtpaToken.properties文件放置的路径,包含文件名,请注意文件一定要放在程序能访问的地方;
String username = "user";
String password = LtpaTokenManager.generate(username,filePath).toString();
```
## 2.2、非java:
第三方系统为非java体系的,相对来说比较麻烦。主要实现思路是:第三方系统通过调用java类或者写一个java程序,然后由第三方调用这个java程序来生成token,以下是asp.net的样例,仅供参考:
1)、将kingdee_Ltpa.jar解压缩到c:\winnt\java\trustlib目录
2)、在需要的asp页面中,加入如下代码:
//username,filePath请参考2.1的说明,该代码样例仅供参考,详细内容请自行查询参考互联网;
<%
```
set javaObject = GetObject("java: LtpaTokenManager")
password = javaObject. generate (username,filePath)
set javaObject = nothing
```
%>
为了安全起见, 第三方系统中,获取用户名和生成token要在同一个接口里做,不能分开在不同类甚至在不同的端做;更不要带着用户名的方式发起http请求去生成token,这样容易被人擅改用户名。
# 3、第三方单点登录到EAS
第三方单点登录到EAS,通过打开以下URL来进行:
http://<ip>:<port>/portal/index2sso.jsp?username="+username+"&password="+password+"&redirectTo="+redirectTo
其中参数:
(1)**username**:用户名;
(2)**password**:第二章中生成的token;
(3)**redirectTo**:登录成功后跳转的地址,如果是打开首页,请将值设为双斜杠”//”;也可以是eas系统中的任何可以单独打开的地址(即在登陆后,地址可以单独在浏览器地址栏里输入就可以正常打开的地址),不过地址需要进行html编码,这类方式将不展示eas门户首页,而是直接打开所指定的地址;
(4)**/portal**:如果是登录老门户,请将/portal改为/easportal;
(5)增加参数**isNotCheckRelogin**=true,则针对单点登录跳转不做重复登录判断和提示。建议放在username="+username+"&password="+password之后。
(6)**redirectTo**地址较长且带有参数,请先对redirectTo进行转码。
**温馨提示:**
如果以下各版本安装了对应补丁:
EAS 8.2 :PT171784 、PT171472
EAS 8.5: PT171470 、PT171783
EAS Cloud 8.6.1 : PT171471 、PT171774
上述的链接的两个参数建议修改成以下,其它使用不变:
http://<ip>:<port>/portal/index2sso.jsp?kdacccode="+username+"&kdacctoken="+password+"&redirectTo="+redirectTo
第三方系统LTPA Token单点登录到EAS的二次开发指南
本指南适合EAS75及以后的所有版本。要从第三方单点登录到EAS,即:从第三方系统中,通过链接直接打开EAS,需要现场进行二次开发。# 1、修...
点击下载文档
本文2024-09-16 22:07:04发表“eas cloud知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-eas-46034.html
您需要登录后才可以发表评论, 登录登录 或者 注册
最新文档
热门文章