01AEGIS · IDENTITY PLATFORM

多租户用户系统平台统一承载认证、授权、组织、资产与风控

Aegis 是一套自托管的多租户用户系统平台。每个接入应用拥有独立的用户库、认证策略与配置空间,客户端仅需对接单一命名空间,其余能力通过管理控制台配置。

认证与账号
登录 / 多因子 / 会话
授权与组织
策略 / 部门 / 审批
资产与风控
账本 / 会员 / 实时判定

自托管部署,数据存储于自有 PostgreSQL 实例

aegis.console / 概览live

8,412

在线会话

+6.2%

23,910

今日登录

+12.4%

148

风控拦截

-3.1%

  • app_web · 会员开通刚刚
  • 风控命中 · 异地登录12s
  • app_ios · Passkey 绑定48s
GoGo 1.26GinGinPostgreSQLPostgreSQLRedisRedisNATS.ioNATS JetStreamTemporalTemporalOpenTelemetryOpenTelemetryOWASPCoraza WAFJSON Web TokensJWT / PasskeyStripeStripeNext.jsNext.js 16ReactReact 19Tailwind CSSTailwind CSS 4
已注册接口
1000+已注册接口管理端与接入端合计,OpenAPI 由运行中的路由树实时生成
内置支付渠道
16内置支付渠道覆盖内部钱包、Stripe、支付宝、微信等,渠道能力由服务端自描述
邮件服务商
9邮件服务商SMTP 直连与八家 REST 服务商,优先采用官方 SDK
社交登录渠道
6社交登录渠道QQ / 微信 / GitHub / Google / Microsoft / 微博
核心能力

六项已在平台层完成的基础能力

以下能力在多数项目中需要各自实现一遍。Aegis 将其收敛至平台层统一提供,并由测试覆盖。

多租户

应用之间的用户数据天然隔离

每个应用拥有独立的用户库、认证策略与配置空间。隔离边界由请求路径中的 appKey 确定,不依赖业务代码逐条附加过滤条件。

app_web128,402
app_ios64,915
app_ops1,208
  • 应用级数据隔离
  • 认证与密码策略逐应用配置
  • 平台治理结论优先于应用自身开关
授权

细粒度授权,无需为单个权限新建角色

平台、应用、组织三种作用域共用同一个策略引擎与同一张策略表。显式拒绝优先于放行,策略变更经 NATS 广播至全部实例。

  • 一份策略表覆盖三种作用域
  • 临时权限到期自动失效
  • 内置接口可解释判定结果
接入协议

提升安全等级仅需替换传输层适配器

standard、signed、sealed 三档共用同一批路径与同一份 JSON 结构。标准档基于 HTTPS,签名档增加 HMAC-SHA256 请求签名,密封档在此之上叠加端到端加密载荷。

standard
signed
sealed
  • 请求签名覆盖 query string
  • 控制台提供接入自检
  • 提供官方 Kotlin/JVM 客户端
风控

风控规则可在控制台编辑并模拟验证

规则采用表达式语法,具备类型化环境与编译缓存,变量名错误在保存时即被拦截。模拟器支持以草稿规则回放真实流量,确认效果后再发布。

  • 设备指纹与 IP 风险库
  • GCRA 限流与地理风控
  • 命中记录可回放、可人工复核
资产与交易

资金与权益记录在同一套账本

积分、钱包、订单、退款、会员与试用共用一套账本,金额全程以定点小数流转。支付凭证 PDF 支持 10 种语言排版。

  • 订单与钱包流水分别出具凭证
  • 试用资格一人一次,由唯一约束保证
  • 管理员调账全程留痕
远程函数

自定义业务逻辑运行于服务端沙箱

接入方可将业务分支编写为 JavaScript 并托管于服务端沙箱。试运行读取真实数据但不产生副作用,历史版本正文可随时取回,能力与运行闸门支持在控制台调整。

// 试跑读真数据,副作用不落库export default async (ctx) => { const u = await aegis.user.get(ctx.userId) return { vip: u.vip.active }}
  • 按已声明能力生成编辑器类型
  • 调用记录逐条可查
  • KV 存储为脚本独占状态
能力全景

六组能力,覆盖账号的完整生命周期

按使用场景分组编排。每一项在管理控制台中均有对应页面,并提供对应的开放接口。

覆盖账号生命周期内的全部环节,从首次注册到多设备登录。

三类登录入口

密码、短信验证码与 OAuth2,登录与注册的可选集合独立配置

多因子与无密码

TOTP、一次性恢复码与 Passkey(WebAuthn 生物认证)

会话与设备

在线会话列表、强制下线、登录基线与异地提醒

头像服务

地址永久有效,支持 EXIF 纠正、多尺寸与 blurhash 占位

密码强度

基于 zxcvbn 猜测次数估算,替代字符类组合规则

动态验证码

支持动画 GIF、算术与音频三类,外观按应用配置

架构

请求经过的五层结构

自上而下每层职责单一。权限与作用域校验统一下沉至业务层,因此控制台、SDK 与远程函数等不同入口均无法绕过判定。

  1. 接入网关

    接入方对接的唯一命名空间,安全等级在此层完成解包

    /api/v1/apps/{appKey}/* · WAF · 限流 · 重放防护

  2. 传输层

    路由、参数绑定与响应封装,OpenAPI 规范由此层生成

    Gin · DTO · pkg/response

  3. 业务层

    业务判定的统一归属层,权限与作用域校验均下沉至此

    认证 · 授权 · 组织 · 资产 · 风控 · 内容 · 远程函数

  4. 数据层

    数据读写与缓存,新增查询由 sqlc 依据迁移文件生成类型安全代码

    PostgreSQL + PostGIS · Redis · pgx/v5 · sqlc

  5. 基础设施

    跨进程事件、长流程编排与可观测性

    NATS JetStream · Temporal · GeoIP2 · OpenTelemetry

接入

单一命名空间,三档安全等级

客户端登录后所需的全部能力均位于 /api/v1/apps/{appKey}/* 之下。三档等级为叠加关系,sealed 等同于 signed 叠加加密载荷,升级仅需替换传输层适配器。

默认档

仅需 HTTPS 与 JSON。不涉及密钥交换与握手流程,客户端无需引入密码学依赖,适用于功能联调阶段。

客户端无需额外处理

GNU Bashstandard · 登录
Shell
curl -X POST https://your-host/api/v1/apps/${APP_KEY}/auth/login \
  -H 'Content-Type: application/json' \
  -d '{"method":"password","identifier":"demo","password":"******"}'

# → { "code": 0, "data": { "accessToken": "…", "user": { … } } }
常见问题

接入前的常见疑问

赞助商

由这些厂商提供支持

从云资源、模型能力到开发工具。其中存储、邮件出口与登录渠道已内置官方适配,在控制台配置后即可启用。

商标与图形归各自所有者所有,出现于此不代表其对本项目的背书。

开始接入 Aegis

管理控制台提供全部可配置项,对应能力均有开放接口。登录后即可查看完整的功能范围与配置入口。