ginv sso 是一套纯粹的后台单点管理系统,用于解决1个或多个后台管理系统的账号登录和授权管理。ginv sso默认使用前后端分离技术。服务端使用golang开发,基于go-zero框架;前端使用vue3开发,基于ant design vue。
ginv sso具有auth、ssoms、和gateway三个系统,分别具有以下功能:
auth: 负责系统登录验证、页面权限验证、接口授权验证
ssoms: 负责角色、用户管理、系统和菜单管理、角色授权
gateway: 登录登出页面、负责接入请求和转发请求
ginv sso的多个后台系统需是在同一个域名下的子域名。这样做的目的是使用安全的httpOnly的Cookie在多个系统之间进行用户身份识别。
ssoms是单点登录的管理后台,它具有以下功能
用户管理: 用户基本信息的增删改,角色分配
角色管理: 角色基本操作,分配用户,角色的菜单&操作权限分配
系统管理: 管理使用单点登录的后台系统
菜单管理: 配置系统的菜单&操作,支持高亮查询,批量导入、导出
个人中心: 修改登录用户自己的头像、密码、个人说明等
前端请求的入口,接收的请求headers必须具有如下信息:
key | 说明 |
---|---|
cookie | 登录的后生成的cookie, 由gateway的登录后的跳转页面提供,用于登录校验、授权 |
Refere | 告诉服务端由哪个页面发起的请求,这边使用unsafe-url配置,用于日志、授权白名单等 |
x-client-env | 环境,可选值有test\ |
x-client-service | 请求的服务端的服务名,用于转发请求 |
x-client-system | 后台系统的系统名,用于授权查询 |
x-client-uri | 请求服务端的操作,用于授权查询 |
gateway主要负责转发功能,为了保证生成Cookie由服务端下发的页面创建,网关还提供了登录、登出和登录跳转页(跳转到相应的系统)。
gateway通过请求的headers[x-client-service], 知道转发给哪个服务,在转发请求之前,会请求auth服务,根据cookie, 会解析到用户的信息,根据x-client-system和x-client-uri 以及发起请求的Method则可以验证是否具有权限。如果验证通过,auth服务会返回用户的uuid和name,并追加到headers[x-origin-uuid]参数和headers[x-origin-name]参数。
先登录ssoms,通过系统管理
创建系统,并在菜单&操作
创建相应的页面及操作,最后给用户相应的角色进行授权。
其他系统会全局接受headers[x-origin-uuid]和headers[x-origin-name]放入context中,在loginc函数中就可以直接拿取用户的uuid和name:
uuid := l.ctx.Value(config.UUID).(string)
name := l.ctx.Value(config.Name).(string)
backup.sql
,并执行下面的sql修改单点管理后台的域名:-- identifier的值设置为单点管理后台的域名, 这边以http://ssoms.ginv.com为例
UPDATE object SET identifier='http://ssoms.ginv.com' WHERE uuid='kreppg8md1sb'
# auth
cd service/auth/api
go run auth.go
# 默认加载etc/auth.yaml配置文件,通过-f参数使用不同的配置文件,例如go run auth.go -f etc/auth.dev.yaml
# 编译生成可执行文件: go build auth.go
# ssoms
cd service/ssoms/api
go run ssoms.go
# 默认加载etc/ssoms.yaml配置文件,通过-f参数使用不同的配置文件,例如go run ssoms.go -f etc/ssoms.dev.yaml
# 编译生成可执行文件: go build ssoms.go
# ssoms vue后台
cd service/ssoms/vue
yarn install
yarn dev
# 打包前端代码: yarn build
# gateway
cd service/gateway/api
go run auth.go
# 默认加载etc/gateway.yaml配置文件,通过-f参数使用不同的配置文件,例如go run gateway.go -f etc/gateway.dev.yaml
# 编译生成可执行文件: go build gateway.go
本文向大家介绍10k+点赞的 SpringBoot 后台管理系统教程详解,包括了10k+点赞的 SpringBoot 后台管理系统教程详解的使用技巧和注意事项,需要的朋友参考一下 其实项目网上有很多了,但是教程比较详细的没多少,今天分享的项目从安装部署到代码具体功能都有很详细都说明 eladmin 是一款基于 Spring Boot 2.1.0 、 Jpa、 Spring Security、red
概要设计 1、创建、发送、停止同步任务; 2、创建、抓取同步工作节点; 3、抓取、整合节点统计数据与实时数据并做页面展示; 4、抓取、整合任务统计数据与实施数据并做页面展示; 5、抓取告警日志并做页面展示; 6、收集、整合数据推送到中间件。 名词须知 数据源:数据存储位置,现启用kafka、jdbc、canal三种类型; 数据表组:
应用Controller目录下文件命名规则,以****adminController.class.php或者Admin****Controller.class.php命名的是后台controller, 在后台菜单导入时会自动识别 以下几个功能是debug开启时才会出现的: 所有菜单 这个是用来管理后台所有菜单的,在这里可以很方便的对那些“未知”的菜单进行编辑 导入新菜单 这个功能就是所有菜单里那个
RBAC - YII2权限管理 开源协议 GPL 注意事项 严禁使用本软件从事任何非法活动 安装步骤 复制install目录下的dev文件至config目录下 修改dev目录下的db.php中的数据库配置 数据库导入SQL脚本,对应的脚本install目录下 默认密码:ranko/admin 后台地址:index.php?r=site/login 使用事项 starter/filter/Backe
moa2-frontend 前后端分离 shop-server 3000 shop-admin 3010 nginx 8000 即3010 /api 即3000 worker_processes 1; error_log logs/error.log; error_log logs/error.log notice; error_log logs/error.log info; p
本文向大家介绍golang实现单点登录系统(go-sso),包括了golang实现单点登录系统(go-sso)的使用技巧和注意事项,需要的朋友参考一下 这是一个基于Go语言开发的单点登录系统,实现手机号注册、手机号+验证码登录、手机号+密码登录、账号登出等功能,用户认证采用cookie和jwt两种方式。收发短信相关方法已提供,仅需根据短信通道提供商提供的接口做相应的参数配置即可使用。 环境介绍 g