1. 導入
この節は非規範的です。
WebAuthn Relying Party(RP)には現在、 パスキーをサポートしていること、 ユーザーがそのサービス用のパスキーを作成できる場所、およびそのサービス用の既存の パスキーを管理できる場所を、プログラムにより告知する方法がありません。パスキーは、 サインイン以外の追加機能、たとえば署名や暗号化にも使用できます。 パスキー固有のエンドポイントの集合を定義する well-known URL を提案することで、 この仕様は、WebAuthn クライアントおよびクレデンシャルマネージャー(認証器)が、 ユーザーにアカウント設定やヘルプページを探し回らせる代わりに、ワークフロー固有および 情報提供用のエンドポイントへ直接リンクできるようにします。
2. 基盤
この仕様は Infra Standard に依存します。[INFRA]
この仕様は Fetch、HTML、HTTP、および URL 標準の用語を使用します。[FETCH] [HTML] [HTTP-SEMANTICS] [URL]
3. パスキーエンドポイント URL
パスキーのサポートを告知し、かつ/またはパスキーの作成と管理のための直接エンドポイントを提供するために、
Relying Party は、[WELL-KNOWN] に従い、
文字列 .well-known/passkey-endpoints を https スキームおよび relying party identifier と連結して形成されるパスで、
JSON 文書をホストしなければなりません。リダイレクトを返してはなりません。
RP ID
"example.com" のパスキーエンドポイント URL は
"https://example.com/.well-known/passkey-endpoints" です。
3.1. サーバー応答
このコンテキストにおけるサーバーは、WebAuthn Relying Party(RP)であり、パスキーをサポートします。
成功応答は 200 OK HTTP ステータスコードを使用し、
application/json コンテンツタイプを用いて JSON オブジェクトを返さなければなりません。
返される JSON オブジェクトは、以下で定義されるメンバーのいずれを含んでもかまいません。
- enroll
-
この任意メンバーは、ユーザーアカウント用のパスキー作成ページへの直接 URL を含みます
- manage
-
この任意メンバーは、ユーザーアカウント用のパスキー管理ページへの直接 URL を含みます
- prfUsageDetails
-
この任意メンバーは、RP が WebAuthn Pseudo-Random Function Extension(PRF)をどのように使用するかを説明する情報ページへの URL を含みます。
HTTP / 1.1 200 OK Content-Type : application/json { "enroll" : "https://example.com/account/manage/passkeys/create" , "manage" : "https://example.com/account/manage/passkeys" , "prfUsageDetails" : "https://example.com/help/passkeys#encryption" }
空の JSON オブジェクトを返して、パスキーのサポートを示すことはできますが、特定のエンドポイントを告知しないこともできます。
3.2. クライアント処理
このコンテキストにおけるクライアントは、WebAuthn WebAuthn クライアントまたはクレデンシャルマネージャー(認証器)のいずれかです。
パスキーの relying party identifier が与えられた場合、次の手順を実行して パスキーエンドポイント URL を生成します:
-
url を、次のように値を設定した新しい
URLとします:- scheme
-
"https"
- host
-
そのパスキーの relying party identifier
- port
-
null
- path
-
« ".well-known", "passkey-endpoints" »。
-
url を返します。
RP ID
"example.com" のパスキー
エンドポイント URL は
"https://example.com/.well-known/passkey-endpoints" です。
4. WebAuthn クライアントおよびクレデンシャルマネージャーによる使用
この節は非規範的です。
enroll
パスキー登録は、通常、RP のビジネスロジックとセッションコンテキストによって駆動されます。ユーザーがパスワードで正常にサインインした後や、 パスワードリセットフローを経た後に発生することもあれば、ユーザーが専用の「パスキー作成」ページを訪問したときに発生することもあります。
これらのパスキー作成エントリーポイントは、アカウント設定やヘルプページの奥に埋もれていることが多いため、ユーザーにとって見つけにくい場合があります。
このメンバーが存在する場合の使用例:
-
クレデンシャルマネージャーは、特定のアカウントエントリに「パスキーアップグレードが利用可能」ボタンを表示し、 ユーザーを既定のブラウザーで RP のパスキー作成ページへ直接移動させることができます。
-
クレデンシャルマネージャーは、ユーザーがパスワードでサインインしたことを検出した後、 ユーザーに通知を表示することでパスキーアップグレードフローを提供でき、その通知がクリックされると、 ユーザーを既定のブラウザーで RP のパスキー作成ページへ直接移動させます。
-
WebAuthn クライアントは、ユーザーがパスワードでサインインしたことを検出した後、 ユーザーに通知を表示することでパスキーアップグレードフローを提供でき、その通知がクリックされると、 ユーザーを RP のパスキー作成ページへ直接移動させます。
manage
クレデンシャル管理はアカウント設定の奥に埋もれていることが多く、ユーザーにとって見つけにくい場合があります。
このメンバーが存在する場合、クレデンシャルマネージャーは RP のパスキー(または 一般的なクレデンシャル管理)ページへの直接リンクを表示できます。
prfUsageDetails
一部の Relying Party(RP)は、WebAuthn Pseudo-Random Function(PRF)Extension を使用して、ユーザーデータに署名したり暗号化したりします。パスキーは主に認証のために設計されているため、 ユーザーは、PRF 対応パスキーを削除すると保存データやその他の機能に影響する可能性があることに気づかない場合があります。
PRF を利用する RP は、認証を超えてパスキーがどのように使用されるか、および削除の影響を詳述する専用の情報ページを提供するべきです。
このページの URL は
prfUsageDetails キーの値であるべきです。
このメンバーが存在する場合、クレデンシャルマネージャーは、RP の情報ページへのリンクを含む警告を、パスキー削除 フロー中に表示するべきです。
5. IANA に関する 考慮事項
5.1.
passkey-endpoints well-known URI
この文書は、".well-known" URI passkey-endpoints を定義します。
この登録は、[WELL-KNOWN] で定義されるテンプレートを用いて、
IANA への登録のために、審査、承認、および登録を求めて IESG に提出されます。内容は次のとおりです:
- URI suffix
-
passkey-endpoints
- Change controller
-
W3C
- Specification document(s)
-
この文書が該当する仕様です。(§ 3.1 サーバー応答を参照)
- Related information:
-
なし。
謝辞
この提案に対してフィードバックを提供してくれた Arnar Birgisson、Rew Islam、Adam Langley、René Léveillé、Matthew Miller、Ricky Mondello、および Dan Veditz に感謝します。