企业移动门户-基础组件

企业移动门户基础组件: 安全接入网关,统一用户中心,单点登录

企业移动门户介绍

伴随着移动互联网的普及,越来越多的公司开始建设自身的移动门户,以满足员工通过移动网络,移动终端办公的需要,即移动门户逐渐浮出水面.

任何一个移动门户都会面临几个常见的通用的挑战:

  • 网络访问安全: 传统部署在企业内网的应用逐渐以各种方式暴露在云端
  • 统一身份认证/单点登录: 门户承担的是企业各种应用的一个载体或者叫容器,这个容器里运行着各种各样的应用。基本每一个应用都会需要身份认证。那么单点登录对提升用户体验来讲尤为重要,用户只需登录门户应用一次,运行在门户里的各个应用无需登录.

所以,引入了如下几个基础组件:

  • 安全接入网关
  • 统一用户中心
  • 单点登录

安全接入网关

作为移动端所有应用接入的统一入口,我们可以在安全网关上进行:

  • 通信链路安全,加密
  • 访问频率限制
  • 路由,负载均衡
  • 和SSO集成,给接入的所有应用颁发Token

统一用户中心

因为各种各样的原因,企业内常见的用户体系按照技术大致分为:

  • Active Directory: 微软提供,通常绑定企业的Windows域或者Exchange等服务
  • LDAP: 大多都是拿OpenLDAP堆的
  • RDBMS: 各式各样的关系型数据库
  • 每个应用自己的用户中心: 每个应用自成体系,无法和别的应用共享用户数据

更为混乱的是,企业往往同时存在多个不同类型的用户体系,常见场景比如:

  1. Active Directory: 存登录名,邮箱地址,以及用户密码. 身份认证的唯一来源
  2. HR系统中的某个数据库存用户的其他信息,比如手机号码,家庭住址等
  3. HR系统中的某个数据库存企业的组织结构,以及用户和组织结构的关联关系
  4. 某OA系统自己的数据库里再来一套用户信息

另,更为混乱的场景比如, 同一个员工张三,

  • 张三在Active Directory中的用户名叫zhangsan, 密码123456
  • 张三在HR系统中的用户名叫sanzhang, 密码56789
  • 这些张三享有共同的员工工号

当一个新员工张三入职的时候,IT管理员通常:

  1. 在Active Direcotry中生成张三
  2. 发邮件给HR, HR系统负责人在HR系统中添加张三
  3. OA系统负责人在OA中添加张三
  4. 其他系统依次添加

每个业务系统重复同样的轮子:

  • 登录逻辑:有的系统支持扫码登录,有的不支持。有的支持用手机号码登录,有的只能通过邮箱登录
  • 密码策略:不同系统的密码策略不同
  • 登录审计日志:基本没有
  • 权限:不同的系统需要实现不同的权限模型

为了解决上述的种种问题,我们需要一个并且只需要一个统一的用户中心,通常是一个成熟的5A系统:

  • Accounting
  • Authentication
  • Authorization
  • Audit
  • Application(这个是传统4A系统没有的,Application是伴随着移动互联网的发达逐渐引入的应用管理模块)

企业内的其他应用应该围绕着这个用户中心进行相关改造和集成,以达到统一的用户体验.

单点登录

有了上述的统一用户中心,那么单点登录就显得水到渠成. 企业内的应用都不应该再关心登录流程的细节,只需要集成单点登录系统,即可完成统一的登录逻辑.

有了统一的登录入口,我们可以在单点登录系统上做很多事情,比如:

  • 更安全的登录方式: 登录校验证书,登录过程不传递明文密码,登录过程校验USB Key等等
  • 更多登录方式: 可以用邮箱登录,也可以用手机号登录,也可以用用户名登录等。可以扫码扫脸登录,可以指纹登录…
  • 多因子认证
  • 一次性临时密码登录
  • 统一登录审计日志:哪个用户在什么时间登录哪个应用,都可以查到
  • 告警监控: 登录失败告警,异地登录告警等

设想架构

  1. Mobile -> App 1 Client -> Gateway -> SSO Login -> App 1 Server
  2. Mobile -> App 2 Client -> Gateway -> SSO 颁发token(不需要再次登录) -> App 2 Server
  3. Mobile -> App n Client -> Gateway -> SSO 颁发token(不需要再次登录) -> App n Server
Tags:sso   Tags:gateway
Written on March 1, 2018