用户统一密码管理校验服务说明

1 背景说明

目前大多数企业尤其是集团性企业已经构建了一定的信息化系统,但伴随信息系统越建越多,账户体系紊乱、用户不统一、体系不统一的弊端越来越明显。当前企业亟需解决全集团内部的“统一认证”、“统一账户”、“统一权限”、“统一审计”的4A管控。以集团全面管控为中心,建立全集团的账户管理体系、认证管理体系、权限管控体系,通过用户规范化、信息标准化、服务个性化、管理数字化、运营平台化、经营一体化,实现集团运营协同能力,支撑数字管控能力。

本文是在集团统一管控过程中实现统一认证管理及统一密码初始化的服务说明,为后续项目及产品涵盖提供参考和借鉴。

2 预期读者

  1. 数通畅联全体成员
  2. IT相关行业工作者

3 总体说明

统一认证管控实现支持以包含用户工号、手机、邮箱、用户ID(项目特色为汉语拼音用户)及密码(加密后)为传输传递后判断用户是否认证成功,并返回响应的结果信息。密码初始化实现可根据用户群组(GRP_TYPE)、指定用户方式为用户以短息、微信的方式发送用户初始化密码(密码为4位数字及4位字母组合而成的随机密码),满足用户初始化密码的安全管控。

3.1 应用场景

  • 统一认证
  1. 在第三方业务系统调用用户登录校验时,通常应用与客户端、手机端等层面;
  2. 第三方业务系统不能支持Oauth认证或不能支持CAS认证改造时,满足客户需要统一认证时;
  3. 用户不想强行调整第三方系统认证协议,保留原系统认证界面后台服务由IDM统一提供时。
  • 密码初始化
  1. 用户批量初始化,发送用户初始化密码时;
  2. 用户新增在IDM中创建账号时;
  3. 管理员手动在IDM平台创建账号时。

3.2 安全校验

本次说明两类服务均为通过ESB快速开发,当前服务安全策略为指定IP地址可以访问,业务系统的服务器调用过程中需要将其服务器IP地址在平台下进行注册,绑定对应的应用系统,实现指定IP响应的安全权限校验。

3.3 技术要点

统一认证:Redis缓存的放入与取出;用户初始化登录校验Key值的返回;

密码初始化:手机短信发送的方式;邮件参数的构建;

4 服务说明

下面分别针对统一身份认证接口及初始化密码服务进行说明,详细流程及参数如下:

4.1 身份认证

4.1.1 接口用途

在业务系统认证的过程中,业务系统采用IDM统一身份管理平台用户中心进行统一认证,业务系统不存储密码信息,将用户的登录账号及密文的密码作为入参传入接口,根据接口返回值识别用户登录是否成功。实现支持以包含用户工号、手机、邮箱、用户ID(项目特色为汉语拼音用户)及密码(加密后)为传输传递后判断用户是否认证成功,并返回响应的结果信息。

4.1.2 调用地址

统一身份调用地址如下:

http://18.0.16.210:9090/EaiSystFuse/services/IdmUserAuth?_wadl

包含服务方法如下:

用户统一密码管理校验服务说明_第1张图片

4.1.3 服务说明

服务整体流程如下:

用户统一密码管理校验服务说明_第2张图片

流程说明

  1. 获取redisHosts:获取在全局变量配置的redis地址,用于后续初始化redis;
  2. 缓存查询数据:在redis用获取用户的信息,传入的密码为明文密码以“12345678”进行加密的数据,redis中存储的为加密“12345678”的密码;
  3. Forker1:判断redis中是否存在,存在则返回成功,不存在则查询数据库;
  4. 查询数据:根据传递的入参查询数据库中是否存在该用户,传递的可以可能为工号、手机号及邮箱;
  5. 判断查询结果:判断查询结果是否存在,进行校验密码是否正确;
  6. Forker2:根据判断用户结果,失败直接返回fail;存在则放入redis中;
  7. set转array:将查询的出的Set信息转换为通用协议JsonArray;
  8. 构建返回array:构建接口返回值用户数据JsonArray;
  9. Forker3:判断是否第一次登录时间为空;
  10. 更新首次登陆时间:更新用户首次登录时间;
  11. Joiner3:合并节点
  12. 用户放入Redis中:用户放入redis中,key为IDM.Employee.UserCode+userCode,value为pwd,加密key为“12345678”;
  13. 构建返回参数:返回成功结果;
  14. 构建密码有误:密码错误返回构建信息;
  15. Joiner2:合并节点;
  16. Joiner1:合并节点;
  17. 返回值映射:映射返回值。

4.1.4 调用方式

调用方式:POST

用户统一密码管理校验服务说明_第3张图片

4.1.5 数据字典

入参:

用户统一密码管理校验服务说明_第4张图片

出参:

用户统一密码管理校验服务说明_第5张图片

epmInfo说明

用户统一密码管理校验服务说明_第6张图片

4.1.6 调用样例

入参:

用户统一密码管理校验服务说明_第7张图片

出参:

用户统一密码管理校验服务说明_第8张图片

4.2 初始化密码

4.2.1 接口用途

用户初始化密码统一初始化为随机流水码,包含4位数字及4为字母,共计8位,以邮箱的方式通知用户初始密码,用户首次登陆必须修改密码,进行二次登录。实现可根据用户群组(GRP_TYPE)、指定用户方式为用户以短息、微信的方式发送用户初始化密码(密码为4位数字及4位字母组合而成的随机密码),满足用户初始化密码的安全管控。

4.2.2 调用地址

密码初始化调用地址如下:

http://18.0.16.206:9090/EaiSystFuse/services/GenerEmpInitPwd?_wadl

包含服务方法如下:

用户统一密码管理校验服务说明_第9张图片

4.2.3 服务说明

服务整体流程如下:

用户统一密码管理校验服务说明_第10张图片

  1. 获取入参Json:获取接口传递参数;
  2. Json转Row:Json转换为Row,用户调用传递参数获取;
  3. 调用初始化密码流程:调用初始化密码生成流程;
  4. 映射结果集:返回结果集映射处理。

调用服务说明:

用户统一密码管理校验服务说明_第11张图片

  1. 提取用户code:提取用户入参中的用户code信息;
  2. Forker1:判断用户code是否为空,如果为空则走批量查询,如果不为空则为生成个人密码;
  3. 查询用户信息:查询指定用户信息;
  4. 查询批量用户信息:查询批量用户信息;
  5. Joiner1:合并节点;
  6. Index循环初始化:循环参数初始化;
  7. count初始化:循环count初始化;
  8. 构建随机密码:构建随机密码生成4为字母4为数字的随机密码;
  9. 获取入参Mail:获取入参mail参数,判断是否发送mail通知用户;
  10. 获取入参Tel:获取入参tel参数,判断是否发送手机短信通知用户初始化密码;
  11. Forker2:分支判断,如果mail为Y则邮件方式发送初始化密码,如果tel为Y则以手机短信发送用户密码;
  12. 邮件参数构建:邮件模板参数构建;
  13. 发送用户邮件密码:发送邮件给用户初始化密码;
  14. 短信参数封装:封装短信参数;
  15. 发送短信密码:发送短信密码;
  16. Joiner2:合并节点;
  17. 更新用户密码:更新用户初始化密码信息;
  18. Index++:Index递增
  19. 获取ErrorMsg:获取流程异常信息;
  20. 获取HasError:获取流程时候有异常参数;
  21. 拼接出参:拼接出参进行返回

4.2.4 调用方式

调用方式:POST

4.2.5 数据字典

入参:

用户统一密码管理校验服务说明_第12张图片

出参:

用户统一密码管理校验服务说明_第13张图片

4.2.6 调用样例

入参:

用户统一密码管理校验服务说明_第14张图片

出参:

用户统一密码管理校验服务说明_第15张图片

5 心得总结

5.1 全局考虑

在设计、开发过程中多模拟演练,从全局角度出发,模拟实际场景中可能涉及到应用的情况,在设计过程中多面考虑,开发过程中进一步完善落地,在测试过程中模拟实际场景进行反复测试,避免在与第三方联调过程中出现问题进而造成扯皮的情况。内部设计、开发、测试过程中多思考、多想、多模拟尽可能的涵盖实际业务的全面场景。

5.2 深度思考

机械重复是无意义的忙碌,勤奋指的是头脑的努力而不是身体的疲劳,单纯依赖身体的忙碌最终成为的是“人手”而不是企业所需要的“人才”。只有通过深度思考,学会刨根问底才能够找到最恰当的办法解决问题。问题之所以产生就一定有产生的原因,很多问题都是隐藏在表面现象之后,在工作过程中想要解决问题必须要深度思考,透过现象直击本质,在解决问题过程中深思考、多摸索、勤总结、时归纳,掌握问题的本质保证后续需要尽管表现不同的问题也能透过表现在本质上解决问题。

​​​​​​​5.3 总结提升

“博学之,审问之,慎思之,明辨之,笃行之”意思要是广博的学习,要对学问详细的询问,要慎重的思考,要明白的辨别,要切实的力行。总结问题的过程中多为自己疑问句,深度挖掘问题的本质,记录问题的解决方案后定期回顾。定期回顾是能力提升的重中之重,有积极的心态、清晰的思路、良好的沟通、快速学习的能力,但问题解决后不总结、不回顾会将前面付出的努力付之一炬。多总结,勤回顾,先固化,再优化,将问题变为知识点,由掌握知识点累计为知识面、知识链,有掌握知识到运用知识,由运用知识变成下意识。

你可能感兴趣的:(技术文档,信息化,IT架构,4A认证)