78 lines
1.9 KiB
Markdown
78 lines
1.9 KiB
Markdown
|
|
# TinyAuth
|
|||
|
|
|
|||
|
|
TinyAuth 是一个轻量级的 OAuth2 / OIDC 认证代理,适合为已有的 Web 应用、面板或服务添加登录保护。你可以将它部署在应用之前,通过标准的身份提供商(如 Casdoor、Keycloak、Auth0 等)实现单点登录(SSO)。
|
|||
|
|
|
|||
|
|
## 功能特性
|
|||
|
|
|
|||
|
|
* 支持 OAuth2 / OpenID Connect 协议
|
|||
|
|
* 支持多身份提供商配置
|
|||
|
|
* 可保护现有 Web 服务(无需修改应用本身)
|
|||
|
|
* 简单的反向代理模式
|
|||
|
|
* 支持多种回调和重定向策略
|
|||
|
|
|
|||
|
|
## 快速开始
|
|||
|
|
|
|||
|
|
### 1. 部署 TinyAuth
|
|||
|
|
|
|||
|
|
使用 Docker 运行:
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
docker run -d \
|
|||
|
|
--name=tinyauth \
|
|||
|
|
-p 8080:8080 \
|
|||
|
|
-v $(pwd)/config.yml:/app/config.yml \
|
|||
|
|
ghcr.io/tinyauth/tinyauth:latest
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 2. 配置示例
|
|||
|
|
|
|||
|
|
在 `config.yml` 中配置认证提供商(例如 Casdoor):
|
|||
|
|
|
|||
|
|
```yaml
|
|||
|
|
server:
|
|||
|
|
port: 8080
|
|||
|
|
|
|||
|
|
providers:
|
|||
|
|
- id: casdoor
|
|||
|
|
name: Casdoor
|
|||
|
|
client_id: your-client-id
|
|||
|
|
client_secret: your-client-secret
|
|||
|
|
issuer: https://auth.example.com
|
|||
|
|
redirect_url: https://tinyauth.example.com/callback
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 3. Nginx 反向代理示例
|
|||
|
|
|
|||
|
|
```nginx
|
|||
|
|
server {
|
|||
|
|
listen 80;
|
|||
|
|
server_name app.example.com;
|
|||
|
|
|
|||
|
|
location / {
|
|||
|
|
proxy_pass http://127.0.0.1:8080;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 4. 登录流程
|
|||
|
|
|
|||
|
|
1. 访问受保护的应用(如 `app.example.com`)
|
|||
|
|
2. TinyAuth 会跳转到认证提供商(如 Casdoor)登录
|
|||
|
|
3. 登录成功后跳转回应用
|
|||
|
|
|
|||
|
|
## 配置参数
|
|||
|
|
|
|||
|
|
常见参数:
|
|||
|
|
|
|||
|
|
| 参数 | 描述 |
|
|||
|
|
| --------------- | ----------------- |
|
|||
|
|
| `client_id` | OAuth2 客户端 ID |
|
|||
|
|
| `client_secret` | OAuth2 客户端密钥 |
|
|||
|
|
| `issuer` | 身份提供商地址(OIDC 发行者) |
|
|||
|
|
| `redirect_url` | 登录成功后的回调地址 |
|
|||
|
|
|
|||
|
|
## 参考链接
|
|||
|
|
|
|||
|
|
* [TinyAuth 文档](https://tinyauth.app/docs)
|
|||
|
|
* [OAuth2 Proxy](https://oauth2-proxy.github.io/oauth2-proxy/)(类似工具)
|
|||
|
|
* [Casdoor](https://casdoor.org/)(身份提供商示例)
|