前幾個星期入手 YubiKey,花了點時間研究 WebAuthn / CTAP2 規格,從 .NET FIDO2 程式庫的 Passwordless 與 Usernameless 範例弄懂 WebAuthn 無密碼登入與 Passkey 的差異,最後我打算整理一個 ASP.NET Core 整合 Passkey 註冊與登入的精簡版範例專案,作為本次研究的結尾。

FIDO2 .NET Library 本身有提供範例專案,但是使用 Razor Page + MVC Controller,並同時包含 MFA、Passwordless、Passkey 等好幾種情境,我只打算針對 Passkey,使用 ASP.NET Miminal API、靜態 HTML/JavaScript 跟一個 Controller 處理必要的 WebAPI ,做為日後其他專案要整合 Passkey 登入的參考。

Passkey 註冊及登入展示

FIDO2 .NET Library 程式庫範例使用者資料及公鑰信物只存在記憶體,也沒有登入狀態,我做了一點小改良,資料改用 JSON 保存,以免程式結束實體金鑰裡的 Passkey 瞬間報廢,另外弄了個購物網站的登入狀態虛擬場景,方便觀察註冊、登入、登出的狀態差異。

專案原本只打算自己內用,不過既然花了時間整理,就放上 Github 讓有需要的同學多一份資料可參考。

My example project to integrate passkey login into ASP.NET Core web.


Comments

Be the first to post a comment

Post a comment