Add authenticated login and SSO protection
This commit is contained in:
31
README.md
31
README.md
@@ -58,6 +58,30 @@ Docker 部署默认使用 `docker-compose.yml` 同时启动 Web 服务和 `zhini
|
||||
|
||||
主导航只保留创作、结果、设置,不包含工作台、项目、模板中心、Billing 或桌面端入口。
|
||||
|
||||
## 账户登录 / SSO
|
||||
|
||||
发布环境默认要求账户登录。Web 登录支持两种方式:一是 OAuth2 Authorization Code,用户跳转到认证中心登录,本服务在 `/api/auth/callback` 后端换 token;二是在本项目登录页直接输入账号、密码和图形验证码,由本服务后端调用 `${AUTH_BASE}/oauth2/token` 的 password grant。两种方式都会通过 `${AUTH_BASE}/oauth2/jwks` 本地验签 JWT,再写入 HttpOnly 会话 cookie。
|
||||
|
||||
需要在认证中心客户端配置中加入回调地址:
|
||||
|
||||
```text
|
||||
https://你的域名/api/auth/callback
|
||||
```
|
||||
|
||||
关键环境变量:
|
||||
|
||||
- `ZHINIAN_AUTH_REQUIRED=auto`:生产默认启用;本地可信开发可设为 `0`
|
||||
- `ZHINIAN_AUTH_BASE_URL=https://<gateway-domain>/auth`
|
||||
- `ZHINIAN_AUTH_CLIENT_ID=customPC`
|
||||
- `ZHINIAN_AUTH_CLIENT_SECRET`
|
||||
- `ZHINIAN_AUTH_SCOPE=server`
|
||||
- `ZHINIAN_AUTH_ISSUER=https://pig4cloud.com`
|
||||
- `ZHINIAN_AUTH_SESSION_SECRET`:长随机字符串,用于签名本地登录态
|
||||
|
||||
`/create`、`/assets`、`/settings`、第一方生成/资产 API、以及本地上传和生成结果文件都会受登录态保护。`/api/v1/*` 继续使用 `ZHINIAN_API_KEYS`,不走浏览器 SSO。
|
||||
|
||||
如果认证中心客户端未加入 `security.ignore-clients`,登录页的账号密码方式会要求图形验证码;验证码图片由 `/api/auth/captcha` 代理 `${AUTH_BASE}/code/image` 获取。
|
||||
|
||||
## 图片创作引擎
|
||||
|
||||
图片生成和局部重绘支持在设置页「状态」里按功能切换创作引擎:
|
||||
@@ -116,6 +140,13 @@ cp .env.example .env.local
|
||||
|
||||
核心配置:
|
||||
|
||||
- `ZHINIAN_AUTH_REQUIRED=auto`
|
||||
- `ZHINIAN_AUTH_BASE_URL`
|
||||
- `ZHINIAN_AUTH_CLIENT_ID=customPC`
|
||||
- `ZHINIAN_AUTH_CLIENT_SECRET`
|
||||
- `ZHINIAN_AUTH_SCOPE=server`
|
||||
- `ZHINIAN_AUTH_ISSUER=https://pig4cloud.com`
|
||||
- `ZHINIAN_AUTH_SESSION_SECRET`
|
||||
- `IMAGE_GENERATE_ENGINE=jimeng` 或 `evolink`
|
||||
- `IMAGE_INPAINT_ENGINE=jimeng` 或 `evolink`
|
||||
- `VOLCENGINE_ACCESS_KEY_ID`
|
||||
|
||||
Reference in New Issue
Block a user