🤣添加应用tinyauth
This commit is contained in:
parent
50db91eb78
commit
1aa6f56721
|
|
@ -0,0 +1,210 @@
|
|||
additionalProperties:
|
||||
formFields:
|
||||
- default: 14389
|
||||
envKey: PANEL_APP_PORT_HTTP
|
||||
labelEn: HTTP Port
|
||||
labelZh: HTTP 端口
|
||||
label:
|
||||
en: HTTP Port
|
||||
ja: ポート
|
||||
ms: Port
|
||||
pt-br: Porta
|
||||
ru: Порт
|
||||
ko: 포트
|
||||
zh: HTTP 端口
|
||||
zh-Hant: HTTP 連接埠
|
||||
required: true
|
||||
rule: paramPort
|
||||
type: number
|
||||
|
||||
- default: ""
|
||||
envKey: PANEL_TINYAUTH_APP_URL
|
||||
labelEn: App URL
|
||||
labelZh: 应用地址
|
||||
label:
|
||||
en: App URL
|
||||
ja: アプリURL
|
||||
ms: URL Aplikasi
|
||||
pt-br: URL do Aplicativo
|
||||
ru: URL приложения
|
||||
ko: 앱 URL
|
||||
zh: 应用地址
|
||||
zh-Hant: 應用地址
|
||||
required: false
|
||||
type: text
|
||||
|
||||
- default: ""
|
||||
envKey: PANEL_TINYAUTH_SECRET
|
||||
labelEn: Secret
|
||||
labelZh: 密钥
|
||||
label:
|
||||
en: Secret
|
||||
ja: シークレット
|
||||
ms: Rahsia
|
||||
pt-br: Segredo
|
||||
ru: Секрет
|
||||
ko: 비밀
|
||||
zh: 密钥
|
||||
zh-Hant: 密鑰
|
||||
required: false
|
||||
type: password
|
||||
|
||||
- default: "86400"
|
||||
envKey: PANEL_TINYAUTH_SESSION_EXPIRY
|
||||
labelEn: Session Expiry (seconds)
|
||||
labelZh: 会话过期时间(秒)
|
||||
label:
|
||||
en: Session Expiry (seconds)
|
||||
ja: セッション有効期限(秒)
|
||||
ms: Tamat Sesi (saat)
|
||||
pt-br: Expiração da Sessão (segundos)
|
||||
ru: Время жизни сессии (секунды)
|
||||
ko: 세션 만료 (초)
|
||||
zh: 会话过期时间(秒)
|
||||
zh-Hant: 會話過期時間(秒)
|
||||
required: false
|
||||
type: number
|
||||
|
||||
- default: "TinyAuth"
|
||||
envKey: PANEL_TINYAUTH_APP_TITLE
|
||||
labelEn: App Title
|
||||
labelZh: 应用标题
|
||||
label:
|
||||
en: App Title
|
||||
ja: アプリタイトル
|
||||
ms: Tajuk Aplikasi
|
||||
pt-br: Título do Aplicativo
|
||||
ru: Заголовок приложения
|
||||
ko: 앱 제목
|
||||
zh: 应用标题
|
||||
zh-Hant: 應用標題
|
||||
required: false
|
||||
type: text
|
||||
|
||||
- default: ""
|
||||
envKey: PANEL_TINYAUTH_OAUTH_AUTO_REDIRECT
|
||||
labelEn: Auto Redirect Provider
|
||||
labelZh: 自动跳转提供商
|
||||
label:
|
||||
en: Auto Redirect Provider
|
||||
ja: 自動リダイレクトプロバイダー
|
||||
ms: Penyedia Pengalihan Automatik
|
||||
pt-br: Provedor de Redirecionamento Automático
|
||||
ru: Автоматический редирект провайдера
|
||||
ko: 자동 리디렉션 제공자
|
||||
zh: 自动跳转提供商
|
||||
zh-Hant: 自動跳轉提供商
|
||||
required: false
|
||||
type: select
|
||||
values:
|
||||
- label: None
|
||||
value: "none"
|
||||
- label: GitHub
|
||||
value: "github"
|
||||
- label: Google
|
||||
value: "google"
|
||||
- label: Generic
|
||||
value: "generic"
|
||||
|
||||
- default: ""
|
||||
envKey: PANEL_TINYAUTH_BACKGROUND_IMAGE
|
||||
labelEn: Background Image
|
||||
labelZh: 背景图片
|
||||
label:
|
||||
en: Background Image
|
||||
ja: 背景画像
|
||||
ms: Imej Latar Belakang
|
||||
pt-br: Imagem de Fundo
|
||||
ru: Фоновое изображение
|
||||
ko: 배경 이미지
|
||||
zh: 背景图片
|
||||
zh-Hant: 背景圖片
|
||||
required: false
|
||||
type: text
|
||||
|
||||
# GitHub
|
||||
- default: ""
|
||||
envKey: PANEL_TINYAUTH_GITHUB_CLIENT_ID
|
||||
labelEn: GitHub Client ID
|
||||
labelZh: GitHub 客户端ID
|
||||
required: false
|
||||
type: text
|
||||
|
||||
- default: ""
|
||||
envKey: PANEL_TINYAUTH_GITHUB_CLIENT_SECRET
|
||||
labelEn: GitHub Client Secret
|
||||
labelZh: GitHub 客户端密钥
|
||||
required: false
|
||||
type: password
|
||||
|
||||
- default: ""
|
||||
envKey: PANEL_TINYAUTH_GITHUB_REDIRECT_URI
|
||||
labelEn: GitHub Redirect URI
|
||||
labelZh: GitHub 回调地址
|
||||
required: false
|
||||
type: text
|
||||
|
||||
# Google
|
||||
- default: ""
|
||||
envKey: PANEL_TINYAUTH_GOOGLE_CLIENT_ID
|
||||
labelEn: Google Client ID
|
||||
labelZh: Google 客户端ID
|
||||
required: false
|
||||
type: text
|
||||
|
||||
- default: ""
|
||||
envKey: PANEL_TINYAUTH_GOOGLE_CLIENT_SECRET
|
||||
labelEn: Google Client Secret
|
||||
labelZh: Google 客户端密钥
|
||||
required: false
|
||||
type: password
|
||||
|
||||
- default: ""
|
||||
envKey: PANEL_TINYAUTH_GOOGLE_REDIRECT_URI
|
||||
labelEn: Google Redirect URI
|
||||
labelZh: Google 回调地址
|
||||
required: false
|
||||
type: text
|
||||
|
||||
# Generic
|
||||
- default: ""
|
||||
envKey: PANEL_TINYAUTH_GENERIC_NAME
|
||||
labelEn: Generic Provider Name
|
||||
labelZh: 通用提供商名称
|
||||
required: false
|
||||
type: text
|
||||
|
||||
- default: ""
|
||||
envKey: PANEL_TINYAUTH_GENERIC_CLIENT_ID
|
||||
labelEn: Generic Client ID
|
||||
labelZh: 通用客户端ID
|
||||
required: false
|
||||
type: text
|
||||
|
||||
- default: ""
|
||||
envKey: PANEL_TINYAUTH_GENERIC_CLIENT_SECRET
|
||||
labelEn: Generic Client Secret
|
||||
labelZh: 通用客户端密钥
|
||||
required: false
|
||||
type: password
|
||||
|
||||
- default: ""
|
||||
envKey: PANEL_TINYAUTH_GENERIC_AUTH_URL
|
||||
labelEn: Generic Auth URL
|
||||
labelZh: 通用认证地址
|
||||
required: false
|
||||
type: text
|
||||
|
||||
- default: ""
|
||||
envKey: PANEL_TINYAUTH_GENERIC_TOKEN_URL
|
||||
labelEn: Generic Token URL
|
||||
labelZh: 通用令牌地址
|
||||
required: false
|
||||
type: text
|
||||
|
||||
- default: ""
|
||||
envKey: PANEL_TINYAUTH_GENERIC_USER_URL
|
||||
labelEn: Generic User Info URL
|
||||
labelZh: 通用用户信息地址
|
||||
required: false
|
||||
type: text
|
||||
|
|
@ -0,0 +1,42 @@
|
|||
services:
|
||||
tinyauth:
|
||||
image: ghcr.io/tinyauth/tinyauth:v3.6.2
|
||||
container_name: ${CONTAINER_NAME}
|
||||
environment:
|
||||
# ---- 通用配置 ----
|
||||
- APP_URL=${PANEL_TINYAUTH_APP_URL}
|
||||
- SECRET=${PANEL_TINYAUTH_SECRET}
|
||||
- SESSION_EXPIRY=${PANEL_TINYAUTH_SESSION_EXPIRY}
|
||||
- APP_TITLE=${PANEL_TINYAUTH_APP_TITLE}
|
||||
- OAUTH_AUTO_REDIRECT=${PANEL_TINYAUTH_OAUTH_AUTO_REDIRECT}
|
||||
- BACKGROUND_IMAGE=${PANEL_TINYAUTH_BACKGROUND_IMAGE}
|
||||
|
||||
# ---- GitHub ----
|
||||
- GITHUB_CLIENT_ID=${PANEL_TINYAUTH_GITHUB_CLIENT_ID}
|
||||
- GITHUB_CLIENT_SECRET=${PANEL_TINYAUTH_GITHUB_CLIENT_SECRET}
|
||||
- GITHUB_REDIRECT_URI=${PANEL_TINYAUTH_GITHUB_REDIRECT_URI}
|
||||
|
||||
# ---- Google ----
|
||||
- GOOGLE_CLIENT_ID=${PANEL_TINYAUTH_GOOGLE_CLIENT_ID}
|
||||
- GOOGLE_CLIENT_SECRET=${PANEL_TINYAUTH_GOOGLE_CLIENT_SECRET}
|
||||
- GOOGLE_REDIRECT_URI=${PANEL_TINYAUTH_GOOGLE_REDIRECT_URI}
|
||||
|
||||
# ---- Generic (示例 Linux.Do) ----
|
||||
- GENERIC_NAME=${PANEL_TINYAUTH_GENERIC_NAME}
|
||||
- GENERIC_CLIENT_ID=${PANEL_TINYAUTH_GENERIC_CLIENT_ID}
|
||||
- GENERIC_CLIENT_SECRET=${PANEL_TINYAUTH_GENERIC_CLIENT_SECRET}
|
||||
- GENERIC_AUTH_URL=${PANEL_TINYAUTH_GENERIC_AUTH_URL}
|
||||
- GENERIC_TOKEN_URL=${PANEL_TINYAUTH_GENERIC_TOKEN_URL}
|
||||
- GENERIC_USER_URL=${PANEL_TINYAUTH_GENERIC_USER_URL}
|
||||
|
||||
ports:
|
||||
- "${PANEL_APP_PORT_HTTP}:3000"
|
||||
labels:
|
||||
createdBy: "Apps"
|
||||
networks:
|
||||
- 1panel-network
|
||||
restart: always
|
||||
|
||||
networks:
|
||||
1panel-network:
|
||||
external: true
|
||||
|
|
@ -0,0 +1,78 @@
|
|||
# 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/)(身份提供商示例)
|
||||
|
|
@ -0,0 +1,32 @@
|
|||
name: TinyAuth
|
||||
tags:
|
||||
- 开发工具
|
||||
- 安全
|
||||
title: 轻量级OAuth2/OIDC认证代理,支持多身份提供商的统一登录解决方案
|
||||
description: 一个轻量级的OAuth2和OIDC认证代理工具,常用于在现有Web服务前添加统一登录认证。
|
||||
additionalProperties:
|
||||
key: tinyauth
|
||||
name: TinyAuth
|
||||
tags:
|
||||
- DevTool
|
||||
- Security
|
||||
shortDescZh: 轻量级OAuth2/OIDC认证代理,支持多身份提供商的一站式登录认证
|
||||
shortDescEn: Lightweight OAuth2/OIDC authentication proxy with multi-provider SSO support
|
||||
type: website
|
||||
crossVersionUpdate: true
|
||||
limit: 0
|
||||
website: https://tinyauth.app/
|
||||
github: https://github.com/tinyauth/tinyauth
|
||||
document: https://tinyauth.app/docs/
|
||||
description:
|
||||
en: A lightweight reverse proxy and authentication middleware supporting multiple OAuth2 and OpenID Connect providers, ideal for securing existing web services with SSO.
|
||||
zh: 一个轻量级的反向代理与认证中间件,支持多种OAuth2和OIDC身份提供商,为现有Web服务提供统一登录保护。
|
||||
zh-Hant: 一個輕量級的反向代理與認證中介軟體,支援多種OAuth2和OIDC身份提供商,為既有Web服務提供單一登入保護。
|
||||
ja: 複数のOAuth2およびOIDCプロバイダーに対応した軽量認証プロキシで、既存のWebサービスにSSO保護を追加可能。
|
||||
ms: Proksi pengesahan ringan yang menyokong penyedia OAuth2 dan OIDC pelbagai, sesuai untuk melindungi perkhidmatan web sedia ada dengan SSO.
|
||||
pt-br: Proxy de autenticação leve que suporta múltiplos provedores OAuth2 e OIDC, adequado para proteger serviços web existentes com SSO.
|
||||
ru: Легковесный обратный прокси и провайдер аутентификации, поддерживающий OAuth2 и OIDC, обеспечивающий единую точку входа для существующих веб-сервисов.
|
||||
ko: 다양한 OAuth2 및 OIDC 제공자를 지원하는 경량 인증 프록시로, 기존 웹 서비스에 단일 로그인 보호를 제공합니다.
|
||||
architectures:
|
||||
- amd64
|
||||
- arm64
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 18 KiB |
Loading…
Reference in New Issue