热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

AgilePLM单点登录

需求描述要求PLM集成SSO(单点登录),在SSO统一登录以后可以直接进入PLM,无须二次登录。适用Agile版本&#x

需求描述

要求PLM集成SSO(单点登录),在SSO统一登录以后可以直接进入PLM,无须二次登录。

适用Agile版本:9.3.2+

总工作量:10~30人天


实现前提

PLM必须能够获取到用户的明文密码才能实现单点登录。

如果公司信息安全要求,密码存储和传输必须使用密文,可以提供给PLM解密方式。不要使用无法解密的算法,例如:MD5

如果不能提供PLM用户密码,那PLM必须使用固定密码才能实现单点登录。


实现思路


  1. 接入企业SSO之前,需要有一个公共平台统一维护用户账号。然后同步给其他系统。
  2. PLM同步统一用户平台的数据。确保用户信息变更后也可以自动登录。
  3. 创建Web项目。接收SSO登录请求,解析token,模拟PLM登录。
  4. 全局配置URL重定向,将第三方系统登录地址重定向到统一登录入口。


实现步骤


组织架构同步

这一块的工作量占的比重较大,需要根据同步内容和同步规则具体评估工时,还涉及系统联调。

首先需要和需求提出方确认好要同步哪些对象哪些字段。比较常见的是同步用户信息,例如:用户工号,用户姓名,密码,邮箱,手机号等。其中用户密码涉及加密,需要提供解密方式(下面会详细介绍)。但也有的公司还会要求同步岗位,部门,直属领导等信息。


用户信息同步

目前的实现方式如下:

开发定时任务定时全量同步。需要单点登录系统提供接口或者视图,第三方系统获取全部用户信息后进行比对并更新自己的用户信息。这种方式用户信息同步存在滞后问题,而且如果用户信息比较多,单次同步时间较长。优点是开发周期较短而且功能上线时可以全量同步。

开发接口增量同步。当用户信息存在变更时,需要单点登录系统主动推送增量变更信息推送给第三方系统。这种实现方式同步延迟较低,开发周期较长,建议采用MQ实现。

LDAP域集成。这种方式首先需要搭建LDAP环境,AgilePLM有标准功能支持,做好之后还能自动屏蔽修改密码功能。

无论采用哪种方式,一般新同步的用户权限只能默认基础角色,需要管理员额外在PLM单独配置其他权限。实现时,可以考虑创建一个基础用户,然后新用户从这个用户另存。


密码同步

密码同步一般2个实现方案。单点登录系统必须提供明文密码。AgilePLM不支持密文密码。


  1. 所有用户设置统一的固定密码,例如:P@ssw0rd。
  2. 每个用户密码都不同,同步用户的实际密码。


Web项目模拟登录

新建一个Web工程,需要用到一个controller和html页面。

在controller中配置好URL映射,当用户在企业门户主页点击PLM图标时。单点登录平台会将token通过URL传过来。

解析token中附带的用户名和密码。需要SSO的开发方提供解密方式。

得到用户名和密码之后,传给页面的form表单中,然后直接提交,模拟Agile登录


Weblogic内部校验关闭

部分步骤代码因公司保密协议要求不便给出。需要洽谈合作的可以微信联系(微信号同csdn账号)。

目前已在Agile 9.3.6的很多版本上实施过了。


AgilePLM登录界面重定向

目前这个步骤是客户公司的IT部实施的。通过全局的链接地址重定向功能,将AgilePLM的登录地址重定向到统一登录入口的登录地址。还有其他系统需要集成单点登录的也需要做相同配置,例如:CRM,MES,EHR等。

出于研发信息安全考虑,有的公司虽然集成了单点登录但还是会限制PLM只能从内网才能访问。


推荐阅读
author-avatar
黎世江
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有