# 某军工集团CA单点登录

某军工集团企业内部员工登录系统时都需要使用随身携带的usbkey等, usbkey中有用户个人的身份信息(私钥),登录过程是这样的:

  1. 用户插入usbkey
  2. 用户打开ie浏览器(或360的ie核)访问系统。(必须使用ie,是因为读取usbkey需要一个本机安装好的dll activex控件)
  3. 系统显示一个空白的html页面,其中有js脚本自动使用ActiveX读取usbkey信息,并将从服务器获取的一个随机数字用usbkey中的私钥签名后发给服务器好让服务器验证用户的身份
  4. 服务器端验证身份信息时需要连接后端的ca服务器去验证
  5. 服务器验证通过后即登录成功(服务器端会进行本服务器的免密码登录,将用户信息和权限信息初始化到session中)
  6. 客户端定位到登录成功的页面或显示登录错误信息
  7. 如果应用需要高级浏览器,那么可以在IE进行CA登录成功后,使用360浏览器的极速内核打开目标页面(比如门户),如果CA登录失败,则在IE中显示错误信息

实现分2个主要步骤:

# 实现个性化登录页面和前端逻辑

总体思路是:

  1. 扩展登录页面模版扩展点,实现一个新的登录页面,并附带前端登录页面逻辑。
  2. 在系统设置的登录页面设置中,选择扩展提供的模版。

# 实现后端逻辑

总体思路是:

  1. 扩展sso扩展点,实现一个新的SSOProvider类,接受passport的登录方式。
  2. 在系统设置的单点登录设置中,选择扩展提供的新的单点登录方式。
是否有帮助?
0条评论
评论