因為瀏覽器都已經支援FIDO2身分驗證,所以前一段時間,我嘗試了自己寫了一個兩階段證驗的網頁程式(2FA),而最近則在學習無密碼登入,所以依網路範例寫了一個能用指紋來登入的測試網頁。
但是PC端是沒有辦法測試指紋,也不會為了測試而去買指紋辨識器,所以每次在PC端修改完要測試時,就需要把網頁上傳到伺服器上並且用手機開啟網頁來測試。
有次在網路上看到微軟的一篇文章有提到可以用Edge來模擬webauthn,網址如下:
https://docs.microsoft.com/en-us/microsoft-edge/devtools-guide-chromium/webauthn/
我的部份程式如下,紅框的區塊就是設定使用指紋的功能
在Edge按下F12,打開DevTools(開發人員工具),再點選「…」的「更多工具」,把webauthn的功能頁打開
開啟webauth功能頁後,勾選「啟用虛擬驗證程式環境設定」,並且設定一個新的驗證器
傳輸有四個選項
usb:removable USB.
nfc:Near Field Communication (NFC).
ble:Bluetooth Smart (Bluetooth Low Energy / BLE).
internal:a client device-specific transport, i.e., it is a platform authenticator.
因為我要模擬指紋辨識,所以選擇「internal」
新增完成後,一開始是沒有任何認證的,如下圖
接著把我的webauthn測試頁網載入,就程式需要指紋辨識時,就會產生了一個認證,這樣程式就可以取得模擬的指紋資料,就不必再用手機來測試了
還可以把認證移除或匯出,以利後續驗證使用。因為程式讀取到指紋後,會登錄到資料庫中,之後就可以判斷指紋的正確性。