认证方式

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 服务器插件按以下顺序尝试认证:

  1. BearerAuthorization: Bearer <jwt>)→ JwtBackend
  2. DigestAuthorization: Digest <...>)→ DigestBackend
  3. BasicAuthorization: Basic <...>)→ AdminBackend(Basic)
  4. 均不匹配 → 返回 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