LINEのFIDO2 Serverがオープンソースで公開されたという記事を読み、気になったので使ってみました。
FIDO2とは
スマートフォンやPCなどのデバイスで指紋認証や顔認証、PINコードなどを基に生成した秘密鍵と公開鍵を用いて、公開鍵暗号の仕組みによってユーザーを認証する技術です。
サーバ側でパスワードを保存する必要がないため、ネットワーク上にIDやパスワードが流れることはなく、パスワード漏洩などの事故が起きない、より安全な認証の仕組みを実現できるのが特徴です。
FIDO2に対応した主なサービスは以下のようなものがあります。
- Yahoo!JAPANアプリ
- Yahoo!ショッピングアプリ
- Microsoftアカウントへのサインイン
FIDO2 Serverのデモを起動する
公開されているリポジトリはこちらです。
line-fido2-server
- README.mdに記載されている以下を実行します
# Start RP Server cd rpserver ./gradlew bootRun # Start FIDO2 Server or Line-fido2-spring-boot Demo cd server ./gradlew bootRun cd spring-boot-starter/line-fido2-spring-boot-demo ./gradlew bootRun
localhost:8080
にアクセスすると以下の画面が表示されます
認証を登録する
- 表示された画面の
User name
,Display name
を入力し、「Register」ボタンを選択します
- MacBookの場合はTouch IDの確認、Windowsの場合はPINコードの確認など、デバイスに応じた認証確認が表示されます
- 登録に成功した場合は、以下のようにメッセージが表示されます
登録した認証を使って認証する
- 「Authenticate」ボタンを選択すると、デバイスに応じて登録した認証が表示されます
- MacBookの場合はサインインアカウントの選択
- Windowsの場合はPINコードの入力 など
- 認証に成功すると以下のようにメッセージが表示されます
その他
デモは以下でも公開されているので、動作確認だけであればすぐに確認することができます。
https://prod-fido-fido2-server.line-apps.com/