GeniusAuthoritarian

module
v1.17.17 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 1, 2023 License: AGPL-3.0

README

Genius Authoritarian

统一授权系统,提供一站式连携登录服务

目前的工作原理为,自动从飞书同步通讯录,使用电话号码作为身份标记。暂不支持从钉钉同步或混合同步。

本项目旨在解决:

  1. 更换办公软件会导致增加大量迁移工作
  2. 旧 ldap 已无法访问,无法管理,我们需要新的全自动 ldap 管理系统
  3. 现在没有一个可用的导航或工作台,进入任何控制面板都要口口相传域名
  4. 希望能一并解决研发的系统需要挨个分发账号的问题

🔧 项目完整本地调试

前后端可分开调试,前端嵌入并没有任何注入

首先准备环境:mysqlredis,建议映射预发布环境

构建 go 程序时添加 -tags="dev" 可以切换到调试模式

预先准备:

  • 添加 GOPRIVATE 环境变量 github.com/ncuhome
  • (可选) 设置 => Go => 构建标记 => 自定义标记 => 填入 dev
  • 添加运行配置,勾选 “使用所有自定义构建标记” 或在 ”Go 工具实参“ 栏填入 -tags="dev"
  • 运行一次,此时项目根目录会出现配置文件,填好配置项

调试时:

  • 在 web 目录运行 pnpm run dev
  • 在 Goland 启动运行配置项

🚸 项目子程序说明

Core 程序为 standalone 程序,包含所有登录逻辑、接口和功能,支持多实例并行运行。编程时请注意对多实例并行进行兼容,善用 mysql 锁、redis 锁与 redis 订阅/发布。api 为 80 端口,ssh rpc 为 81 端口,refreshToken 为 82 端口

sshDev 为 ssh server(rpc client),通过 rpc 从 core 获取用户名与公钥以此建立 ssh 服务,可以部署在任意地方,ssh 端口为默认端口

⚙ 使用

需要先申请鉴权密钥对,请后端同学分别在 预发布版后台 (v.ncuhome.club)生产版后台 (v.ncuos.com) 创建相应应用用于测试和上线。应用一经创建就会显示在导航栏,请谨慎操作。创建应用时回调地址可以带自定义参数

具体开发文档请转到 wiki

🗂 TODO

  • 对接飞书登录
  • 对接钉钉登录
  • 添加个人资料管理
  • 添加服务鉴权密钥对
  • 添加导航支持
  • 添加双因素认证支持
  • 为研发同学分发 SSH 账号
  • 支持高可用部署
  • 支持通行密钥
  • 添加数据看板
  • 支持 oidc 认证
  • 支持私有 CA 功能
  • 支持创建团队

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL