menu

【FIDO2でパスワードレス認証】指紋認証があるwebアプリのプロトタイプ開発

公開日:2023年02月20日 カテゴリー:新人, 開発

こんにちは。新入社員のKです☺︎

前回の記事で紹介がありましたワーキング活動では、社員の成長や挑戦の機会創出を目的として、
各グループが会社から提示された開発テーマに沿って開発が行われています。

今回はワーキング活動の開発内容について、詳しくご紹介します!

開発内容

私たちのグループは、FIDO2による認証によって「生体認証機能を持ったwebアプリ、windowsアプリのプロトタイプを作成すること」が開発テーマです。

実際にFIDO2認証を使用して作成したwebアプリを、画像と共にご紹介します!

 

FIDO2認証とは

普段使用しているデバイスで、認証情報をサーバに保存せずに認証を行うことができる技術です。

ユーザーだけが持つ「秘密鍵」と、誰もが共有できる「公開鍵」を組み合わせた公開鍵暗号方式で、
認証器を使用してwebアプリ間の通信を行い、FIDO2サーバ側で秘密鍵で暗号化された情報を公開鍵で復号することができる仕組みです。

万が一認証情報が流出しても、デバイスが手元にあれば不正アクセスは防ぐことができるので、
安全な認証が実現可能となります!

 

FIDO2を利用した指紋認証webアプリについて

FIDO2認証の特徴を生かして素早いログインができ、且つ誰にも知られたくないような情報を、
サインイン可能な人にだけ使用できる体重管理アプリのプロトタイプを開発しました!

他の人にサインインされることはなく、安心してアプリを使用できます^^

作成したwebアプリのシステム構成は、認証器から認証情報をRPアプリケーション(webブラウザ)と繋ぎ、HTTPS通信でRPサーバに接続します。RPサーバからFIDO2サーバに繋ぎ、ユーザー登録や認証を行います。
RPアプリケーションはJavaScript、RPサーバはpythonとDjangoを使用しました。
画面構成は、「ユーザー登録」、「サインイン前」、「サインイン後」となっています。

登録処理

ユーザー登録

ユーザーが任意のメールアドレスとユーザー名を入力し【登録するボタン】を押すと、
FIDO2サーバから「チャレンジ」と呼ばれる受付番号のようなものをユーザーに返します。

指紋情報登録

ユーザーがチャレンジに署名するための「秘密鍵」と、受け取った署名を検証する「公開鍵」のペアを作成します。
指紋情報(秘密鍵)を使って署名した「チャレンジ」と「公開鍵」をFIDO2サーバに送り返します。

登録完了

送られてきた公開鍵で、「秘密鍵で署名されたチャレンジ」をFIDO2サーバ側で検証します。
ユーザー本人だと確認できたら「公開鍵」を登録し、ユーザー登録が完了です!

認証処理

サインイン

ユーザーは登録したメールアドレスを入力し【サインインボタン】を押すと、FIDO2サーバから送られた「チャレンジ」を受け取ります。FIDO2サーバ側では既に公開鍵が登録されている状態です。

指紋認証

指紋(秘密鍵)をスキャンして「チャレンジ」に署名し、FIDO2サーバに送り返します。

認証成功

FIDO2サーバに登録されている公開鍵を使い、ユーザーから送られた「署名付きのチャレンジ」の検証が出来たら認証およびサインイン成功です!

まとめ

以上、FIDO2を利用した指紋認証webアプリについて、流れをまとめました。

webアプリを実現させるために、先輩社員が成果物が出来るまでの指針や
調査を進めてくださったおかげで、プロトタイプを完成させることが出来ました..!

ワーキング活動のメンバーとモブプログラミングを行ったことで、
一緒に手を動かしながら認証技術やサーバ側の理解を深められたので大変勉強にりました。

また違う案件に配属されている社員同士で交流する場ができるので、
whizzのアットホームな社風が生み出されていることも実感出来ました!
次の半年間もワーキング活動を頑張りたいと思います(ง ˙˘˙ )ว

最後までお読みいただき、ありがとうございました!^^

 

ウィズテクノロジーで一緒に働きませんか?
分野を限定せず幅広い事業を展開。新しい技術の導入にも積極的に取り組んでおり、チャレンジや成長する機会が沢山。
あなたの経験・知識を活かしながら一緒にIT業界を盛り上げて行きましょう!
採用情報詳細はコチラ