产品介绍

VanCone Passport 是覆盖企业组织和个人用户全场景的统一身份认证和权限管控服务,集成了通用的 SSO 单点登录和 RBAC 鉴权机制,旨在为用户提供账户注册与登录、授权鉴权等功能。用户在 Passport 平台上注册账号之后,就相当于持有统一的服务通行证,可以登录使用所有集成 Passport 认证的应用服务。各个业务应用无需单独构建登录和鉴权能力,用户在不同应用之间跳转也无需重复登录。

欢迎体验 Passport 服务:

核心特性

统一身份认证

  • 支持邮箱注册、密码登录
  • 登录需通过滑块验证码,防止自动化攻击
  • 邮箱验证码机制,用于找回密码
  • 支持 JWT Token 认证,采用 ES256 算法
  • 基于 Cookie 和 Header 双重 Token 传递机制
  • 连续登录失败超限自动锁定账号

SSO 单点登录

  • 用户一次登录,多个应用无缝切换
  • 支持同域 Cookie 共享实现单点登录
  • Token 采用无状态 JWT,有效期固定为 24 小时,不提供续期机制,过期后需重新登录

RBAC 权限管控

  • 基于角色的访问控制(Role-Based Access Control)
  • 支持租户级别的多租户隔离
  • 精细化的 API 级别权限控制
  • 支持账号与群组的权限绑定

管理后台

  • 可视化管理界面,操作简便
  • 租户管理、账号管理、群组管理、权限管理、应用管理一体化
  • 登录历史记录追踪

多账号类型支持

  • 个人账号:普通用户账号,用于登录使用应用
  • 应用账号:服务账号,用于应用服务之间的 API 调用认证

用户痛点

Passport 重点分析目标用户的需求和痛点,并推出了高效可靠、易于落地推广的解决方案。

普通用户痛点

  • 访问不同应用需要登录不同账号
  • 多套账号密码不方便记忆,更容易存在泄漏风险
  • 跨应用切换时需要重复登录

管理员痛点

  • 账号和权限持续维护难度大
  • 新员工入职、离职时权限配置繁琐
  • 缺乏统一的用户身份管理平台

应用开发者痛点

  • 需要为每个应用重复开发登录注册模块,工作量大
  • 不同应用之间相互调用,没有统一的授权/鉴权机制
  • 安全防护很难面面俱到,容易受到攻击等安全威胁
  • 权限管理逻辑复杂,容易出错

应用场景

账号注册和登录

  • 注册账号后即可登录,无需邮箱激活
  • 使用用户名/邮箱和密码登录,登录前需完成滑块验证码
  • Token 认证,支持跨应用免登录

安全验证和防护

  • 滑块验证码,用于登录与找回密码
  • 邮箱验证码机制,用于找回密码
  • JWT Token 签名验证
  • API 级别的权限控制
  • 登录历史记录追踪

权限分配

  • 管理员统一分配权限
  • 支持个人权限和群组权限
  • 灵活的权限组合策略

应用注册和发布

  • 应用开发者注册应用
  • 定义应用的 API 接口清单
  • 创建应用账号,获取 Access Key
  • 关联权限到 API 接口

开发集成和部署

  • 提供 Java SDK(Spring Boot)与 Go SDK(Gin)简化集成
  • 提供公开 REST API
  • 支持本地缓存机制
  • 支持同步应用下的 API 与权限配置

系统架构

Passport 平台主要由以下模块组成:

模块说明
管理后台Vue 3 + TypeScript 构建,提供可视化的管理界面
认证服务passport-service,处理用户登录、注册、Token 签发与验证等核心功能
管理服务passport-admin,提供租户、账号、群组、权限、应用等管理 API
SDKJava SDK(Spring Boot)与 Go SDK(Gin),简化应用接入认证鉴权功能
数据存储使用 MySQL 存储业务数据,Redis 缓存验证码与 Token 相关数据

账号类型

Passport 支持两种类型的账号:

个人账号

用于真人用户登录系统,具有以下特点:

  • 支持邮箱登录
  • 需要密码验证
  • 可以绑定到多个群组
  • 可以分配多个权限

应用账号

用于服务之间的 API 调用认证,具有以下特点:

  • 通过 Access Key ID / Secret Access Key 认证
  • 关联到具体的应用
  • 用于服务间通信,无需人工登录
  • 支持创建和管理多个凭证

鉴权模型

Passport 采用 RBAC(基于角色的访问控制)模型,鉴权链路如下:

User(用户)
  ↓
Group(群组)/ Account(账号)
  ↓
Permission(权限)
  ↓
API(接口)
  • 用户:最终使用系统的用户
  • 群组/账号:用户的集合,可以批量分配权限
  • 权限:API 接口的集合,表示一组操作能力
  • API:具体的服务接口,是权限控制的原子单位