1. 序論
◎非規範的~client側の~password管理~softwareは、 認証を要求する~web~siteの[ ~security, 利用能 ]どちらも改善することを助ける — それは ⇒# 非同一-~site~passwordの再利用を抑制することにより,~securityを改善する。 ~autofill機能性を供することにより,利用能を増強する。 ◎ Client-side password management software helps improve both the security and usability of websites which require authentication. It improves security by reducing cross-site password reuse, and enhances usability by providing autofill functionality.
現在、 各~siteは[ 利用者が自身の~passwordをどこで`変更できる^emか ]を~program的に広告するための仕方を欠如している。 この仕様は、[ ~passwordを変更するための`周知な~URL$ `WELL-KNOWN$r ]を提案する — それにより,~password管理器に次を可能化する ⇒ それを~supportする~site上で[ 利用者が自身の~passwordを変更する ]ことを助ける。 ◎ Sites currently lack a way to programmatically advertise where a user can change their password. By proposing a well-known URL for changing passwords, this specification enables password managers to help users change their passwords on sites which support it.
2. 基盤
この仕様は、 `INFRA$r に依存する。 ◎ This specification depends on the Infra Standard. [INFRA]
この仕様は、 次に挙げる仕様による各種用語を利用する ⇒ `FETCH$r, `HTML$r, `HTTP-SEMANTICS$r, `URL$r ◎ This specification uses terminology from the Fetch, HTML, HTTP, and URL standards. [FETCH] [HTML] [HTTP-SEMANTICS] [URL]
3. ~change-password~URL
`生成元$の `~change-password~URL@ ( `change-password URL^en )は、[ 次を発見するために~clientが利用できる資源 ]を指す~URLである ⇒ 当の`生成元$において[ 利用者が自身の~passwordを更新する ]ためには、 どこへ行くべきか ◎ A change password url of an origin is a URL that points to a resource that clients can use to discover where a user should go to update their password on origin.
~clientは, `~change-password~URLを生成する@ ときは、 所与の ( `生成元$ %生成元 ) に対し,次の手続きを走らす: ◎ Given an origin, clients generate a change password url by running these steps:
- ~IF[ %生成元 は`信用に価し得る生成元$でない ] ⇒ ~RET `失敗^i ◎ If origin is not a potentially trustworthy origin, return failure.
- ~Assert: %生成元 は`成分組~生成元$である。 ◎ Assert: origin is a tuple origin.
- ~RET 新たな`~URL$ — その ⇒# `~scheme$url ~SET %生成元 の`~scheme$o `~host$url ~SET %生成元 の`~host$o `~port$url ~SET %生成元 の`~port$o `~path$url ~SET « `.well-known^l, `change-password^l » ◎ Let url be a new URL with values set as follows: ◎ scheme • origin’s scheme ◎ host • origin’s host ◎ port • origin’s port ◎ path • « ".well-known", "change-password" ». ◎ Return url.
例えば、 生成元 `https://example.com/^l 用の~change-password~URLは ⇒ `https://example.com/.well-known/change-password^l ◎ The change password url for origin "https://example.com/" is "https://example.com/.well-known/change-password".
~serverは、[ `生成元$の`~change-password~URL$用の`~HTTP要請$ ]を[ 利用者が自身の~passwordを変更できる実際の~page ]へ~redirectするベキである — 対する`~HTTP応答$として[ ~redirect用の`状態s~code$[ `302$st / `303$st / `307$st ], 【実際の~pageを指す~URLを値にとる】 `Location$h ~header ]を伴うものを返すことにより 【!`FETCH$r, 】`HTTP-SEMANTICS$r 。 ~clientは、 `~change-password~URL$を要請するときは,そのような~redirectを取扱うモノトスル。 ◎ Servers should redirect HTTP requests for an origin’s change password url to the actual page on which users may change their password by returning a response with a redirect status of 302, 303, or 307, and a Location header. [FETCH] [HTTP-SEMANTICS] Clients must handle such redirects when requesting a change password url.
注記: 上の段落は、 一時的な~redirect用の`状態s~code$を利用するよう,~serverを制約する。 `課題 #13@~ISSUES/13$ を見よ。 ◎ Note: The above paragraph restricts servers to using temporary redirect codes. See Issue 13.
~serverは、 必要yなら,[ `~refresh$ast 状態にある `http-equiv$a ~pragma指令 ]を包含している~HTML文書で応答してもヨイ `HTML$r 。 ~clientは、 `~change-password~URL$を要請するときは, そのような~redirectを取扱うベキである。 ◎ If necessary, servers may respond with an HTML document containing an http-equiv pragma directive in the refresh state. [HTML] Clients should handle such redirects when requesting a change password url.
`WELL-KNOWN$r `§ 周知な~URIの適切な利用@~RFCx/rfc8615#section-1.1$に則り【~link先は無い(`課題 #26@~ISSUES/26$ )】、 ~serverは, 実際の~change-password~pageの所在を`~change-password~URL$にしてはナラナイ。 ~clientは、 `~change-password~URL$を要請するときは, `~ok状態s$を伴う対する応答を取扱うモノトスル。 ◎ Servers must not locate the actual change password page at the change password url, per RFC8615 §1.1 Appropriate Use of Well-Known URIs. Clients must handle ok status responses when requesting a change password url.
注記: 実装は、 `~change-password~URL$を表示するときには, `ToUnicode@https://www.unicode.org/reports/tr46/#ToUnicode$A を利用したいと求めることもあろう。 `IDNA$r ◎ Note: Implementations might want to use ToUnicode when displaying change password urls. [IDNA]
`RESPONSE-CODE-RELIABILITY$r による次の~algoを用立てる ⇒ `生成元の応答~状態s~codeの信頼性を~testする@https://w3c.github.io/webappsec-change-password-url/response-code-reliability.html#test-the-reliability-of-an-origins-response-status-codes$ ◎ Make use of test the reliability of an origin’s response status codes from [RESPONSE-CODE-RELIABILITY].
4. ~IANA考慮点
4.1. 周知な~URI: `change-password^c
この文書は、 `周知な~URL$【!.well-known ~URI】として, `change-password^c を定義する。 この登録は、 ~IANAによる[ 考査, 認可, 登録 ]用に次の[ `WELL-KNOWN$r にて定義された~template ]を利用して,~IESGへ提出されることになる: ◎ This document defines the “.well-known” URI change-password. This registration will be submitted to the IESG for review, approval, and registration with IANA using the template defined in [WELL-KNOWN] as follows:
- ~URI接尾辞 ⇒ `change-password^l ◎ URI suffix • change-password
- 変更~制御者 ⇒ ~W3C ◎ Change controller • W3C
- 仕様~文書 ⇒ この文書が関連な仕様である (`§ ~change-password~URL@#semantics$を見よ)。 ◎ Specification document(s) • This document is the relevant specification. (See § 3 Change Password URLs)
- 関係する情報 ⇒ 無い。 ◎ Related information: • None.
謝辞
この提案に~feedbackを寄せられた次の方々に: