LWS 1.0 认证套件:OpenID Connect

W3C 工作草案

关于本文档的更多详细信息
此版本:
https://www.w3.org/TR/2026/WD-lws10-authn-openid-20260803/
最新发布版本:
https://www.w3.org/TR/lws10-authn-openid/
最新编辑草案:
https://w3c.github.io/lws-protocol/lws10-authn-openid/
历史:
https://www.w3.org/standards/history/lws10-authn-openid/
提交历史
编辑:
Jesse Wright牛津大学
作者:
Aaron CoburnInrupt Inc.
反馈:
GitHub w3c/lws-protocol拉取请求新建议题未解决议题

摘要

本文档定义了一个基于 OpenID Connect 的认证套件,用于 Linked Web Storage (LWS) 协议,使 LWS 应用能够与 OpenID 提供方集成。

本文档状态

本节描述了本文档在发布时的状态。当前 W3C 出版物列表以及本技术报告的最新修订版可在 W3C 标准与草案 索引中找到。

这是一项非官方提案。

本文档由 Linked Web Storage 工作 组作为 工作草案发布,并采用 推荐标准 轨道

作为 工作草案发布并不意味着 W3C 及其成员认可。

这是一份草案文档,可能会在任何时候被其他 文档更新、替换或废弃。除作为 进行中的工作外,不宜引用本文档。

本文档由一个在 W3C 专利 政策下运作的组制作。 W3C 维护了一份 任何专利披露的公开列表, 这些披露与该组的交付成果有关; 该页面还包含 披露专利的说明。实际 知悉某项专利且认为该专利包含 必要权利要求的个人 必须依照 W3C 专利政策第 6 节披露相关信息。

本文档受 2025年8月18日 W3C 流程文档管辖。

1. 简介

OpenID Connect 是一种广泛使用的基于 Web 的认证机制。本认证套件描述了 OpenID 提供方如何与符合 Linked Web Storage 的应用结合使用。

2. 一致性

除了标记为非规范性的章节外,本规范中的所有编写指南、图示、示例和注释均为非规范性。 本规范中的其他所有内容均为规范性。

本文档中的关键词 MUSTMUST NOTSHOULD 应按 BCP 14 [RFC2119] [RFC8174] 中所述进行解释,但仅当它们像这里所示那样全部 大写出现时才如此。

3. 术语

术语“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] 定义

4. 认证凭据 序列化

OpenID Connect 定义了一种用于生成已签名 ID Token 的协议,这些 ID Token 用于描述终端用户。 ID Token 被序列化为已签名的 JSON Web Token (JWT)。为了将 ID Token 用作 LWS 认证凭据, 适用以下附加要求。

下面包含一个同时也是 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

5. 认证凭据 验证

为了使 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"
    }]
}

6. 令牌类型标识符

用作 认证凭据的 ID Token 在与授权服务器交互时 MUST 使用 urn:ietf:params:oauth:token-type:id_token URI。

7. 安全考虑

本节为非规范性内容。

“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] 作为认证用户的机制。

8. 隐私考虑

本节为非规范性内容。

“OpenID Connect Core 1.0”第 17 节 [OPENID-CONNECT-CORE] 中所述的所有隐私注意事项均适用于 本规范。

用作身份验证凭据的 ID Token 可能 包含会泄露最终用户个人身份信息的声明,例如电子邮件地址、 姓名或其他个人资料属性。建议 OpenID 提供方签发仅包含 LWS 身份验证所必需声明的 ID Token——具体而言,即 subissazpaud 声明—— 并避免包含其他身份属性,除非明确要求。

由于 sub(主体)声明用作 LWS 主体标识符,并且 可在验证期间对其进行解引用,因此主体标识符的选择会产生隐私 影响。持久且全局唯一的主体标识符使验证方和 存储服务器能够关联最终用户跨会话和资源的活动。 支持成对主体标识符的 OpenID 提供方(如 [OPENID-CONNECT-CORE] 第 8 节中所述)可以降低跨提供方 关联的可能性,但 LWS 验证模型要求主体标识符 能够解析为受控标识符文档。

验证过程要求对主体标识符进行解引用,以检索 受控标识符文档。此解引用操作可能会向该文档的托管 服务器泄露哪些验证方正在验证给定主体的凭据, 包括访问的时间和频率。建议验证方缓存受控 标识符文档,以减少不必要的网络请求及相关的元数据 泄露。

客户端和依赖方应注意,提交给存储 服务器或授权服务器的 ID Token 可被这些参与方读取。受众限制 (通过 aud 声明)限制令牌的预期接收方,但 无法阻止中间方读取传输中的令牌内容。 使用 TLS 对于保护传输过程中的身份验证凭据至关重要。

A. 引用文献

A.1 规范性引用

[CID-1.0]
受控标识符 v1.0。Michael Jones;Manu Sporny。W3C。2025 年 5 月 15 日。W3C 推荐标准。网址:https://www.w3.org/TR/cid-1.0/
[LWS10-CORE]
关联 Web 存储协议 1.0。W3C。 FPWD。网址:https://www.w3.org/TR/lws10-core/
[OPENID-CONNECT-CORE]
纳入勘误集 2 的 OpenID Connect Core 1.0 。N. Sakimura;J. Bradley;M. Jones;B. de Medeiros;C. Mortimore。OpenID Foundation。2023 年 12 月 15 日。最终版。网址:https://openid.net/specs/openid-connect-core-1_0.html
[OPENID-CONNECT-DISCOVERY]
纳入勘误集 2 的 OpenID Connect Discovery 1.0。N. Sakimura;J. Bradley;M. Jones;E. Jay。OpenID Foundation。2023 年 12 月 15 日。最终版。网址:https://openid.net/specs/openid-connect-discovery-1_0.html
[RFC2119]
用于在 RFC 中指示 要求级别的关键词。S. Bradner。IETF。1997 年 3 月。当前最佳实践。网址:https://www.rfc-editor.org/info/rfc2119/
[RFC6749]
OAuth 2.0 授权 框架。D. Hardt,编。IETF。2012 年 10 月。提议标准。网址:https://www.rfc-editor.org/info/rfc6749/
[RFC7517]
JSON Web 密钥(JWK)。M. Jones。 IETF。2015 年 5 月。提议标准。网址:https://www.rfc-editor.org/info/rfc7517/
[RFC7519]
JSON Web 令牌(JWT)。M. Jones; J. Bradley;N. Sakimura。IETF。2015 年 5 月。提议标准。网址:https://www.rfc-editor.org/info/rfc7519/
[RFC8174]
RFC 2119 关键词中大写与小写的 歧义。B. Leiba。IETF。2017 年 5 月。当前最佳实践。网址:https://www.rfc-editor.org/info/rfc8174/

A.2 资料性引用

[RFC8693]
OAuth 2.0 令牌交换。M. Jones;A. Nadalin;B. Campbell,编;J. Bradley;C. Mortimore。IETF。2020 年 1 月。提议 标准。网址:https://www.rfc-editor.org/info/rfc8693/
[RFC8707]
OAuth 2.0 的资源指示符。B. Campbell;J. Bradley;H. Tschofenig。IETF。2020 年 2 月。提议 标准。网址:https://www.rfc-editor.org/info/rfc8707/
[RFC9207]
OAuth 2.0 授权服务器签发方 标识。K. Meyer zu Selhausen;D. Fett。IETF。2022 年 3 月。提议 标准。网址:https://www.rfc-editor.org/info/rfc9207/
[RFC9700]
OAuth 2.0 安全当前最佳实践。T. Lodderstedt;J. Bradley;A. Labunets;D. Fett。IETF。2025 年 1 月。 当前最佳实践。网址:https://www.rfc-editor.org/info/rfc9700/
[WEBAUTHN-3]
Web 身份验证:用于访问公钥 凭据的 API——第 3 级。Akshay Kumar;Emil Lundberg;Tim Cappalli;Nina Satragno;Matthew Miller;ㅤ Pascoe。W3C。2026 年 5 月 26 日。W3C 候选推荐标准。网址:https://www.w3.org/TR/webauthn-3/