IDM身份管理系统为解决企业内部多系统之间的用户信息不一致而开发的,主要定位于解决企业在5A功能上的需求,即:Account账号管理、Authentication认证管理、Authorization授权管理、Audit审计管理、App Control应用管控5个方面的实际需求,进而规范用户身份信息,保证系统安全,提高工作效率。
随着计算机技术的不断发展与软件种类的不断增加,安全问题成为了人们需要面对的一个问题,尤其是计算机软件的安全问题更是直接影响着用户的体验和软件的持续开发与应用。本文主要针对现有IDM产品中预置的安全机制进行介绍说明。
1产品介绍
IDM身份管理平台满足对企业信息系统的统一用户管理、统一身份认证、统一授权管理以及安全审计的要求,能够实现各业务系统的统一登录和集中访问,实现用户身份和权限的统一认证与授权管理,为企业不同的业务系统提供统一的用户管理和认证服务。
1.1功能架构
IDM主要对组织、角色、人员进行管理,并对其所有的状态进行记录,如:初始化、审批中、已启用、已禁用等,账户统一管理可以实现从HR系统中获取组织用户数据,也可直接在IDM系统中录入数据,用户信息中的部分属性信息根据同步策略由HR系统或其它指定系统同步更新到用户目录,其它用户信息可在应用系统中各自进行维护,通过IDM统一用户信息后,发送到各个业务系统。
1.2系统架构
IDM主要是实现统一认证、授权、审计管理,提高企业身份认证及访问安全,建立授权流程审批机制,使用户身份信息、授权信息、审批信息等操作更加规范化、标准化,提高整体IT架构的风险防范能力。
消除企业系统间的信息孤岛,为各系统提供统一身份认证、用户身份管理服务,逐步实现系统身份系统的整合,构建面向用户的认证和授权服务,使业务操作更流畅。为简化IT运维提供强大的技术手段和标准,实现账户数据自动化同步操作,同时制定合规的安全服务规范,构建统一的、支撑企业级的认证授权安全服务基础设施。
1.3安全机制
1.数据加密:IDM平台对于平台内部数据库连接密码、用户登录密码以及应用认证密码等信息进行加密储存,即便是数据库被查看也不能获取密码信息,进而增强平台安全保障。
2.安全策略:IDM平台能够配置对应的安全策略,如:密码策略、防暴力破解、异时异地登录、二次认证等策略。策略能够设置安全提醒功能,当出现安全问题时平台能够根据策略为对应的用户(如:用户本人、管理员等)发送提示信息。
3.底层安全:IDM平台底层预置安全机制,涵盖全平台安全管控支持,包含对于XSS攻击机制的拦截;防止SQL注入攻击,避免在页面输入时注入SQL语句造成信息的篡改或泄露。
2密码加密
IDM统一身份管理平台对于平台内部数据库连接密码、用户登录密码以及应用认证密码等信息进行加密储存,即便是数据库被查看也不能获取密码信息,进而增强平台安全保障。
2.1登录页面
在IDM登录页面进行登录时,会将用户输入的密码进行加密后再传到后台,在后台进行解密。
2.2接口功能
在调用IDM平台接口时,会对一些敏感的入参和出参信息进行加密处理。
2.3加密储存
1.应用认证密码:IDM会对应用系统的密码进行密文处理。
2.用户登录密码:用户在设置登录密码时,IDM会先对密码进行加密处理,然后再存进数据库。
3.数据库连接密码:IDM在配置文件中涉及数据库操作连接密码的部分均为密文存储。
3安全策略
IDM统一身份管理平台能够配置对应的安全策略,如:密码策略、防暴力破解、异时异地登录、二次认证等策略。策略能够设置安全提醒功能,当出现安全问题时平台能够根据策略为对应的用户(如:用户本人、管理员等)发送提示信息。
3.1密码策略
在IDM平台配置密码策略,可以控制用户密码的强度以及密码的有效期,用户登录时,当密码不符合密码策略对应的规则时,可以强制用户修改密码后再进行登录。
1.密码策略配置页面:
2.策略实现效果:
3.2认证策略
在认证策略中可以配置防暴力破解、异时异地登录提醒、登录失败次数上限、锁定时间等信息。
1.认证策略配置页面:
2.实现效果:
3.3二次认证
IDM平台内置多种认证方式,可以在认证策略中进行配置:
1.拖拽图片:
2.选择指定内容:
3.指定算术题:
4.短信验证:
4安全防护
IDM统一身份管理平台底层预置安全机制,涵盖全平台安全管控支持,包含对于XSS攻击机制的拦截;防止SQL注入攻击,避免在页面输入时注入SQL语句造成信息的篡改或泄露。
4.1XSS拦截
XSS攻击通常指的是通过利用网页开发时留下的漏洞,通过巧妙的方法注入恶意指令代码到网页。当动态页面中插入的内容含有这些特殊字符(如<)时,用户浏览器会将其误认为是插入了HTML标签,当这些HTML标签引入了一段JavaScript脚本时,这些脚本程序就将会在用户浏览器中执行。所以,当这些特殊字符不能被动态页面检查或检查出现失误时,就将会产生XSS漏洞。
解决xss攻击是通过使用Filter拦截来解决,创建一个Filter类在web.xml配置拦截器,只要页面交互就走此XssRequestFilter类。
在web.xml配置如下:
1.配置Filter如下:
2.配置mapping如下:
4.2SQL注入
SQL注入是通过把模糊查询的$条件查询符号改成#号站位符方式,把条件直接变成入参方式拼写成对应的模糊查询sql。IDM产品中封装了入参类DataParam,所以在执行sql入参时都会经过此步骤,在DataParam中封装的过滤方法如下:
如果入参的类型中含有_like就会把入参格式拼写成"%" + value + "%"样式这样生成的sql就会是模糊查询格式。
Sqlmap中的书写格式如下:
4.3代码检测
IDM已通过代码重复性检测工具(pmd-bin-6.39.0)的检测,去除IDM中的冗余代码,提高系统安全性。(注:PMD是静态源代码分析器,它能够发现常见的编程缺陷,例如未使用的变量,空的catch块,不必要的对象创建等。)
检测过程:
检测结果:
5心得体会
在学习IDM身份管理平台的过程中,自己的技术能力及意识形态等多方面都得到了很大提升,并且有了很多感悟,现在将我在本工作中的收获总结如下。
5.1总结反思
通过对IDM产品的开发,大致了解了IDM每个模块的功能。但个人感觉对IDM产品的理解还不够,还有很多知识点需要学习。比如IDM认证相关的功能,和一些流程的操作等都是我需要学习的内容。以及自己对IDM使用场景的认知等都需要后续加强学习。
5.2学习方法
在工作过程中遇到问题或新的技能点的时候,要养成随手记录的习惯,在记录的过程中会逐渐捋清自己的逻辑。将文档分好类别整理出来,以便在后续工作中能够快速查找。通过不断地记录工作文档,可以提高逻辑思维能力,进而提升自己的技术能力和水平。
5.3产品理解
IDM身份管理平台满足企业信息系统的统一用户管理、统一身份认证、统一授权管理以及安全审计的要求,能够实现各业务系统的统一登录和集中访问,实现用户身份和权限的统一认证与授权管理,为企业各业务系统提供统一的用户管理及认证服务。
IDM能够迎合企业集团化统一管控需求,满足企业全面管理,解决企业信息孤岛问题,从安全、架构、管理、运维多层面进行整体规划、分布建设、实时同步、检查审计,在企业实现5A管控、集团统一管控、信息公司承建托管、分子公司管理的过程中落地实现人员、信息、流程的大集成,能为集团整合内部资源、推动战略执行、防范项目风险提供全面的数据支持。