Copyright © 2026 World Wide Web Consortium. W3C® liability, trademark and permissive document license rules apply.
本文档定义了一个用于链接式 Web 存储(LWS)协议的认证套件,使能够签署其自身身份令牌的客户端 能够与 LWS 集成。
本节描述本文档在发布时的状态。当前 W3C 出版物列表以及本技术报告的最新修订版可在 W3C 标准与草案 索引中找到。
这是一项非官方提案。
本文档由 链接式 Web 存储工作组 作为工作草案发布,并使用 推荐标准 轨道。
作为 工作草案发布并不意味着 W3C 及其成员的认可。
这是一份草案文档,可能会在任何时候被其他 文档更新、替换或废止。除非作为正在进行的工作, 否则不宜引用本文档。
本文档由一个在 W3C 专利 政策下运作的小组制作。 W3C 维护一份 与该小组交付物相关的任何专利披露的公开列表; 该页面还包含 披露专利的说明。任何实际 知晓某项专利,并认为该专利包含 必要权利要求 的个人,必须按照 W3C 专利政策第 6 节 披露该信息。
本文档受 2025年8月18日 W3C 流程文档管辖。
自签发身份对于应用代表自身行事的情形非常重要。这包括 自主机器人以及服务器端脚本等。 在这些情况下,代理能够 安全地管理密钥对的私有部分,并使用它来生成已签名的 JSON Web Token (JWT)。 本规范描述了此类代理如何生成可与链接式 Web 存储一起使用的认证凭据。
除标记为非规范性的章节外,本规范中的所有编写指南、图表、示例和注释 均为非规范性内容。本规范中的其他所有内容均为规范性内容。
本文档中的关键词 MAY、MUST 和 MUST NOT 应按 BCP 14 [RFC2119] [RFC8174] 中的描述解释,但仅当它们如本文所示 全部以大写形式出现时才如此。
术语“authorization server”和“client”由 The OAuth 2.0 Authorization Framework [RFC6749] 定义。
术语“controlled identifier document”和“verification method”由 W3C Controlled Identifiers 1.0 [CID-1.0] 定义。
术语“JSON Web Token (JWT)”和“claim”由 JSON Web Token [RFC7519] 定义。
术语“agent”、“authentication credential”和“authentication suite”由 Linked Web Storage Protocol [LWS10-CORE] 定义
自签发的认证凭据 被序列化为已签名的 JSON Web Token (JWT)。为了将 JWT 用作 LWS 认证凭据, 适用以下附加要求。
JWT MUST NOT 使用“none”作为签名算法。
JWT MUST 使用 sub(subject)声明作为 LWS 主体
标识符。
JWT MUST 使用 iss(issuer)声明作为 LWS 签发者标识符。
JWT MUST 使用 client_id(client ID)声明作为 LWS 客户端
标识符。
sub、iss 和 client_id 声明 MUST 全部
使用相同的 URI 值。
ID Token 中的任何受众限制 MUST 使用 aud(audience)
声明。aud 声明 MUST 包含目标授权服务器。
JWT MUST 包含 exp(expiration)声明,指示令牌
过期的时间。
JWT MUST 包含 iat(issued at)声明,指示令牌
签发的时间。
下面包含一个同时也是 LWS 认证凭据的示例 JWT。
{
"kid": "c1f52577",
"kty": "EC",
"alg": "ES256",
"typ": "JWT",
"crv": "P-256"
}
.
{
"sub": "https://id.example/agent",
"iss": "https://id.example/agent",
"client_id": "https://id.example/agent",
"aud": ["https://as.example"],
"iat": 1761313600,
"exp": 1761313900
}
.
signature
为了将 JWT 验证为 LWS 认证凭据, 验证者与签发方之间必须存在信任关系。
在不存在预先存在的信任关系时,验证者 MUST 解引用
认证凭据中的
sub(subject)声明。
生成的资源 MUST 格式化为有效的受控标识符文档
[CID-1.0],并具有等于
主体标识符的 id 值。
验证者 MUST 拒绝任何使用等于“none”的 alg 头部参数的令牌。
验证者 MUST 验证由认证凭据 数据模型描述的所有声明。
验证者 MUST 使用已签名 JWT
头部中的 kid(key id)值,从主体的受控标识符文档中识别一种验证方法。
此过程在 [CID-1.0] 第 3.3 节中描述。
使用从受控标识符文档中选择的验证方法,JWT 的签名 MUST 按照 [RFC7515] 第 5.2 节中的描述进行验证。
验证者 MUST 确保当前时间早于
exp 声明所表示的时间。实现者 MAY 提供一些小的宽限时间,
以考虑时钟偏差。
下面包含一个受控标识符文档示例。
{
"@context": [
"https://www.w3.org/ns/cid/v1" ],
"id": "https://id.example/agent",
"authentication": [{
"id": "https://id.example/agent#c1f52577",
"type": "JsonWebKey",
"controller": "https://id.example/agent",
"publicKeyJwk": {
"kid": "c1f52577",
"kty": "EC",
"crv": "P-256",
"alg": "ES256",
"x": "f83OJ3D2xF1Bg8vub9tLe1gHMzV76e8Tus9uPHvRVEU",
"y": "x_FEzRu9m36HLN_tue659LNpXW6pCyStikYjKIWI5a0"
}
}]
}
用作认证凭据的自签发 JSON Web Token MUST 在与授权服务器交互时使用
urn:ietf:params:oauth:token-type:jwt URI。
本节为非规范性内容。
“Best Current Practice for OAuth 2.0 Security” [RFC9700] 和 “OpenID Connect Core 1.0” 第 16 节 [OPENID-CONNECT-CORE] 中描述的所有 安全考量均适用于本规范。
本节为非规范性内容。
本节需要完成。