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 Coburn (Inrupt Inc.)
フィードバック:
GitHub w3c/lws-protocol (プルリクエスト, 新しい Issue, 未解決の Issue)

概要

この文書は、Linked Web Storage (LWS) プロトコルのための OpenID Connect ベースの認証スイートを定義し、LWS アプリケーションが OpenID プロバイダーと統合できるようにします。

この文書のステータス

このセクションでは、この文書の公開時点におけるステータスを説明します。現在の W3C 公開物の一覧と、この技術報告書の最新版は W3C 標準および草案 インデックスで確認できます。

これは非公式の提案です。

この文書は、Linked Web Storage Working Group により、 勧告 トラックを用いて作業草案として公開されました。

作業草案としての公開は、 W3C およびそのメンバーによる承認を 意味するものではありません。

これは草案文書であり、いつでも他の文書によって更新、置換、または廃止される可能性があります。この文書を 作業中の文書以外のものとして引用することは適切ではありません。

この文書は、 W3C 特許 ポリシーの下で運営されるグループによって作成されました。 W3C は、 このグループの成果物に関連して行われた 特許開示の公開リストを管理しています。 そのページには、特許を開示するための 手順も含まれています。ある個人が、当該個人の考えるところでは 必須クレームを含む 特許について実際の知識を有する場合、その個人は W3C 特許ポリシーのセクション 6に従って その情報を開示しなければなりません。

この文書は、 2025年8月18日版 W3C プロセス文書に準拠します。

1. はじめに

OpenID Connect は、Web ベースの認証に広く使用されている仕組みです。この認証スイートは、 OpenID プロバイダーを Linked Web Storage 準拠アプリケーションでどのように使用できるかを説明します。

2. 適合性

非規範的と明記されたセクションに加えて、この仕様に含まれるすべての作成ガイドライン、図、例、および注記は 非規範的です。この仕様に含まれるそれ以外のすべては規範的です。

この文書におけるキーワード MUSTMUST NOT、および SHOULD は、 ここに示すようにすべて大文字で出現する場合に限り、 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 は、署名付き JSON Web Token (JWT) としてシリアル化されます。ID Token を LWS の authentication credential として使用するには、次の追加要件が適用されます。

LWS の authentication credential でもある 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 の authentication credential として検証されるためには、検証者と発行者の間に信頼関係が存在しなければなりません。

既存の信頼関係がない場合、検証者は authentication credential 内の sub (subject) クレームを逆参照しなければなりません。 その結果得られるリソースは、サブジェクト識別子と等しい id 値を持つ、 有効な controlled identifier document [CID-1.0] として整形されていなければ なりません

検証者は、サブジェクトの controlled identifier document を使用して、 serviceEndpoint 値が authentication credentialiss クレームの値に等しく、かつ type 値が https://www.w3.org/ns/lws#OpenIdProvider に等しい service オブジェクトを見つけなければ なりません。 検証者は、authentication credential に署名するために使用された JSON Web Key (JWK) の公開部分を特定するため、 OpenID Connect Discovery を実行しなければなりません。 JWT は、OpenID Connect Core Section 3.1.3.7 [OPENID-CONNECT-CORE] に記述されているとおりに検証されなければなりません

OpenID Connect を使用する agent の Controlled Identifier Document の例を以下に示します。

{
    "@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. トークンタイプ識別子

authentication credential として使用される ID Token は、 認可サーバーとやり取りする際に、urn:ietf:params:oauth:token-type:id_token URI を使用しなければ なりません

7. セキュリティの考慮事項

このセクションは非規範的です。

「Best Current Practice for OAuth 2.0 Security」[RFC9700] および「OpenID Connect Core 1.0」Section 16 [OPENID-CONNECT-CORE] に記述されている すべてのセキュリティ考慮事項が、この仕様に適用されます。

OpenID プロバイダーは、authentication credential の オーディエンスを、認可サーバーを含む限定されたエンティティ集合に制限する仕組みをサポートすべきです。 これを実現する一つの仕組みは、Resource Indicators for OAuth 2.0 [RFC8707] を使用することです。 オーディエンス制限のない authentication credential を保持するクライアントは、たとえば OAuth 2.0 Token Exchange [RFC8693] を使用して、 このトークンを同等のオーディエンス制限付きトークンと交換すべきです。

OpenID プロバイダーは、OAuth フローの認可レスポンスに iss パラメーターを含めることにより、 「OAuth 2.0 Authorization Server Issuer Identification」 [RFC9207] のサポートを提供すべきです。

OpenID プロバイダーは、RP-Initiated Logout 1.0 など、エンドユーザーのログアウトをサポートすべきです。

authentication credential の発行者は、 クライアント識別子を検証する責任を負います。 発行者は、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認証に必要なクレームのみ、具体的には subissazp、およびaudクレームを含むID Tokenを発行し、 明示的に必要とされない限り、追加の識別属性を含めないことが推奨されます。

sub(サブジェクト)クレームはLWSサブジェクト識別子として使用され、 検証中に参照解決される可能性があるため、サブジェクト識別子の選択にはプライバシー上の 影響があります。永続的でグローバルに一意なサブジェクト識別子により、検証者と ストレージサーバーは、セッションやリソースをまたいでエンドユーザーの活動を関連付けることができます。 ([OPENID-CONNECT-CORE] の第 8節に記載されている)ペアワイズサブジェクト識別子をサポートするOpenIDプロバイダーは、 プロバイダー間の相関の可能性を低減できますが、LWS検証モデルではサブジェクト識別子が 制御識別子文書へ解決される必要があります。

検証プロセスでは、制御識別子文書を取得するためにサブジェクト識別子を 参照解決する必要があります。この参照解決操作により、その文書のホスティング サーバーに対して、特定のサブジェクトの資格情報をどの検証者が検証しているかが、 アクセスの時刻や頻度を含めて明らかになる可能性があります。検証者には、不要なネットワーク要求と、 それに伴うメタデータ漏洩を減らすため、制御識別子文書をキャッシュすることが 推奨されます。

クライアントおよびリライングパーティは、ストレージサーバーまたは認可 サーバーに提示されたID Tokenが、それらの当事者によって読み取られる可能性があることに注意する必要があります。オーディエンス制限 (audクレームによる)は、トークンが意図されている当事者を制限しますが、 転送中に仲介者がトークンの内容を読み取ることを防ぐものではありません。 TLSの使用は、送信中の認証資格情報を保護するために不可欠です。

A. 参考文献

A.1 規範的参考文献

[CID-1.0]
制御識別子 v1.0. Michael Jones; Manu Sporny. W3C. 2025年5月15日. W3C勧告. URL: https://www.w3.org/TR/cid-1.0/
[LWS10-CORE]
リンクされたWebストレージプロトコル 1.0. W3C. 初回公開作業草案. 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/info/rfc2119/
[RFC6749]
OAuth 2.0認可 フレームワーク. D. Hardt, 編. IETF. 2012年10月. 提案標準. URL: https://www.rfc-editor.org/info/rfc6749/
[RFC7517]
JSON Web Key (JWK). M. Jones. IETF. 2015年5月. 提案標準. URL: https://www.rfc-editor.org/info/rfc7517/
[RFC7519]
JSON Web Token (JWT). M. Jones; J. Bradley; N. Sakimura. IETF. 2015年5月. 提案標準. URL: https://www.rfc-editor.org/info/rfc7519/
[RFC8174]
RFC 2119のキーワードにおける大文字と小文字の 曖昧さ. B. Leiba. IETF. 2017年5月. 現行のベストプラクティス. URL: 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月. 提案 標準. URL: https://www.rfc-editor.org/info/rfc8693/
[RFC8707]
OAuth 2.0のリソースインジケーター. B. Campbell; J. Bradley; H. Tschofenig. IETF. 2020年2月. 提案 標準. URL: https://www.rfc-editor.org/info/rfc8707/
[RFC9207]
OAuth 2.0認可サーバーの発行者 識別. K. Meyer zu Selhausen; D. Fett. IETF. 2022年3月. 提案 標準. URL: https://www.rfc-editor.org/info/rfc9207/
[RFC9700]
OAuth 2.0 セキュリティの現行のベストプラクティス. T. Lodderstedt; J. Bradley; A. Labunets; D. Fett. IETF. 2025年1月. 現行のベストプラクティス. URL: 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勧告候補. URL: https://www.w3.org/TR/webauthn-3/