企业移动门户-基础组件
企业移动门户基础组件: 安全接入网关,统一用户中心,单点登录
企业移动门户介绍
伴随着移动互联网的普及,越来越多的公司开始建设自身的移动门户,以满足员工通过移动网络,移动终端办公的需要,即移动门户逐渐浮出水面.
任何一个移动门户都会面临几个常见的通用的挑战:
- 网络访问安全: 传统部署在企业内网的应用逐渐以各种方式暴露在云端
- 统一身份认证/单点登录: 门户承担的是企业各种应用的一个载体或者叫容器,这个容器里运行着各种各样的应用。基本每一个应用都会需要身份认证。那么单点登录对提升用户体验来讲尤为重要,用户只需登录门户应用一次,运行在门户里的各个应用无需登录.
所以,引入了如下几个基础组件:
- 安全接入网关
- 统一用户中心
- 单点登录
安全接入网关
作为移动端所有应用接入的统一入口,我们可以在安全网关上进行:
- 通信链路安全,加密
- 访问频率限制
- 路由,负载均衡
- 和SSO集成,给接入的所有应用颁发Token
统一用户中心
因为各种各样的原因,企业内常见的用户体系按照技术大致分为:
- Active Directory: 微软提供,通常绑定企业的Windows域或者Exchange等服务
- LDAP: 大多都是拿OpenLDAP堆的
- RDBMS: 各式各样的关系型数据库
- 每个应用自己的用户中心: 每个应用自成体系,无法和别的应用共享用户数据
更为混乱的是,企业往往同时存在多个不同类型的用户体系,常见场景比如:
- Active Directory: 存登录名,邮箱地址,以及用户密码. 身份认证的唯一来源
- HR系统中的某个数据库存用户的其他信息,比如手机号码,家庭住址等
- HR系统中的某个数据库存企业的组织结构,以及用户和组织结构的关联关系
- 某OA系统自己的数据库里再来一套用户信息
另,更为混乱的场景比如, 同一个员工张三,
- 张三在Active Directory中的用户名叫zhangsan, 密码123456
- 张三在HR系统中的用户名叫sanzhang, 密码56789
- 这些张三享有共同的员工工号
当一个新员工张三入职的时候,IT管理员通常:
- 在Active Direcotry中生成张三
- 发邮件给HR, HR系统负责人在HR系统中添加张三
- OA系统负责人在OA中添加张三
- 其他系统依次添加
每个业务系统重复同样的轮子:
- 登录逻辑:有的系统支持扫码登录,有的不支持。有的支持用手机号码登录,有的只能通过邮箱登录
- 密码策略:不同系统的密码策略不同
- 登录审计日志:基本没有
- 权限:不同的系统需要实现不同的权限模型
为了解决上述的种种问题,我们需要一个并且只需要一个统一的用户中心,通常是一个成熟的5A系统:
- Accounting
- Authentication
- Authorization
- Audit
- Application(这个是传统4A系统没有的,Application是伴随着移动互联网的发达逐渐引入的应用管理模块)
企业内的其他应用应该围绕着这个用户中心进行相关改造和集成,以达到统一的用户体验.
单点登录
有了上述的统一用户中心,那么单点登录就显得水到渠成. 企业内的应用都不应该再关心登录流程的细节,只需要集成单点登录系统,即可完成统一的登录逻辑.
有了统一的登录入口,我们可以在单点登录系统上做很多事情,比如:
- 更安全的登录方式: 登录校验证书,登录过程不传递明文密码,登录过程校验USB Key等等
- 更多登录方式: 可以用邮箱登录,也可以用手机号登录,也可以用用户名登录等。可以扫码扫脸登录,可以指纹登录…
- 多因子认证
- 一次性临时密码登录
- 统一登录审计日志:哪个用户在什么时间登录哪个应用,都可以查到
- 告警监控: 登录失败告警,异地登录告警等
设想架构
- Mobile -> App 1 Client -> Gateway -> SSO Login -> App 1 Server
- Mobile -> App 2 Client -> Gateway -> SSO 颁发token(不需要再次登录) -> App 2 Server
- Mobile -> App n Client -> Gateway -> SSO 颁发token(不需要再次登录) -> App n Server
Written on March 1, 2018