BAM访问控制平台

1 产品定位

1.1. 产品定位
竹云访问控制产品平台(Bamboocloud Access Manager,BAM)建立企业应用系统的统一认证和访问控制能力。产品以企业用户、应用系统整合为目标,实现统一认证、统一授权和访问控制,同时集成强身份认证、会话审计、集中管理功能的一体化。可对企业内部用户应用访问、管理员维护等各类操作进行访问控制。本平台提供了用户名口令、手机OTP、数字证书、短信、动态令牌等多种认证方式,支持包括SAML、OAuth等众多安全认证协议。统一认证平台能极大减少用户在身份认证环节的时间成本,简化登录过程。结合统一的身份管理系统,统一的用户权限管理,统一的安全策略,提升身份认证的过程的标准化和安全性、可靠性。集中式的身份和权限管理方式,能实现用户身份数据的实时同步,减少用户认证系统的维护成本。同时平台提供各类认证方式的插入式认证模块PAM (Pluggable Authentication Module),建立一套融合认证框架,实现认证服务即插即用及一键赋能。产品提供统一的认证引擎配置(包括生物认证及非生物认证方式),通过配置模板的方式提供多因素、多生物识别融合等强身份认证,同时产品可根据不同的业务场景提供可配置的交叉组合认证服务,实现不同应用、不同安全等级、不同认证组合因子的安全入口管理,从技术和管理层面彻底解决组织用户身份标识不一致、不安全等问题,全面加强用户身份识别过程的安全,为组织在信息化过程中面临的认证问题提供全面可靠的平台级解决方案,为组织数字化转型奠定坚实的安全基础,整体提升组织信息安全体系的防护能力。
1.2. 名词术语
PAM(Pluggable Authentication Module):插拔式认证,认证方式即插即用。
生物认证:通过计算机利用人体所固有的生理特征或行为特征来进行个人身份鉴定,如人脸、声纹、虹膜、指纹、指脉等方式。
社交认证:部分Web、App等应用使用QQ、微信等第三方社交平台进行授权登录。
E账通App:与E账通融合认证服务配套的认证介质,以手机为载体,利用手机自带的认证能力(指纹、人脸),采集用户的生物认证信息、认证凭据与PC端应用进行交互,管理个人会话、个人信息等的手机应用。
E账通SDK:对所有认证方式的认证过程、生物信息维护过程进行抽象化,并以适配的形式与各种生物厂商进行对接。最终打包成SDK工具包,以API调用的方式向外部提供接口。
设备指纹:标识设备的唯一识别码。
BIM:竹云面向企业的统一身份管理系统,即Bamboocloud Identity Manager。
BAM:竹云面向企业的统一访问控制系统,即Bamboocloud Access Manager。
用户:所有自然人在BIM中都对应一个用户。BIM中也允许虚拟用户存在。所有用户都有唯一的用户名。
组织机构:用户的基本属性之一,标识用户的隶属关系。
组织机构树:组织机构以树形形式组成一棵树就是组织机构树,支持多棵机构树。
应用系统:与BIM集成的应用系统,比如HR系统,OA系统等。
账号:每个接入BIM平台的应用系统,都对应一个应用账号。 支持一个用户对应多个账号,也支持多个用户对应一个账号。
应用机构:应用系统中的组织机构,支持与系统的机构对应,也支持单独维护。
平台权限:用户在BIM系统中的权限,包含菜单权限,数据权限等。
国密算法:国密算法包含SM1(对称加密,一般使用硬件实现),SM2(非对称加密,基于椭圆曲线), SM3(杂凑算法),SM4(对称加密算法)。
2. 产品研发背景
随着国家信息化战略的大力推进,信息化已成为组织数字化转型的助推剂,业务运转对信息系统的依赖程度不断增强,业务系统的数量在不断的增加,老的系统却不能轻易的替换,带来很大开销,其一是管理上的开销,需要维护的系统越来越多,很多系统的数据是相互冗余和重复的,数据的不一致性会给管理工作带来很大的压力,业务和业务之间的相关性也越来越大,例如公司的计费系统和财务系统,财务系统和人事系统之间都不可避免的有着密切的关系。为了降低管理的消耗,最大限度的重用已有投资的系统,很多企业都在推进企业应用集成(EAI)。企业应用集成可以在不同层面上进行,例如在数据存储层面上的“数据大集中”,在传输层面上的“通用数据交换平台”,在应用层面上的“业务流程整合”和用户界面上的“通用企业门户”等等,除此之外,还有一个层面上的集成变得越来越重要,那就是“身份认证”的整合。通常来说,每个单独的系统都会有自己的安全体系和身份认证系统,整合以前,进入每个系统都需要进行登录,这样不仅给管理上带来了很大的困难,在安全方面也埋下了重大的隐患,具体存在的问题与需求如下:
1) 随着组织信息化建设的发展以及各种应用服务的迅速普及,网络边界不断扩延。组织在不同时期建设各类系统,各系统均独自为政,各应用和服务均具备自己的认证体系,存在重复建设、安全性较低等问题,同时一些好的认证设计和经验被封闭在应用里,不能被其它业务系统借鉴,造成项目资源浪费及管理成本过高;
2) 简单密码、弱密码及单一认证访问方式,导致业务系统很容易被攻击和获取访问权限;应用系统缺乏强认证及可信身份认证,企业敏感及机密数据容易被盗取和篡改,导致数据泄露和经营风险增加;同时用户需记忆众多不同账号和密码,重复进行应用认证和访问,用户满意度不高、体验差;
3) 部分组织已建立人脸识别、指纹识别、数字证书等认证体系,但认证体系相对独立,存在认证接口标准不一致、数据共享交换难、信息集成难等问题,导致后续维护成本较高,不利于统一访问安全控制,同时认证方式不易扩展,甚至不能扩展。大多数系统的认证服务都是作为基础模块建设,扩展性较差,若需对接更多的认证源,需对底层代码进行改动,存在很大的生产经营风险;
4) 组织多数系统均采用静态密码认证,认证方式较单一,而密码认证属于安全级别较低的认证方式,它取决于保存该密码应用的加密以及保存方式,容易导致数据泄露,存在极大的安全风险;
5) 近年来生物特征识别技术作为新的身份认证方式引发了政府、金融等行业的广泛应用。但生物识别算法厂商相互独立,组织缺乏一个集中的平台实现对多种生物识别技术的整合、管理及配置。各应用均独立集成,导致组织后续接口维护成本较大。
竹云访问控制平台是竹云多年信息安全技术和行业经验积累所形成的新一代身份认证与资源整合产品,全部功能自主研发,具有完全的自主知识产权。

3. 产品概述
3.1. 系统架构
 

图 1 系统架构示意图
竹云访问控制平台的目的是解决用户访问内部各应用系统的统一认证与单点登录,保证应用系统的安全性,同时实现单点登录功能,给使用者以良好体验。统一认证管理平台能够根据各域的安全级别要求,以及不同应用系统的安全等级,定义不同的认证方式。
竹云访问控制平台包括以下逻辑组件:
统一认证展示层——包括IDP、SP管理和认证审计,为访问应用提供统一的实现单点登录和单点退出的界面,兼容多种认证方式,提供包括用户名/密码、证书和其他强认证入口。同时,提供自服务界面,如密码修改、密码重置、个人资料修改等服务,其中,密码修改、密码重置和个人资料修改将通过调用BIAM的接口实现。认证审计包括对统一身份认证系统各服务的运行状态进行监控,用户和账号管理统计和认证服务统计。服务运行状态监控包括数据同步服务、数据库服务、LDAP服务、身份管理服务、数据分发服务和认证等服务的统一监控。
统一认证核心控制层——为应用访问提供认证和授权控制,包含统一登录、统一登出、会话共享。认证服务包含多种认证方式(口令认证、证书认证、动态令牌认证、指纹认证、短信认证)、认证策略管理组件(可配置用户的认证策略,包括认证请求IP的黑白名单管理,认证的负载均衡策略,基于地理位置的认证中心选择,心跳检测等技术)和认证链。通过统一认证平台认证并授权的用户,可在统一身份认证平台中通过单点登录的方式访问应用。
统一认证接口层——为应用和统一认证管理平台的集成提供接口,包含OAuth、SAML认证接口和TS元数据接口。
统一认证数据流转层——包含kafka消息中间件、zookeeper协调服务和Flume日志采集工具。
应用层——为应用接入统一认证管理平台提供多种集成方式,包含OAuth认证接口、SAML认证接口和SAML SDK集成。
3.2. 关键技术
融合认证框架:提供融合认证、认证调度、多因素认证、多步骤认证等认证能力的技术框架。
竹云访问控制平台系统的主要技术说明:
支持主流的数据库;
支持国际化(多语言);
安全身份认证服务。提供口令认证、证书认证、动态令牌认证、指纹认证、短信认证等多种认证方式;
应用系统的安全单点登录。通过统一身份认证平台认证并授权的用户,可在统一身份认证平台中通过单点登录的方式访问应用;
认证策略配置。可以配置用户的认证策略,包括认证请求IP的黑白名单管理,认证的负载均衡策略,基于地理位置的认证中心选择,心跳检测等技术,支持登录认证的高可用,高并发特性;
访问审计。记录系统范围内的安全和系统审计信息,有效地分析整个系统的日常操作与安全事件数据;
支持用户账号的批量导入、导出、修改、绑定等操作;
集成方式多样化,支持SAML、OAuth2.0、OIDC、CAS等多种协议版本;简化认证组件,便于实施部署;支持多种接入方式,支持SAML和OAuth的SDK、RESTful认证集成;
支持统一身份认证系统各服务的运行状态进行监控。用户和账号管理统计和认证服务统计。其中服务运行状态监控包括数据同步服务、数据库服务、LDAP服务、身份管理服务、数据分发服务和认证服务等的统一监控。 
3.3. 产品运行环境
采用标准的J2EE体系构建,部署并运行于标准的Java Web应用环境,并采用动态缓存技术,实现高可用集群架构。支持虚拟机部署;支持Windows、Linux和Unix等64位的系统平台;支持云平台部署;支持docker容器部署;使用JDK 1.6 x64及以上版本Java虚拟机;支持MySQL、Oracle、DB2等主流数据库;支持使用Tomcat、WebLogic、WebSphere等应用服务器。
3.4. 产品特性
统一访问控制平台主要特性如下:
1) 融合认证服务:支持多种认证方式,并可于E帐通产品整合,实现PC端和移动端的交互认证;
基础认证:密码、短信、OTP、二维码、手势、推送
生物认证:人脸、声纹、指纹、掌静脉、虹膜
社交认证:QQ、微信、钉钉
2) 认证调度:可灵活自定义认证链路、认证方式、认证执行顺序、认证策略、应用认证等级等调度场景;
3) 安全等级配置:针对不同类型,不同密级应用可灵活设置认证方式,为应用提供融合认证服务;
4) 会话管理服务:产品提供全栈、可视化的全生命周期会话管理机制,针对用户、应用、认证方式、设备类型等提供完整的会话管理及监控机制;
5) 风险等级配置:与竹云风险引擎产品融合,可对用户访问元数据(时间、位置、网络、行为、账号、习惯)进行全面评估,提供持久化风险监控能力,实现智能场景认证;
6) 组件化配置:核心代码Core JAVA,完全组件化模式,轻松部署;
7) 标准化接口:提供完整的管理REST API接口,可轻松进行业务流程再造,并提供多种认证方式选择,支持供标准化的集成场景;
8) 多类型接口提供:提供丰富的标准产品接口,轻松配置,即插即用;
9) 可配置化管理:提供灵活的多认证方法支持配置,轻松配置,开发简单;
3.5. 产品安全
平台自身需要保证高强度的安全性,包括:
平台保证模块的独立性和模块之间数据通信的安全性。
平台的启停不影响其它子系统,从而保证了各模块的独立性。
平台通信采用标准协议,平台自身各组件之间采用私有协议通信,并根据环境需要采用SSL加密通信
支持自定义认证密码传输加密规则,支持DES对称加密、MD5加密、国密算法加密。
4. 产品优势
竹云访问控制产品除了支撑企业自身业务发展的形势和信息化建设的要求外,还可以帮助企业业务及信息系统提供强有力的支撑,其产品优势主要体现在以下方面:
4.1. 集成性
功能集成。支持SDK和RESTful的集成方式。将认证的业务独立出来,保证了应用系统无侵入性集成和快速集成的能力;
产品设计从国家政策法规、标准规范、行业特色等多个层面出发,融入了多年专业经验和多个大规模项目实施经验, 能够有效地满足不同用户的个性化需求。
4.2. 开放性
面向应用的开放性。SAML 和OAuth 的RESTful接口简化了应用集成的复杂度;
支持RESTFul、SDK、代理等多种集成方式,便于应用快速对接。
4.3. 扩展性
自定义接口扩展。随着业务范围的扩展,会有新的业务内容需要处理。竹云访问控制平台支持扩展新的接口满足业务需求,保证系统的灵活性;
平滑扩容能力。在企业不断地发展壮大过程中,业务量处理的需求也越来越大。基于先进的体系架构, 竹云访问控制平台从架构上保证了这种计算能力的扩展性。通过统一集中管理用户的会话,保证了各个系统间的无状态特性。
4.4. 安全性
  支持多访问控制方式和细粒度访问授权
  支持认证策略的配置
  基于认证链的二次拦截机制
  记录系统范围内的安全和系统审计信息,有效地分析整个系统的日常操作与安全事件数据,通过归类、合并、关联、优化、直观呈现等方法,使管理员轻松识别应用系统环境中潜在的恶意威胁活动,可帮助用户明显地降低受到来自外界和内部的恶意侵袭的风险。
4.5. 其他特性
健全的应用权限访问控制策略配置,减少信息泄露和加强隐私保护;
统一访问管理建设,提升整体信息化安全水平;
统一访问管理建设,控制经营成本与投入;
快速帮助企业有效执行合规要求;
大幅改善应用系统用户体验,提升企业用户满意度。
5. 产品功能介绍
 
图 2 主要功能介绍
平台主要包括访问管理、认证管理、单点登录、认证集成模式和系统管理等模块。
访问管理:提供统一访问策略及多种访问控制功能,包括访问准入、访问锁定、访问禁用及来源过滤访问等;
认证管理:提供多种安全认证包括静态口令、动态密码、强认证、生物认证支持等多种方式;
单点登录:提供多种单点登录包括B/S单点、社交单点、跨域单点、联邦认证及桌面单点等多种方式;
认证集成模式:提供各种异构应用的认证集成包括标准产品集成、自开发应用集成、无法改造应用集成接入等多种模式;
系统管理:提供可视化配置管理功能包括内置认证模块配置、扩展配置以及安全管理和访问监控等功能。
5.1. 访问管理
平台提供集中统一访问管理功能,针对应用系统和用户进行统一访问方式、访问准入、访问控制等多种管理方式。
访问策略:平台管理员通过平台制定和发布应用访问策略,包括访问对象、访问权限、访问规则匹配及访问有效期限等。
访问授权:针对应用访问,通过对用户进行准入授权,实现应用的大门级访问授权和使用。 
授权流程集成:结合竹云BIM(身份管理产品)的流程审批功能模块,实现用户自助授权申请、审批功能。
访问锁定:用户进行认证的次数超过额定限制,平台将自动进行用户访问锁定,其额定次数可通过访问策略进行设置。
访问禁用:用户进行非法认证或恶意攻击时,平台将自动进行访问禁用,其禁用期限可实现临时或永久等多种设定。
访问控制:提供基于IP、MAC地址、用户名、访问时间段、主机名等多种访问控制方式。
5.2. 认证管理
平台提供集中统一的认证管理功能,帮助企业实现可信身份认证,提升信息安全,降低经营风险。
认证配置:提供认证方式、认证策略、认证频率等可视化配置功能。
认证路由管理:针对跨区域业务系统认证,通过认证路由寻址和校验,实现快速的区域化本地认证。
自定义认证链:安全等级即通过自定义认证链,实现多种认证方式自由组合,供应用选择。不同组织可根据自身需求,灵活定制安全策略。
增强认证支持:在使用密码等传统认证方式之后,可补充使用生物认证等认证方式,来确认使用者身份。
用户名认证:支持常用用户名称、邮件地址、手机号码、员工工号等属性、署名认证方式。 
别名认证:支持用户名主认证方式下,采用别名认证,实现多种不同的认证登录。
生物认证集成:平台提供安全认证生态圈,提供各种生物认证方式接入包括人脸、指纹、指静脉、声纹和虹膜识别等。
其它认证:提供其它认证方式接入,包括动态口令、CA凭证、IC卡等认证方式。
5.3. 单点登录
平台提供各业务系统间的相互认证信任,实现用户访问应用时的直接访问使用。
WEB单点:针对B/S应用,基于浏览器Cookie,实现应用间直接访问的单点功能。
跨域单点:企业存在多个应用域的业务场景下,实现跨域信任和单点,方便应用处于不域名下的直接访问单点。
联邦单点:企业存在并购企业或第三方合作机构,采取联邦单点,实现独立用户体系的信任和应用间的访问使用。
社交单点:基于QQ、微信、微博等第三方社交平台,可通过与平台进行单点集成,实现社交平台的访问认证和单点登录。
桌面单点:基于Window Activity Directory客户端,通过与平台集成,实现桌面的前置集中访问和认证单点。
会话管理:认证产生的Cookie,其会话有效性和周期进行监控和设置,其中支持多个会话的分段保存和统一管理。
票据管理:针对认证过程中的Token进行统一发布、继承、回收,实现票据的集中管理。
5.4. 认证集成模式
平台提供一系列认证集成模式,涵盖各不同复杂异构应用,方便应用快速接入。
SDK模式:提供标准SAML、OAuth、WS-Federation等安全协议的SDK模式接入。
标准代理模式:采用标准Web拦截模式,拦截所有到应用系统的请求,并查询用户是否具有访问权限。
中间件代理模式:采用独立的应用服务器上部署,拦截相应的请求,并根据应用服务容器的J2EE标准安全框架进行相应信息返回。
代填模式:针对无法改造的应用系统,采用以FORM表单方式提交进行登录访问,实现统一认证,且登录页面无activeX控件、无校验码。
5.5. 审计管理
平台集中记录任何权限变更及变更轨迹(变更前后数据变化、变更来源、变更引发的后续处理等)供审计追踪,结合合规规则支持作权限的合规检查及合规审计。
认证日志:产品提供的认证日志,包括认证日志及错误,策略日志及错误和SAML2日志及错误。
访问日志:产品提供用户访问应用系统的日志,日志中记录了什么人在什么时间、采用何种SSO方式访问了哪个应用系统。
同时平台还具备以下审计特性,对用户认证和访问控制中的关键流程、操作进行审计:
审计覆盖到访问控制的每个环节;
审计记录应用系统重要的安全相关事件,包括重要用户行为、系统资源的异常使用、授权操作、重要系统功能的执行轨迹等;
相关事件的记录应包括日期和时间、类型、主体标识、客体标识、事件的结果等;
建立综合展示视图,将审计信息进行集中展现和展示,根据记录数据进行分析,可生成审计报表,并对特定事件,提供指定方式的报警;
单独设置安全审计管理员角色,使其与管理权限完全独立;
对管理员实现基于角色的最小化授权,不同的管理员只能查询到自己管辖的应用系统范围的日志访问信息;
在审计日志记录上,有日志按照标准结构化数据记录,便于审计。
5.6. 系统管理
平台提供可视化配置,模块配置、系统监控等功能,方便平台管理员进行统一管理和维护。
模块化配置:提供模块化架构配置,易于使用通用API、Lib库、UI,开发者可快速进行定制开发与交付。
扩展化配置:提供扩展化框架配置,如添加自定义的认证模块、联邦认证插件、策略条件等。
认证模块管理:内置18种认证模块,可定制添加新的认证模块,支持OAuth2.0等第三方账户登录认证。
访问监控管理:支持JMX、SNMP、Web页面的监控,通过HTTP检查访问认证服务是否存活。
安全管理:提供平台及应用系统的数据安全、接口安全、交互安全等管理方式和技术手段。
6. 产品实施
6.1. 集成流程
应用系统集成的主要内容为实现应用的认证和单点登录,在用户管理集成的基础上,统一访问控制平台提供统一的认证和单点登录服务。根据应用系统的类别,统一身份管理系统为应用系统提供以下几种模式:
协议模式
协议模式提供了对多种认证协议的支持,例如SAML协议、OAuth协议,针对不同语言开发的应用以及不同的应用场景需要选择相对应版本的协议封装包进行集成,以简化应用的开发。该模式适用于应用场景较为复杂或者开发力量较强的应用。
SDK接口模式:
SDK模式通过统一的基于URI的REST接口为应用提供账号和认证服务。REST的架构极大的简化了应用和统一访问控制之间的交互流程,降低了应用和平台之间的耦合性,使得代码易于重用和维护。适用于可改造的需要快速接入的应用系统。
Agent模式
Agent模式通过在应用服务器或者web服务器上安装插件来实现统一认证与单点登录。在统一认证通过之后Agent会识别认证票据并将应用需要的字段和信息传递给应用。该模式适用于标准商业应用以及开发力量相对薄弱的应用。
代填模式
代填模式通过密码代填实现统一认证和单点登录。应用无需改造任何代码,但是在修改了应用密码之后用户需要手动更新代填应用的密码。这种模式适用于遗留应用或者无法进行改造的应用。代填模式支持Form表单代填,C/S应用代填等等。
6.2. 产品典型部署
平台采用组件方式进行部署,分为IDP组件、TS组件,均可方便快捷的进行横向扩展,同时
平台采用多种高性能组件,基于以下组件可满足互联网级别的处理能力需求:
  • 高性能缓存数据库redis,支持集群模式;
  • 分布式应用程序协调服务zookeeper;
  • 底层数据库可选用mysql、oracle等主流数据库;
  • 中间件可选用tomcat、weblogic等主流中间件服务器;