LWS 1.0 認証スイート: 制御識別子を用いた自己署名アイデンティティ

W3C 作業草案

この文書に関する詳細
このバージョン:
https://www.w3.org/TR/2026/WD-lws10-authn-ssi-cid-20260821/
最新公開バージョン:
https://www.w3.org/TR/lws10-authn-ssi-cid/
最新編集者草案:
https://w3c.github.io/lws-protocol/lws10-authn-ssi-cid/
履歴:
https://www.w3.org/standards/history/lws10-authn-ssi-cid/
コミット履歴
編集者:
Jesse Wright (オックスフォード大学)
著者:
Aaron Coburn (Inrupt Inc.)
フィードバック:
GitHub w3c/lws-protocol (プルリクエスト, 新しい課題, 未解決の課題)

要約

この文書は、Linked Web Storage (LWS) プロトコルのための認証スイートを定義し、クライアントが 自身のアイデンティティ・トークンに署名できる場合に LWS と統合できるようにします。

この文書のステータス

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

これは非公式提案です。

この文書は、Linked Web Storage ワーキング グループにより、 勧告 トラックを用いて作業草案として公開されました。

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

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

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

この文書は、 2025年8月18日付 W3C プロセス文書に従います。

1. 序論

自己発行アイデンティティは、アプリケーションが自身の代理として動作する場合に重要です。これには、 自律的なボットやサーバーサイドのスクリプトなどが含まれます。 これらの場合、エージェントは 鍵ペアの秘密部分を安全に管理でき、それを使用して署名付き JSON Web Token (JWT) を生成します。 この仕様は、この種の エージェントが、Linked Web Storage で使用できる 認証クレデンシャルを どのように生成できるかを説明します。

2. 適合性

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

この文書におけるキーワード MAYMUST、および MUST NOT は、 ここに示されるようにすべて大文字で現れる場合にのみ、 BCP 14 [RFC2119] [RFC8174] に記述されているとおりに解釈されます。

3. 用語

「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] によって定義されます。

エージェント」、 「認証 クレデンシャル」、および「認証 スイート」という用語は、Linked Web Storage Protocol [LWS10-CORE] によって定義されます

4. 認証クレデンシャルの 直列化

自己発行の 認証クレデンシャルは、 署名付き JSON Web Token (JWT) として直列化されます。JWT を LWS の 認証クレデンシャルとして使用するには、 以下の追加要件が適用されます。

JWT は署名アルゴリズムとして "none" を使用してはなりません

JWT は、LWS サブジェクト 識別子に sub (subject) クレームを使用しなければなりません

JWT は、LWS 発行者識別子に iss (issuer) クレームを使用しなければなりません

JWT は、LWS クライアント 識別子に client_id (client ID) クレームを使用しなければなりません

クレーム subiss、および client_id はすべて、 同じ URI 値を使用しなければなりません

ID Token における任意のオーディエンス制限は、aud (audience) クレームを使用しなければなりませんaud クレームは、対象の認可サーバーを 含まなければなりません

JWT は、トークンの有効期限を示す exp (expiration) クレームを 含まなければなりません

JWT は、トークンが発行された時刻を示す 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

5. 認証クレデンシャルの 検証

JWT を LWS 認証クレデンシャルとして検証するには、 検証者と発行者との間に信頼関係が存在していなければなりません。

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

検証者は、"none" に等しい alg ヘッダーパラメーターを使用するいかなるトークンも 拒否しなければなりません

検証者は、認証クレデンシャル データモデルによって記述されるすべてのクレームを検証しなければなりません

検証者は、署名付き JWT ヘッダーの kid (key id) 値を使用して、サブジェクトの controlled identifier document から検証方法を識別しなければ なりません。 この処理は [CID-1.0] セクション 3.3 に記述されています。 controlled identifier document から選択された検証方法を使用して、JWT の署名は [RFC7515] セクション 5.2 に記述されているとおりに 検証されなければなりません

検証者は、現在時刻が exp クレームによって表される時刻より前であることを保証しなければなりません。 実装者は、クロックのずれを考慮して、ある程度の小さな余裕を設けてもかまいません

Controlled Identifier Document の例を以下に示します。

{
    "@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"
        }
    }]
}

6. トークン型識別子

認証クレデンシャルとして使用される 自己発行 JSON Web Token は、認可サーバーとやり取りする際に urn:ietf:params:oauth:token-type:jwt URI を使用しなければなりません

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

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

Linked Web Storage Protocol [LWS10-CORE] における認可は OAuth フレームワークに基づいているため、この認証スイートは OAuth フレームワーク内で適用される。 したがって、「OAuth 2.0 セキュリティのための現行のベストプラクティス」[RFC9700] および「OpenID Connect Core 1.0」第 16 節 [OPENID-CONNECT-CORE] に記載されているすべてのセキュリティ上の考慮事項が、 この仕様に適用される。

8. プライバシー考慮事項

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

自己発行の認証クレデンシャルは、 永続的かつグローバルに一意であるサブジェクト識別子を 使用します。subiss、およびclient_idクレームはすべて同じ URI 値を共有するため、 検証者とストレージサーバーは、特定のエージェントによるすべての活動を セッションやリソースをまたいで関連付けることができます。

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

制御対象識別子文書には検証に使用される公開鍵マテリアルが含まれているため、 その文書のホスティングサーバーは、どの鍵が実際に使用されているかを観察できる 立場にあります。より強力なプライバシー 保証を必要とするエージェントには、自身が制御する インフラストラクチャ上で制御対象識別子文書をホストすることが推奨されます。

ストレージサーバーまたは認可サーバーに提示された自己発行トークンは、 それらの当事者によって読み取られる可能性があります。送信中の認証 クレデンシャルを保護するには、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. FPWD. URL: https://www.w3.org/TR/lws10-core/
[RFC2119]
要求レベルを示すためにRFCで使用する キーワード. S. Bradner. IETF. 1997年3月. 現行の最良慣行. URL: https://www.rfc-editor.org/info/rfc2119/
[RFC6749]
OAuth 2.0認可 フレームワーク. D. Hardt, Ed. IETF. 2012年10月. 標準化への提唱. URL: https://www.rfc-editor.org/info/rfc6749/
[RFC7515]
JSON Web署名(JWS). M. Jones; J. Bradley; N. Sakimura. IETF. 2015年5月. 標準化への提唱. URL: https://www.rfc-editor.org/info/rfc7515/
[RFC7519]
JSON Webトークン(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 参考情報としての参考文献

[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
[RFC9700]
OAuth 2.0セキュリティの現行の 最良慣行. T. Lodderstedt; J. Bradley; A. Labunets; D. Fett. IETF. 2025年1月. 現行の最良慣行. URL: https://www.rfc-editor.org/info/rfc9700/