iPhone(iOS13)でパスワードレス(FIDO2)認証
ついに2019/12/11にリリースされた iOS 13.3 でパスワードレス(FIDO2)認証がサポートされました。
https://support.apple.com/ja-jp/HT210393#133
引用
このアップデートにはバグ修正とその他の改善も含まれています。このアップデートには以下が含まれます:
SafariにNFC、USB、LightningのFIDO2準拠のセキュリティキーへのサポートを追加
しかしNFC、USB、Lightningに限定され、BluetoothやTouch IDは含まれません。<惜しい!!
惜しいですが、まずはFIDO2がiOSのSafari上で動作するようになった事を素直に歓迎しつつ、試してみました。
※2020/06/22にiOS14でのFaceID、TouchIDへの対応が発表されました。iOS14betaがリリースされましたら、そちらについても検証します。
https://developer.apple.com/documentation/safari-release-notes/safari-14-beta-release-notes
OpenAM14のWebAuthn認証モジュールを呼ぶと以下のようなダイアログが表示されるようになりました。
「キーをiPhoneの上部に」というのがミソです。上部以外では反応しません。iOS 13.3 2019/12/11 時点の動作状況
早速というほどのスピードでは無いですが、手持ちのデバイスで試してみました。
(2020/04/09 Update)
※iPhone7 SIMフリー版 でテストしてます。
利用可能なブラウザ
今の所はSafariしか動作しないです。
Safari以外のブラウザは12/11より前のリリースなので、ある意味当然な事です。
以降にリリースされるバージョンに期待です。(2020/04/09 Update)
App | Ver. | 動作 |
---|---|---|
Safari | 13.x | ○ |
Chrome | 80.3987.95 | ☓ |
Firefox | 24.1 | ☓ |
動作を試した認証デバイス
接続方法はNFCかLightningです。
メーカー | モデル名 | 接続方法 |
---|---|---|
Yubico | Yubikey 5 NFC | NFC |
Yubico | Yubikey 5Ci | Lightning |
USB Titan Security Key | NFC | |
Feitian | AllinPass(K33) | NFC |
左から表の降順で、Yubikey5NFC, Yubikey5Ci, Google Titan, Allinpass | ||
試したFIDO2のオプション
residentKeyやuserVerificationなど登録、認証時のオプションについて試してみました。
userVerificationが使えないです。キーにPINが設定されていても、prefferedの場合は無視され動作し、requireの場合はPIN入力のダイアログが出ずにダンマリです。
※iOS14ではPIN入力もサポートされる予定です。
複数認証デバイス登録時の対応
RPサーバーに一人のユーザーで複数の認証デバイスを登録すると、OpenAM14ではデバイスは以下のような表示となります。
複数の認証デバイスが登録されていると、認証開始時にRPサーバーから登録されているCredentialIDを全て提示するのがWebAuthnですが、ちゃんとハンドリングできるかはクライアント側次第です。
で、これは動作しました。
ローカル認証に関する実装が無い感じを受けるのですが、いずれTouch ID/Face IDと共に実装されてくるのでしょうか。本命はそっちだと信じたいです。※iOS14にて対応予定と発表ありました。iOS14 Safari 14のTouch ID/Face ID対応について記事書きました。