认证方式
WebDAV 服务支持三种认证方式,按优先级依次尝试。
Basic Auth(默认)
最基础的认证方式,所有 WebDAV 客户端默认支持。
Authorization: Basic base64(admin:admin123)
客户端配置
大多数客户端(Windows 资源管理器、macOS Finder、rclone、Cyberduck)默认使用 Basic Auth,只需填写用户名和密码即可。
密码校验使用
getOrigin('password_hash')读取(Admin 模型$hidden属性会隐藏常规访问)。
Digest Auth(W4-D3)
RFC 7616 摘要认证,密码不以明文传输。
原理
HA1 = MD5(username:realm:password)
HA2 = MD5(method:uri)
Response = MD5(HA1:nonce:HA2)
- realm 固定为
uld-dav-realm - HA1 存储在
admin.digest_hash字段 InitAdmin种子自动生成 digest_hash
客户端配置
WebDAV 客户端选择 Digest 认证
realm: uld-dav-realm
username: admin
password: admin123
初始化 / 重置
digest_hash 在种子初始化时自动生成。如需重置:
# 更新 admin 密码后重新生成 digest_hash
php think auth:token # JWT 方式(与 Digest 独立)
或手动更新数据库:
UPDATE uld_admin SET digest_hash = MD5(CONCAT('admin', ':uld-dav-realm:', 'admin123'));
JWT Bearer(W4-D4)
基于 JSON Web Token 的 Bearer 认证,适合 API 集成和自动化场景。
生成 Token
# 生成 JWT token(默认 24 小时有效)
docker exec uldisk-dev-uldisk-1 php think auth:token
# 自定义有效期(秒)
docker exec uldisk-dev-uldisk-1 php think auth:token --ttl=86400
输出:
JWT Secret 已初始化
Token: eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJhZG1pbi...
使用方式
curl -H "Authorization: Bearer eyJhbGci..." \
http://localhost:8002/dav/file.txt
Token 结构
{
"sub": "admin",
"iat": 1700000000,
"exp": 1700086400
}
配置
| 键 | 默认值 | 说明 |
|---|---|---|
jwt.secret |
自动生成 | HMAC-SHA256 签名密钥 |
jwt.ttl |
86400 | Token 有效期(秒) |
jwt.issuer |
uldisk | 签发者 |
开源版单管理员,无 refresh token 机制。
认证优先级
WebDAV 服务器插件按以下顺序尝试认证:
- Bearer(
Authorization: Bearer <jwt>)→ JwtBackend - Digest(
Authorization: Digest <...>)→ DigestBackend - Basic(
Authorization: Basic <...>)→ AdminBackend(Basic) - 均不匹配 → 返回 401 + 同时发出
WWW-Authenticate: Basic, Digest, Bearer
三种后端同时注册,客户端选择任意一种即可。旧客户端(仅 Basic)不受影响。
S3 API 认证(独立体系)
S3 API 使用 AWS SigV4 签名,与 WebDAV 认证完全独立:
- 凭据:Access Key(
ULDSK-前缀)+ Secret Key - 在管理后台 → Access Key 生成
- 不使用 admin 账号密码,可独立吊销
- 客户端:aws-cli / boto3 / rclone 等 S3 兼容客户端
公开访问(/raw)认证
/raw 路由默认无需认证,通过空间 access_policy 和预签名 URL 控制访问。详见「公开访问」章节。
原文标题:认证方式
原文文档:uldisk
原文地址:/read/augushong/ul-disk/zh-cn/1.0.0/6a3e73c598601/6a3e73d8e41c1.html
原文平台:奥宏文档
1.0.0