今天给大家分享一款开源的商用级别认证平台UNI-SOP,这块软件分为开源版本和专业版本,由于专业版涉及到一些代码授权问题,暂时未开源,不过,一般应用开源版本足够了。
先来看看系统管理平台界面,然后我们再来说说认证的流程和原理。
登录后的认证中心平台管理界面:
系统支持多平台多领域用户集管理,这个界面是平台的管理界面,能够增加平台、导出平台资源以及更新平台缓存等功能。
领域管理界面:
领域界面用来关联用户集的,每个平台需要关联一个领域,标识可以登录此平台的用户集。
平台资源管理界面:
平台管理页面主要用来管理关联的领域用户以及平台资源,平台资源包括客户端、菜单、角色、权限、地址、系统字典等,其把我们后台系统公共的资源集中进行管理,让业务平台更专注自己的业务逻辑处理,使得系统开发更高效和稳定。
用户资源的分配管理界面:
此页面展示了用户资源的分配,其不仅展示直接分配给用户的资源,还标注了间接分配给用户的资源信息,比较直观、方便。里面的功能还比较多,有时间的小伙伴可以下载源码自己部署进行摸索看看其他功能。
不过,上面这些页面是专业版的,开源版和这个有些差别。
除了在统一认证中心可以集中管理平台和用户资源外,我们还提供了前端开发脚手架,可以对单个平台完成自己资源的管理,比如下面这个系统是使用UNI-SOP前端脚手架开发的:
其中标红部分就是平台资源的管理,属于UNI-SOP脚手架的功能,此脚手架采用VUE3+Element Plus开发。下面开始说下认证的一些基本概念。
用户认证其实包括两部分:认证和授权。
认证就是验证用户的合法性,我们输入的用户名对应的用户是不是系统中合法的用户;授权顾名思义就是登录的用户有哪些可以访问的系统资源(也可以理解为权限,很多系统意思大概相近,在UNI-SOP中权限就是系统资源),在介绍UNI-SOP开源云平台认证系统之前,我们先来说下认证中的相关概念。
我们先简单看下下面的这张图:
上图包括了五大模块:用户、平台、认证、授权、平台中心。认证其实只和认证模块和用户模块有关,我们先来看看用户认证需要的几大要素:账号、认证信息和用户信息。
账号:用来唯一识别系统中的用户的基本信息,就是说通过账号信息,我们可以唯一找到系统中的用户信息,注意,这里是唯一,因为这里的用户是一个实体,所以,用户账号和用户信息具有一对一的关系。
认证信息:用来识别用户合法性的基本信息单位,因为找到了用户,不等于用户可以合法访问我们的系统,因此,需要验证用户的合法性,最常用的认证信息就是密码验证,移动领域手机验证码和微信授权登录也尝尝用来认证一个用户的合法性。
用户信息:保存系统中用户一系列信息的属性集合,比如用户姓名、性别、地址等等都可以是用户信息,因为用户是一个实体,所以用户一旦创建就拥有实体标识:用户ID,因此,用户ID和用户账号以及认证信息是一对多的关系,但是要注意,用户账号和用户ID必须是一对一关系。
用户认证完后就有了访问系统的基本条件,但是要访问我们的系统,还不够,需要登录的用户拥有对应的系统资源,这里就是平台模块要管的事情。
平台模块统一管理了平台信息以及平台所有的资源,比如菜单、角色、权限、地址等等都属于平台的资源,然后,我们把平台的某些资源分配给指定用户,这样用户就可以访问这些资源了,比如我们某些菜单分配给资源,再配合前端展示,用户登录前端系统就可以看到自己分配的菜单了,这就是目前前端系统采用的权限控制,其实,严格来讲,菜单并不等于系统的资源,因为系统资源的粒度会更细。
有了用户和平台,然后认证模块就可以使用用户模块提供的服务,完成用户的验证,然后生成用户的认证信息,比如访问令牌,登录超时控制等;授权模块利用平台模块提供的服务完成对用户资源的分配,平台中心利用其他四个模块,提供对外的综合服务功能,比如管理多个平台,多套用户集合,配合前端完成平台、用户的管理等操作,基本概念介绍完了,我们看下UNI-SOP的整体设计,下面是其整体设计结构图。
UNI-SOP一套完整的多平台、多用户集的统一认证系统,其除了基本的用户认证和权限系统外,还集中管理了多平台资源,每个平台在UNI-SOP中都是独立的,拥有的独立的资源;用户采用领域的概念来隔离不同的用户集。每一个领域中的用户都是独立的。
我们先简单分享到这里,后面再详细说下认证的流程,比如普通登录和单点登录,以及UNI-SOP中提供的功能。