Copyright © 2026 World Wide Web Consortium. W3C® liability, trademark and permissive document license rules apply.
この文書は、Linked Web Storage (LWS) プロトコルのための認証スイートを定義し、クライアントが 自身のアイデンティティ・トークンに署名できる場合に LWS と統合できるようにします。
このセクションは、この 文書の公開時点におけるステータスについて説明します。現在の W3C 公開物の一覧と、この技術報告書の最新リビジョンは、 W3C 標準および草案 インデックスで確認できます。
これは非公式提案です。
この文書は、Linked Web Storage ワーキング グループにより、 勧告 トラックを用いて作業草案として公開されました。
作業草案としての公開は、 W3C およびそのメンバーによる承認を 意味するものではありません。
これは草案文書であり、いつでも他の文書によって更新、置換、または廃止される可能性があります。 この文書を進行中の作業以外のものとして引用することは適切ではありません。
この文書は、 W3C 特許 ポリシーの下で運営されるグループによって作成されました。 W3C は、このグループの成果物に関連して行われた 特許開示の公開一覧を管理しています。 そのページには、特許を開示するための 手順も含まれています。ある個人が、その個人の考えでは 必須クレームを含む 特許について実際の知識を有している場合、その個人は W3C 特許ポリシーの第6節に従って その情報を開示しなければなりません。
この文書は、 2025年8月18日付 W3C プロセス文書に従います。
自己発行アイデンティティは、アプリケーションが自身の代理として動作する場合に重要です。これには、 自律的なボットやサーバーサイドのスクリプトなどが含まれます。 これらの場合、エージェントは 鍵ペアの秘密部分を安全に管理でき、それを使用して署名付き JSON Web Token (JWT) を生成します。 この仕様は、この種の エージェントが、Linked Web Storage で使用できる 認証クレデンシャルを どのように生成できるかを説明します。
非規範的であると明示されたセクションに加え、この 仕様におけるすべての作成ガイドライン、図、例、および注記は非規範的です。それ以外のすべては規範的です。
この文書におけるキーワード MAY、MUST、および MUST NOT は、 ここに示されるようにすべて大文字で現れる場合にのみ、 BCP 14 [RFC2119] [RFC8174] に記述されているとおりに解釈されます。
「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] によって定義されます
自己発行の 認証クレデンシャルは、 署名付き JSON Web Token (JWT) として直列化されます。JWT を LWS の 認証クレデンシャルとして使用するには、 以下の追加要件が適用されます。
JWT は署名アルゴリズムとして "none" を使用してはなりません。
JWT は、LWS サブジェクト
識別子に sub (subject) クレームを使用しなければなりません。
JWT は、LWS 発行者識別子に iss (issuer) クレームを使用しなければなりません。
JWT は、LWS クライアント
識別子に client_id (client ID) クレームを使用しなければなりません。
クレーム sub、iss、および 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
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"
}
}]
}
認証クレデンシャルとして使用される
自己発行 JSON Web Token は、認可サーバーとやり取りする際に
urn:ietf:params:oauth:token-type:jwt URI を使用しなければなりません。
このセクションは非規範的です。
「Best Current Practice for OAuth 2.0 Security」[RFC9700] および「OpenID Connect Core 1.0」セクション 16 [OPENID-CONNECT-CORE] に記述される すべてのセキュリティ考慮事項は、この仕様に適用されます。
このセクションは非規範的です。
このセクションは完成させる必要があります。