Copyright © 2026 World Wide Web Consortium. W3C® liability, trademark and permissive document license rules apply.
本文档定义了一个基于 OpenID Connect 的认证套件,用于 Linked Web Storage (LWS) 协议,使 LWS 应用能够与 OpenID 提供方集成。
本节描述了本文档在发布时的状态。当前 W3C 出版物列表以及本技术报告的最新修订版可在 W3C 标准与草案 索引中找到。
这是一项非官方提案。
本文档由 Linked Web Storage 工作 组作为 工作草案发布,并采用 推荐标准 轨道。
作为 工作草案发布并不意味着 W3C 及其成员认可。
这是一份草案文档,可能会在任何时候被其他 文档更新、替换或废弃。除作为 进行中的工作外,不宜引用本文档。
本文档由一个在 W3C 专利 政策下运作的组制作。 W3C 维护了一份 任何专利披露的公开列表, 这些披露与该组的交付成果有关; 该页面还包含 披露专利的说明。实际 知悉某项专利且认为该专利包含 必要权利要求的个人 必须依照 W3C 专利政策第 6 节披露相关信息。
本文档受 2025年8月18日 W3C 流程文档管辖。
OpenID Connect 是一种广泛使用的基于 Web 的认证机制。本认证套件描述了 OpenID 提供方如何与符合 Linked Web Storage 的应用结合使用。
除了标记为非规范性的章节外,本规范中的所有编写指南、图示、示例和注释均为非规范性。 本规范中的其他所有内容均为规范性。
本文档中的关键词 MUST、MUST NOT 和 SHOULD 应按 BCP 14 [RFC2119] [RFC8174] 中所述进行解释,但仅当它们像这里所示那样全部 大写出现时才如此。
术语“authorization server”和“client”由 The OAuth 2.0 Authorization Framework [RFC6749] 定义。
术语“OpenID provider”、“id token”、“end-user”和“issuer”由 OpenID Connect Core 1.0 [OPENID-CONNECT-CORE] 定义。
术语“openid connect discovery”由 OpenID Connect Discovery 1.0 [OPENID-CONNECT-DISCOVERY] 定义。
术语“controlled identifier document”由 W3C Controlled Identifiers 1.0 [CID-1.0] 定义。
术语“JSON Web Token (JWT)”和“claim”由 JSON Web Token [RFC7519] 定义。
术语“JSON Web Key (JWK)”由 JSON Web Key [RFC7517] 定义。
术语“agent”、“authentication credential”和“authentication suite”由 Linked Web Storage Protocol [LWS10-CORE] 定义
OpenID Connect 定义了一种用于生成已签名 ID Token 的协议,这些 ID Token 用于描述终端用户。 ID Token 被序列化为已签名的 JSON Web Token (JWT)。为了将 ID Token 用作 LWS 认证凭据, 适用以下附加要求。
sub(subject)声明作为 LWS 主体
标识符。
iss(issuer)声明作为 LWS 发行方
标识符。
azp(authorized party)声明作为 LWS
客户端标识符。
aud
(audience)声明。
aud 声明 SHOULD 包含客户端标识符以及任何
附加目标
受众,例如授权服务器。
下面包含一个同时也是 LWS 认证凭据的 ID Token 示例。
{
"typ": "JWT",
"kid": "12dbe73a",
"kty": "EC",
"alg": "ES256",
"crv": "P-256"
}
.
{
"sub": "https://id.example/end-user",
"iss": "https://openid.example",
"azp": "https://client.example/17da1b",
"aud": ["https://client.example/17da1b", "https://as.example"],
"iat": 1761313600,
"exp": 1761313900
}
.
signature
为了使 ID Token 作为 LWS 认证凭据通过验证, 验证方与发行方之间必须存在信任关系。
在没有预先存在的信任关系时,验证器 MUST 解引用
认证凭据中的
sub(subject)声明。
所得到的资源 MUST 被格式化为有效的受控标识符文档
[CID-1.0],且其 id 值等于
主体标识符。
验证方 MUST 使用主体的受控标识符文档来定位一个
服务对象,其 serviceEndpoint 值
等于 认证凭据中的
iss 声明值,
且其 type 值等于 https://www.w3.org/ns/lws#OpenIdProvider。
验证方 MUST 执行 OpenID Connect Discovery,以定位用于签署该
认证凭据的
JSON Web Key (JWK) 的公开部分。
JWT MUST 按 OpenID Connect Core 第 3.1.3.7 节
[OPENID-CONNECT-CORE] 所述进行验证。
下面包含一个使用 OpenID Connect 的 agent 的受控标识符文档示例。
{
"@context": [
"https://www.w3.org/ns/cid/v1"
],
"id": "https://id.example/end-user",
"service": [{
"type": "https://www.w3.org/ns/lws#OpenIdProvider",
"serviceEndpoint": "https://openid.example"
}]
}
用作 认证凭据的
ID Token
在与授权服务器交互时 MUST 使用
urn:ietf:params:oauth:token-type:id_token URI。
本节为非规范性内容。
“Best Current Practice for OAuth 2.0 Security”[RFC9700] 以及 “OpenID Connect Core 1.0”第 16 节 [OPENID-CONNECT-CORE] 中描述的 所有安全考虑均适用于本规范。
OpenID 提供方应支持一种机制,用于将 认证凭据的受众限制为 一组有限的实体,包括授权服务器。 实现这一点的一种机制是使用 Resource Indicators for OAuth 2.0 [RFC8707]。 持有无受众限制的 认证凭据的客户端 应通过使用例如 OAuth 2.0 Token Exchange [RFC8693], 将该令牌交换为等效的、受众受限的令牌。
OpenID 提供方应通过在 OAuth 流程的授权响应中包含
iss 参数,来支持 “OAuth 2.0 Authorization Server Issuer Identification”
[RFC9207]。
OpenID 提供方应提供对终端用户登出的支持,例如 RP-Initiated Logout 1.0。
认证凭据的发行方 负责验证客户端标识符。 发行方可使用 OAuth Client ID Metadata Document、OAuth 2.0 Client ID Prefix 或 OpenID Federation 等机制。
建议 OpenID 提供方支持 WebAuthn [WEBAUTHN-3] 作为认证用户的机制。
本节为非规范性内容。
本节仍需完成。