LWS 1.0 认证套件:OpenID Connect

W3C 工作草案

关于本文档的更多详细信息
此版本:
https://www.w3.org/TR/2026/WD-lws10-authn-openid-20260609/
最新发布版本:
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. 隐私考虑

本节为非规范性内容。

Issue 119:向认证套件添加隐私考虑 章节

本节仍需完成。

A. 引用文献

A.1 规范性引用

[CID-1.0]
Controlled Identifiers v1.0. Michael Jones; Manu Sporny. W3C. 2025年5月15日. W3C 推荐标准. URL: https://www.w3.org/TR/cid-1.0/
[LWS10-CORE]
Linked Web Storage Protocol 1.0. W3C. FPWD. URL: 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日. 最终版. URL: 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日. 最终版. URL: https://openid.net/specs/openid-connect-discovery-1_0.html
[RFC2119]
RFC 中用于表示 要求级别的关键词. S. Bradner. IETF. 1997年3月. 最佳现行实践. URL: https://www.rfc-editor.org/rfc/rfc2119
[RFC6749]
OAuth 2.0 授权 框架. D. Hardt, Ed. IETF. 2012年10月. 拟议标准. URL: https://www.rfc-editor.org/rfc/rfc6749
[RFC7517]
JSON Web Key (JWK). M. Jones. IETF. 2015年5月. 拟议标准. URL: https://www.rfc-editor.org/rfc/rfc7517
[RFC7519]
JSON Web Token (JWT). M. Jones; J. Bradley; N. Sakimura. IETF. 2015年5月. 拟议标准. URL: https://www.rfc-editor.org/rfc/rfc7519
[RFC8174]
RFC 2119 关键词中大写与小写的歧义. B. Leiba. IETF. 2017年5月. 最佳现行实践. URL: https://www.rfc-editor.org/rfc/rfc8174

A.2 资料性引用

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