You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
OneAuth/doc/README.md

129 lines
3.5 KiB
Markdown

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# VBase 文档
欢迎来到 VBase 文档中心。
## 快速导航
| 文档 | 说明 |
|------|------|
| [API 文档](./api.md) | 完整的 API 接口文档,包含请求/响应格式 |
| [架构设计](./architecture.md) | 系统架构、模块设计、数据模型、BaaS 资源管理 |
| [部署指南](./deployment.md) | 环境配置、Docker 部署、运维指南 |
| [权限系统](./permission.md) | RBAC+ABAC 权限模型、三级权限体系使用指南 |
## 项目定位:可私有化部署的 IAM + BaaS 产品
VBase 是一个 **产品化的 IAM + BaaS 平台**,你可以将其**售卖/部署**给终端客户:
### 三层级架构
| 层级 | 角色 | 说明 |
|------|------|------|
| **平台层** | 平台运营商(你) | 管理 VBase 产品,提供部署和运维服务 |
| **实例层** | 客户2C/2B/混合) | 独立部署 VBase 实例,完全隔离 |
| **业务层** | 终端用户 | 使用客户的产品,与你无直接关系 |
### 两种交付模式
1. **托管部署**:你在自己的云基础设施上为客户部署 VBase 实例,负责运维
2. **客户自托管**:客户在自己的环境中部署,数据完全自主可控
### 客户类型
- **2C 产品公司**(社交 App、电商平台用 VBase 管理用户注册、登录、个人数据
- **2B 产品公司**SaaS、企业软件用 VBase 做多租户隔离、组织架构、权限管理
- **混合产品公司**电商平台、O2O同时管理 C 端用户和 B 端企业
## 核心特性
- **项目-资源隔离**: 多项目数据隔离,支持个人/团队场景
- **三级权限体系**: 平台级 → 项目级 → 资源级
- **RBAC + ABAC**: 角色与策略结合的细粒度权限控制
- **Redis 缓存**: 权限缓存 1 分钟 TTL平衡性能与实时性
- **资源级权限**: 数据库、存储、函数、API 密钥的细粒度控制
## 快速开始
### 1. 启动服务
```bash
# 使用 Docker Compose
docker-compose up -d
# 或使用源码
go run ./cli/main.go
```
### 2. 获取初始管理员密码
查看日志获取自动生成的管理员密码:
```bash
docker logs vbase_app_1 | grep -A 5 "Initial admin"
```
### 3. 调用 API
```bash
# 登录
curl -X POST http://localhost:8080/auth/login \
-H "Content-Type: application/json" \
-d '{"username":"admin","password":"your-password"}'
# 访问用户列表
curl http://localhost:8080/users \
-H "Authorization: Bearer your-access-token"
```
## 配置 OAuth 登录
### Google 登录
1. 访问 [Google Cloud Console](https://console.cloud.google.com/)
2. 创建 OAuth 2.0 客户端
3. 配置环境变量:
```bash
OAUTH_GOOGLE_ENABLED=true
OAUTH_GOOGLE_CLIENT_ID=your-client-id
OAUTH_GOOGLE_CLIENT_SECRET=your-client-secret
```
### GitHub 登录
1. 访问 [GitHub Settings](https://github.com/settings/developers)
2. 创建 OAuth App
3. 配置环境变量:
```bash
OAUTH_GITHUB_ENABLED=true
OAUTH_GITHUB_CLIENT_ID=your-client-id
OAUTH_GITHUB_CLIENT_SECRET=your-client-secret
```
## 常见问题
### Q: 首次启动时管理员密码是什么?
A: 如果未设置 `INIT_ADMIN_PASSWORD`,系统会自动生成随机密码并打印在日志中。
### Q: 如何重置管理员密码?
A: 直接修改数据库中的 `users` 表,使用 bcrypt 生成新密码哈希。
### Q: 支持哪些数据库?
A: 支持 MySQL 5.7+、PostgreSQL 12+、SQLite 3。
### Q: 如何实现单点登录(SSO)
A: VBase 可以作为 OAuth2.0/OIDC 服务端,其他应用配置为 OAuth 客户端即可实现 SSO。
## 贡献指南
欢迎提交 Issue 和 PR。
## 许可证
MIT License