Skip to main content

Passport 身份认证平台

简介​

Passport 是 Alaikis.com 的企业级 SaaS 身份认证平台,为第三方应用提供安全可靠的用户认证和授权服务。系统采用统一用户模型,管理员和终端用户共用 user 表,通过应用绑定区分权限。

架构设计​

merchant (商户/租户)
├── app (应用) — type: public/private/internal
│ └── client (OAuth2 客户端凭证)
├── user (统一用户表 — 管理员和终端用户共用)
│ └── app_user (用户-应用绑定, state: 0=待激活, 1=已激活)
│ └── user_role (用户-角色关联)
├── role (角色) + permission (权限) + role_permission (关联)
└── developer (开发者凭证)

统一用户模型​

管理员和终端用户共用 user 表,通过 app_user 绑定区分权限:

身份判定方式权限
终端用户绑定到 public/private app只能操作自己
商户管理员绑定到 internal app + admin role管理本商户全部资源
平台超管超级商户下的用户跨商户管理

Internal App 机制​

每个商户注册时自动创建一个 type=internal 的管理后台应用:

  • 不可删除、不可改名、不可改类型
  • 自动创建对应的 OAuth Client
  • 第一个注册的用户自动绑定并分配 admin 角色

应用类型​

type含义注册流程激活机制
public公开应用用户可自助注册自动激活 (state=1)
private私有应用仅管理员邀请待激活 (state=0),管理员手动激活
internal内部管理应用注册商户时自动创建绑定即激活,不可删除

多商户选择​

一个用户可绑定多个商户的应用。登录后:

  • 单商户 → 直接进入后台
  • 多商户 → 显示选择页面(类似 qcloud/ctyun)
  • 后台右上角可切换商户

主要特性​

  • OAuth 2.0 - 标准授权协议(authorization_code / implicit)
  • OpenID Connect (OIDC) - 身份认证层
  • 多因素认证 (MFA) - TOTP 一次性密码
  • SSO 单点登录 - 跨域纯 Token 方案
  • SLO 单点登出 - 三通道并行
  • 智能体统一 Token - 一个 Agent Token 跨应用访问
  • 多租户架构 - 支持企业级 SaaS,商户间数据隔离
  • RBAC 权限 - 角色/权限/租户隔离
  • 桌面简化登录 - 仅需 client_id + 密码,无需 client_secret

三套前端系统​

路径系统技术栈
/adm/管理后台Vite + React + shadcn-ui
/mc/商户中心Vite + React + shadcn-ui
/u/用户中心Vite + React + shadcn-ui

接入方式​

方式适用场景需要的凭证
桌面简化登录桌面客户端、CLI、AI Agentclient_id + 用户密码
OAuth 授权码Web 应用(有服务端)client_id + client_secret
SSO 跨应用多应用统一登录sso_session_id

快速开始​

  1. 联系平台管理员获取 client_id
  2. 选择接入方式(桌面简化登录推荐用于客户端应用)
  3. 用户输入账号密码获取 token
  4. 使用 token 调用用户信息 API

详见 接入文档 和 商户管理 API

安全特性​

  • 密码 bcrypt 加密存储
  • JWT RS256 签名
  • 密码历史校验
  • 强制密码修改
  • 登录失败锁定
  • 完整的审计日志
  • client_secret 不嵌入客户端(桌面简化登录)

协议支持​

  • OAuth 2.0 (RFC 6749)
  • OpenID Connect 1.0
  • JWT (RFC 7519)
  • TOTP (RFC 6238)
  • Token Exchange (RFC 8693)