开源UNI-SOP云统一认证平台

news2024/11/14 7:21:06

       今天给大家分享一款开源的商用级别认证平台UNI-SOP,这块软件分为开源版本和专业版本,由于专业版涉及到一些代码授权问题,暂时未开源,不过,一般应用开源版本足够了。

        先来看看系统管理平台界面,然后我们再来说说认证的流程和原理。

        登录后的认证中心平台管理界面:

        系统支持多平台多领域用户集管理,这个界面是平台的管理界面,能够增加平台、导出平台资源以及更新平台缓存等功能。

        领域管理界面:

        

        领域界面用来关联用户集的,每个平台需要关联一个领域,标识可以登录此平台的用户集。

        平台资源管理界面:

        平台管理页面主要用来管理关联的领域用户以及平台资源,平台资源包括客户端、菜单、角色、权限、地址、系统字典等,其把我们后台系统公共的资源集中进行管理,让业务平台更专注自己的业务逻辑处理,使得系统开发更高效和稳定。

        用户资源的分配管理界面:

        此页面展示了用户资源的分配,其不仅展示直接分配给用户的资源,还标注了间接分配给用户的资源信息,比较直观、方便。里面的功能还比较多,有时间的小伙伴可以下载源码自己部署进行摸索看看其他功能。

        不过,上面这些页面是专业版的,开源版和这个有些差别。

        除了在统一认证中心可以集中管理平台和用户资源外,我们还提供了前端开发脚手架,可以对单个平台完成自己资源的管理,比如下面这个系统是使用UNI-SOP前端脚手架开发的:

        

        其中标红部分就是平台资源的管理,属于UNI-SOP脚手架的功能,此脚手架采用VUE3+Element Plus开发。下面开始说下认证的一些基本概念。

        用户认证其实包括两部分:认证和授权

        认证就是验证用户的合法性,我们输入的用户名对应的用户是不是系统中合法的用户;授权顾名思义就是登录的用户有哪些可以访问的系统资源(也可以理解为权限,很多系统意思大概相近,在UNI-SOP中权限就是系统资源),在介绍UNI-SOP开源云平台认证系统之前,我们先来说下认证中的相关概念。

        我们先简单看下下面的这张图:

        

        上图包括了五大模块:用户、平台、认证、授权、平台中心。认证其实只和认证模块和用户模块有关,我们先来看看用户认证需要的几大要素:账号、认证信息和用户信息。

        账号:用来唯一识别系统中的用户的基本信息,就是说通过账号信息,我们可以唯一找到系统中的用户信息,注意,这里是唯一,因为这里的用户是一个实体,所以,用户账号和用户信息具有一对一的关系。

        认证信息:用来识别用户合法性的基本信息单位,因为找到了用户,不等于用户可以合法访问我们的系统,因此,需要验证用户的合法性,最常用的认证信息就是密码验证,移动领域手机验证码和微信授权登录也尝尝用来认证一个用户的合法性。

        用户信息:保存系统中用户一系列信息的属性集合,比如用户姓名、性别、地址等等都可以是用户信息,因为用户是一个实体,所以用户一旦创建就拥有实体标识:用户ID,因此,用户ID和用户账号以及认证信息是一对多的关系,但是要注意,用户账号和用户ID必须是一对一关系。

        用户认证完后就有了访问系统的基本条件,但是要访问我们的系统,还不够,需要登录的用户拥有对应的系统资源,这里就是平台模块要管的事情。

        平台模块统一管理了平台信息以及平台所有的资源,比如菜单、角色、权限、地址等等都属于平台的资源,然后,我们把平台的某些资源分配给指定用户,这样用户就可以访问这些资源了,比如我们某些菜单分配给资源,再配合前端展示,用户登录前端系统就可以看到自己分配的菜单了,这就是目前前端系统采用的权限控制,其实,严格来讲,菜单并不等于系统的资源,因为系统资源的粒度会更细。

        有了用户和平台,然后认证模块就可以使用用户模块提供的服务,完成用户的验证,然后生成用户的认证信息,比如访问令牌,登录超时控制等;授权模块利用平台模块提供的服务完成对用户资源的分配,平台中心利用其他四个模块,提供对外的综合服务功能,比如管理多个平台,多套用户集合,配合前端完成平台、用户的管理等操作,基本概念介绍完了,我们看下UNI-SOP的整体设计,下面是其整体设计结构图。

        UNI-SOP一套完整的多平台、多用户集的统一认证系统,其除了基本的用户认证和权限系统外,还集中管理了多平台资源,每个平台在UNI-SOP中都是独立的,拥有的独立的资源;用户采用领域的概念来隔离不同的用户集。每一个领域中的用户都是独立的。

        我们先简单分享到这里,后面再详细说下认证的流程,比如普通登录和单点登录,以及UNI-SOP中提供的功能。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2161719.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

[OPEN SQL] SELECT语句

本次操作使用的数据库表为SCUSTOM&#xff0c;其字段内容如下所示 航班用户(SCUSTOM) 1.SELECT语句 SELECT语句从数据库表中读取必要的数据 1.1 读取一行数据 语法格式 SELECT SINGLE <cols>... WHERE cols&#xff1a;数据库表的字段 从数据库表中读取一条数据可使…

[数据结构]动态顺序表的实现与应用

文章目录 一、引言二、动态顺序表的基本概念三、动态顺序表的实现1、结构体定义2、初始化3、销毁4、扩容5、缩容5、打印6、增删查改 四、分析动态顺序表1、存储方式2、优点3、缺点 五、总结1、练习题2、源代码 一、引言 想象一下&#xff0c;你有一个箱子&#xff08;静态顺序…

武汉大学首个人形机器人来了!

B站&#xff1a;啥都会一点的研究生公众号&#xff1a;啥都会一点的研究生 AI圈又发生了哪些新鲜事&#xff1f; 武汉大学展示首个人形机器人“天问”&#xff1a;1.7米高&#xff0c;65公斤重&#xff0c;36个自由度 武汉大学近日展示了其首个人形机器人“天问”&#xff0…

屏幕演示工具 | 水豚鼠标助手 v1.0.7

水豚鼠标助手是一款功能强大的屏幕演示工具&#xff0c;专为Windows 10及以上系统设计。这款软件提供了多种实用功能&#xff0c;旨在增强用户的屏幕演示体验&#xff0c;特别适合教师、讲师和需要进行屏幕演示的用户。鼠标换肤&#xff1a;软件提供多种鼠标光标样式&#xff0…

国庆出行新宠:南卡Pro5骨传导耳机,让旅途不再孤单

国庆长假即将来临&#xff0c;对于热爱旅行和户外运动的朋友们来说&#xff0c;一款适合旅行使用的耳机无疑是提升旅途体验的神器。今天&#xff0c;我要向大家推荐一款特别适合国庆出行的耳机——南卡Runner Pro5骨传导耳机。作为一名热爱旅游的体验者&#xff0c;我强烈推荐南…

2024年主流前端框架的比较和选择指南

在选择前端框架时&#xff0c;开发者通常会考虑多个因素&#xff0c;包括框架的功能、性能、易用性、社区支持和学习曲线等。以下是一些主流前端框架的比较和选择指南。 1. 主流前端框架简介 React 优点: 组件化开发&#xff0c;易于复用和维护。虚拟DOM提高了性能。强大的生…

Java 中创建线程几种方式

目录 概述 一. 继承Thread类 1. 特点 2. 注意事项 3. 代码示例 二. 实现Runnable接口 1. 特点 2. 注意事项 3. 代码示例 三. 实现Callable接口 1. 特点 2. 注意事项 3. 代码示例 概述 在Java中&#xff0c;线程&#xff08;Thread&#xff09;是程序执行的最小单…

Java面试篇基础部分-Synchronized关键字详解

Synchronized关键字用于对Java对象、方法、代码块等提供线程安全操作。Synchronized属于独占式的悲观锁机制,同时也是可重入锁。我们在使用Synchronized关键字的时候,可以保证同一时刻只有一个线程对该对象进行访问;也就是说它在同一个JVM中是线程安全的。   Java中的每个…

mask controlnet

diffusers/examples/controlnet/README.md at main huggingface/diffusers GitHub🤗 Diffusers: State-of-the-art diffusion models for image and audio generation in PyTorch and FLAX. - diffusers/examples/controlnet/README.md at main huggingface/diffusershttp…

怎么在Proteus中找到排阻

1、打开安装好的Proteus&#xff0c;点击上方菜单栏中的“库”&#xff0c;再选择“从库选取零件”&#xff0c;或者在左侧元件列表中单击鼠标右键&#xff0c;再点击右键菜单中的“从库中挑选”选项。 2、之后会打开元器件库&#xff0c;我们打开类别中的“Resistors”&#x…

《深度学习》CNN 数据增强、保存最优模型 实例详解

目录 一、数据增强 1、什么是数据增强 2、目的 3、常用的数据增强方法 4、数据预处理 用法&#xff1a; 5、使用数据增强增加训练数据 二、保存最优模型 1、什么是保存最优模型 2、定义CNN模型 运行结果&#xff1a; 3、设置训练模式 4、设置测试模式、保存最优模…

RHCS认证-Linux(RHel9)-Ansible

文章目录 一、ansible 简介二 、ansible部署三、ansible服务端测试四 、ansible 清单inventory五、Ad-hot 点对点模式六、YAML语言模式七、RHCS-Ansible附&#xff1a;安装CentOS-Stream 9系统7.1 ansible 执行过程7.2 安装ansible&#xff0c;ansible-navigator7.2 部署ansibl…

点亮一个LED灯

一、任务分析 一个灯怎么样才会亮&#xff1f; 图中的小灯两端接正负极&#xff0c;小灯就会点亮&#xff0c;但是我们不能主动控制灯的亮灭&#xff0c;于是加入了开关。开关打开断开小灯正极&#xff0c;小灯就会熄灭&#xff0c;反之则点亮。 在板子上的灯是如何连接的&…

Spring Boot集成Redis向量数据库实现相似性搜索

1.什么是Redis向量数据库&#xff1f; Redis 是一个开源&#xff08;BSD 许可&#xff09;的内存数据结构存储&#xff0c;用作数据库、缓存、消息代理和流式处理引擎。Redis 提供数据结构&#xff0c;例如字符串、哈希、列表、集合、带范围查询的有序集合、位图、超对数日志、…

Qt开发-comboBox 所有槽函数介绍(2024.09)

activated(int): 触发于ComboBox中某一项被激活时&#xff0c;参数为该项的索引。 currentIndexChanged(QString)/currentIndexChanged(int): 当前选中项变化时触发&#xff0c;前者传递文本&#xff0c;后者传递索引。 currentTextChanged(QString): 当前选中项的文字变更时触…

Ubuntu 与Uboot网络共享资源

1、NFS 1.1 Ubuntu 下 NFS 服务开启 sudo apt-get install nfs-kernel-server rpcbind 等待安装完成&#xff0c;安装完成以后在用户根目录下创建一个名为“Linux”的文件夹&#xff0c;以后所有 的东西都放到这个“Linux”文件夹里面&#xff0c;在“Linux”文件夹里面新建…

Qt获取本机Mac地址、Ip地址

一、简述 今天给大家分享一个获取本机IP地址和Mac地址的方法&#xff0c;经过多次测试&#xff0c;台式机、笔记本等多个设备&#xff0c;暂时没有发现问题。 由于很多时候本地安装了虚拟机、蓝牙、无线网卡或者其他设备等&#xff0c;会有多个Mac地址&#xff0c;所以需要进…

【828华为云征文|如何轻松部署“未知表白墙”项目:华为云Flexus X实例指南】

文章目录 华为云 Flexus X 实例&#xff1a;开启高效云服务的新纪元部署【未知表白墙】项目准备工作具体操作指南服务器环境确认宝塔软件商店操作域名解析未知表白墙登录页修改管理员账号和密码未知表白墙管理页面基础设置表白管理 未知表白墙效果查看 总结 华为云 Flexus X 实…

c++924

2 #include <iostream> #include <cstring>using namespace std;class MyString { private:char *str; // 记录C风格的字符串int size; // 记录字符串的实际长度public:// 定义无参构造MyString() : size(0) {str new char[1];str[0] \0;cou…

Unity中Rigidbody 刚体组件和Rigidbody类是什么?

Rigidbody 刚体组件 Rigidbody 是 Unity 中的一个组件&#xff0c;它可以让你的游戏对象像真实世界中的物体一样移动和碰撞。想象一下&#xff0c;你有一个小球&#xff0c;你希望它像真实世界中的球一样滚动、弹跳和碰撞&#xff0c;那么你就可以给这个小球添加一个 Rigidbod…