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

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

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

第三方系统单点登录到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

 

其中需要修改的参数如下:

Ø  Datacenter: 数据中心代码,即EAS portal要登录的数据中心代码 (即:数据中心编码ID,EAS管理控制台可查看);

Ø  authPattern:认证模式,值为BaseTrdLtpaToken,一般默认值是这个,不需要修改

Ø  locale:语言项,其中:L1=英文  L2=简体  L3=繁体

Ø  dbType:数据库类型,其中:MS-SQL-SERVER=0  DB2=1 ORACLE=2  pg数据库=5

Ø   

1.3、      修改LTPA密钥文件:

打开server\profiles\server(1...n)\config\portalConfig\LtpaToken.properties,文件内容如下:image.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.1java

第三方是java系统的,这个比较简单,首先将附件中的kingdee_Ltpa.jar包和LtpaToken.properties(注意保证与EAS系统中的文件一致)放置到第三方系统中,然后只需要以下几行代码即可获取token串:

String username = "user";

String password = LtpaTokenManager.generate(username,filePath).toString();

其中:

Ø  username :用户名,第三方自己通过安全可靠的方式获取;

Ø  filePath:LtpaToken.properties文件放置的路径,包含文件名,请注意文件一定要放在程序能访问的地方;

 

2.2、非java

第三方系统为非java体系的,相对来说比较麻烦。主要实现思路是:第三方系统通过调用java类或者写一个java程序,然后由第三方调用这个java程序来生成token,以下是asp.net的样例,仅供参考:

1)、将kingdee_Ltpa.jar解压缩到c:\winnt\java\trustlib目录

2)、在需要的asp页面中,加入如下代码:

<%

set javaObject = GetObject("java: LtpaTokenManager")

password = javaObject. generate (username,filePath)

set javaObject = nothing

%>

username,filePath请参考2.1的说明

                     该样例仅供参考,详细内容请自行查询参考互联网;

 

为了安全起见, 第三方系统中,获取用户名和生成token要在同一个接口里做,不能分开在不同类甚至在不同的端做;更不要带着用户名的方式发起http请求去生成token,这样容易被人擅改用户名。

 

3、第三方单点登录到EAS:

第三方单点登录到EAS,通过打开以下URL来进行:

http://<ip>:<port>/portal/index2sso.jsp?username="+username+"&password="+password+"&redirectTo="+redirectTo

其中参数:

Ø  username:用户名;

Ø  password:第二章中生成的token;

Ø  redirectTo:登录成功后跳转的地址,如果是打开首页,请将值设为双斜杠”//”;也可以是eas系统中的任何可以单独打开的地址(即在登陆后,地址可以单独在浏览器地址栏里输入就可以正常打开的地址),不过地址需要进行html编码,这类方式将不展示eas门户首页,而是直接打开所指定的地址;

Ø  /portal:如果是登录老门户,请将/portal改为/easportal;

Ø  增加参数isNotCheckRelogin=true,则针对单点登录跳转不做重复登录判断和提示。建议放在username="+username+"&password="+password之后。

Ø  redirectTo地址较长且带有参数,请先对redirectTo进行转码。

 

PS:

其他应用场景1:第三方系统集成EAS流程审批消息,然后点击审批消息实现登录跳转到EAS新门户的审批页面

消息集成请参考文档:《消息中心接口使用说明_new(3) .doc》

单点登录页面跳转url中的redirectTo为:

“/easweb/webviews/workflow/transferApprove.jsp?AssignmentId=”+taskid

前提:

EAS V7.5需更新补丁PT100667,(建议更新最新补丁)

EAS V8.0需更新补丁PT103285和PT108633,(建议更新最新补丁)

EASV 8.1需更新补丁PT111114,(建议更新最新补丁)

EAS V8.2不需要更新补丁。

 

其他应用场景2:如果希望在登录成功后,需要打开门户首页,还需要在导航栏直接打开某个指定的页面(该功能80以后支持),有两个前提条件:

        1)、必须是新门户;

        2)、打开的页面必须在新门户中存在;

 

        实现方式为:

        1)、用administrator登录系统,打开“门户管理”,选择放置菜单的地方,可以选择的地方包括顶部导航,首页导航、应用等3个菜单项:

image.webp

        2)、修改要默认打开的页签的编码,注意:编码必须为C-开头;如上图;

        3)、redirectTo:值设置为:openpage?num=C-ABC;

 

4、FAQ:

4.1、中文名无法单点登录的问题

        中文在网络传输过程中,需要先进行html编码,且生成token时用的是原用户名,仅在发送请求时先将中文编码后跟token一起发送。以下是js编码的样例:

        var encodeName = encodeURIComponent(userName);

 

4.2、第三方系统是非java体系的,是否可以在EAS上放置一个完成单点登录功能的中转页面,然后第三方直接传递用户名来访问这个页面达到单点登录的功能?

        这个做法是可以实现单点登录的,但是存在很大的安全漏洞,那就是:用户可以随意传递一个用户名来访问这个中转页面。客户如果可以忽略这个安全漏洞,可以这么做,但是我们强烈建议不要这么做!!!

 

4.3、如何在单点登录成功后直接打开一个GUI页面?

        该功能在80及以后版本支持。

        实现该功能需要先将GUI菜单导入门户中,剩余的具体实现方式请参考第3章中PS里的内容。

 

4.4、退出登录时如何跳到其它页面,而不是跳到eas指定的页面?

Ø  登录的是portal:

用编辑工具打开\server\deploy\portal.ear\portal.war\res\js\core\ jPortal.core.manager.js:

修改上述红框的地方为指定的页面即可;

image.webp

Ø  登录的是easportal:

用编辑工具打开\server\deploy\eas.ear\cp_web.war\logout.jsp:

修改上述红框的地方为指定的页面即可;

image.webp

 

 


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


多个数据库,如何指定sso是哪一个?

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

第三方系统单点登录到EAS的二次开发指南 本指南适合EAS75及以后的所有版本. 要从第三方单点登录到EAS,即:从第三方系统...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息