第三方系统LTPA Token单点登录到EAS的二次开发指南

栏目:eas cloud知识作者:金蝶来源:金蝶云社区发布:2024-09-16浏览:1

第三方系统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、修...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息