在《登录的轮子,你还在造?》一篇中详细说明了其历史。如果你缺乏一些关于登录,认证,授权,鉴权等概念的基础知识,该文章也是科普性质,相信也能解决你的大部分疑惑。
这里,我主要来讲一讲,企业级单点登录在信息化建设中的地位与作用。
企业的困扰
如今,企业内部需要使用到的企业级应用越来越多,每个应用都需要账号密码,是带给每个员工最直接的困扰。为了安全起见,账号密码往往要求一段时间重置一次,更加剧了这种繁琐。如果公司员工每个人每天都在这件事情上损失5分钟,假设公司有100人,那一年累计下来超过125个工作日,相当于有一个人半年什么事情也没干。企业级应用数量增加,最困扰的是企业内的IT管理人员。每次入职离职的过程中,需要依次登录各种应用后台去开启或关闭相关的账号。如果因为一些特殊情况,正常流程被打断(这在人事管理中还是很常见的),出现遗漏,往往会导致意外发生。
以上这些问题最常见的使用企业级单点登录的理由,一个优秀管理者都能明确的观察到并有动力去尝试用单点登录的方案来解决这些问题。
除此之外呢?
我们在使用各种企业级应用的时候,往往会有这样的尴尬:同一份数据总是需要在不同系统中反复录入。比如财务与人事的系统是完全隔离的,最简单的核算人员成本这件事情,人员发生调整,不仅需要人事部门完成企业结构更新,财务也需要在其系统中去完成,同样的事情被做了两次。想进一步进行信息化的整合,做数据同步或者合并,就必须让两个系统中的人员结构都对应起来。
还有员工信息总是分散在各种不同的应用中,比如,员工在考勤应用里面的考勤记录,跟在人事应用中的基本工资,分属于两个应用。想进一步进行信息化的整合,要自动按照考勤计算出员工的工资,就必须分清楚两个应用里账号的对应关系。
上面的例子在说明,信息化系统本身是需要不断进化和完善的,这不仅仅是体验上的问题,更是信息化建设的初衷:更快更强。
想做到信息化本身的不断进化,一个非常必要的前提就是,所有的数据都有着明确的归属,这就要求身份必须统一。
企业的选择
信息化建设时,使用单点登录平台不仅仅必要,可以说这是整个信息化建设的基石之一。信息化建设不可能一蹴而就,再给之后信息化水平的提高做好铺垫,避免之后再来实施单点登录时,带来旧系统数据迁移和同步等麻烦的事情,尽快做好统一登录是非常必要的。企业在实施的时候,根据具体情况,可以选择商用产品或者开源产品。商业产品可能会提供除了账号密码以外更严格的登录方式,比如U盾,生物识别等。商用产品当然能够提供更稳定的服务,来协助企业。不差钱或者是有着更高的安全要求,推荐使用商业产品。
开源产品就有很多了,比如CAS(Central Authentication Service,中央认证服务),一种独立开放指令协议,耶鲁大学发起的一个开源项目。当然也有许多相关的协议的实现,可以去GitHub上去搜索SSO关键字,就能看到很多相关项目。
推荐使用名叫ArkID的开源项目,此项目是国内企业研发并维护,提供都是中文文档,常见的登陆相关协议基本都支持,比如LDAP,SMAL,OAuth2等。
企业在选择企业级应用时,总会有多重考虑,难免会出现各个应用使用不同登陆协议,选择一款支持多协议架构的产品是非常有必要。
必要的功能
作为一个企业级单点登录,除了兼容各种常见登录协议以外,管理账号这种基本的功能以外,还有哪些基础功能是必须的呢?1. 组织架构。
组织架构是一个应用之所以称之为企业级应用的基础,这个功能不仅仅是维护组织信息,更是在权限管理中作为重要的依据,企业级应用的权限总是跟部门信息直接挂钩的。
2. 账号同步。
这个功能是可以将另一个应用的账号数据导入到ArkID系统中并在之后的更改中保持一致,比如现在大部分企业使用钉钉作为办公通讯软件,钉钉内部是维护了完整的账户与组织信息,就可以将钉钉的数据与ArkID进行同步,之后只需要在ArkID中进行修改即可。
3. 账号分组。
组织架构本质上也是账号分组的一种。所以,在ArkID中,默认有三类分组:部门,角色,标签。你也可以新建自己的分组。每类分组都可以维护一套类似于组织结构的树状形态,以满足企业对账号管理的各种需求。
4. 应用权限管理。
控制每个账户是否能够登陆相应的应用,这是权限管理最基本的功能。与账号分组互相配合,我们可以配制出各种想要的权限组合。
ArkID在每个应用的权限配置中,都设置了账号的白名单与黑名单。如果在此设置了账号的权限,就视为该账号的最终权限,不管该账号在之后分组的情况。
同时也按照每类分组都设置了白名单与黑名单。判断一个人是否拥有该应用的权限,是根据其所在所有分组的集合,只要该用户所在任意一个分组拥有该应用的权限,该用户也就拥有该权限。
除了管理应用登陆权限外,ArkID也提供了管理应用内部权限的API,应用内权限的管理,就需要目标应用的配合才能完成。
5. 可定制登录界面。
每个企业都有不同的Logo和名称,一个可定制的登录界面应该是必不可少的。
6. 子管理员。
显然靠一个管理员来管理整个公司是不靠谱的,需要子管理员来协助工作。
7. 日志与审计。
这里记录了所有员工对各个应用的登录行为和管理员在ArkID中的所有操作。除了安全了考量,更重要的这是企业IT规范很重要的审计功能。