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/)(身份提供商示例) |