Web認証についての学びログ
こんにちは。
YUIDEAのWebディレクターRomiです。
唐突ですが、Webのトレンドは海を渡ってやってくる、と勝手に思っている私は、日頃からよく海外のIT関連ブログサイトやキュレーションサイトなどを覗きにいきます。
最近では、GoogleI翻訳やDeepL翻訳などのブラウザ拡張機能を使うと、殆どの英文サイトは和文で読めるので、難しい英単語やイディオムをググる必要もなくストレスフリー。本当に便利な世の中になりましたよね。
先日もMedium(日本でいうnoteのようなサイト)を久しぶりに覗きにいこうとしたのですが、ログイン情報がどうしても思い出せず…。
ならばGoogleアカウントでログインを、とパスワードを入力、、、ん?違う?
では再度入力、、、ん? 違うのっ!?
と、不覚にも2度の入力ミスをしてしまい、突如としてブラウザ画面に
「アカウントの復元」、「iPhoneでYoutubeアプリを開いてください」
という案内が表示されました。
その実際に行った手順が下図なのですが、Youtubeではログインをしようとしたデバイス・地域・時間の情報とともにリクエストを確認 。パスワードの再設定や認証コードのコピペ入力の必要もなく、ブラウザに表示されていた数字を選択すると、あっという間に「アカウントの復元」とやらが完了。
YoutubeはGoogleアカウトで登録を行う同一アカウントなので、ここまでのユーザーフレンドリーなUI/UXが実現できるのだなぁ、と感心したのですが、お恥ずかしながら、これまでにWeb認証について学ぶ機会のなかった私は、ふとWeb認証の方法や仕組みなどが気になり、自分なりに少し調べてみましたので、その内容を以下にまとめていきます。
🔑 Web認証とは?
今さら説明の必要はない気もしますが、Web認証とは、Web上で提供されるサービスやアプリケーションへのアクセスをリクエストしたユーザーの
識別(Identification)→ 認証(Authentication)→ 認可(Authorization)
を行うための仕組みのこと。
🔑 Web認証に使われる要素は大きく分けて3種類
🔑 Web認証の種類
主要なWeb認証方式を概要と合わせてリストアップしてみます。
【 パスワード認証 】
事前に登録されたIDとパスワードを入力して行う認証方式。
※ ID:Identity Document(身分証明書)の略字で、メールアドレスや認識番号、または任意の文字列など。
【 多要素認証(MFA:Multi-factor authentication) 】
知識・生体・所持の3つの要素のうちの、2つ以上の複数の要素を組み合わせた認証方式。
【 2要素認証(2FA:Two-factor authentication) 】
多要素認証の一種で、知識、生体、所持の3つの要素のうちの2つの認証要素を組み合わせた認証方式。
【 2段階認証(2-step verification) 】
私がMediumのログインに利用したのがこの方法。
2要素認証と混同されやすいのですが、認証ステップ(手順)を2段階に分けて行う認証方式で、要素の数は問われません。SMS、音声通話、Eメール、アプリケーション、トークンなど、その方法は多種多様です。
▼ 代表的な2段階認証用アプリケーション
Google Authenticator、Microsoft Authenticator など
▼ トークンを利用した2段階認証
サブスクリプションサービスや金融系サービスの2段階認証によく使われているのが、ソフトウェア・トークンと呼ばれる一度しか使えない認証用パスワード(ワンタイムパスワードなど)を利用して認証や認可などを行う方法。
自分の理解のためにもざっくりと簡単に図解してみます。
このしたトークンを使用した認証には、以下に代表されるようなWeb規格が使われています。
【 生体認証 】
スマホなどデバイスに組み込まれた生体認証機能を利用した認証方式で、代表的なものはAppleのFace IDやTouch ID、Windows Helloなど。
【 FIDO(Fast IDentity Online)認証 】
FIDO Alliance(ファイド・アライアンス)という、パスワードレス認証の標準化を目指して設立された非営利業界団体が推進するWeb規格。
ユーザー側デバイスで生体認証機能を利用した認証を行い、認証サーバーには公開鍵のみが保存される、というパスワードに依存しない比較的新しい認証方式で、既に金融系のサービスやアプリなどでは多く導入されているように思います。
厚生労働省では以下のように定義し、その仕組みも簡潔に解説しています。
【 FIDO2 認証 】
WebAuthnとCTAPの2つの要素で構成されるFIDOの最新バージョン。
【 シングルサインオン(SSO:Single Sign On) 】
1セットのユーザー認証情報で、複数のアプリケーションやウェブサイトへのログインを可能にする認証ソリューション。
SAMLやOAuthなど様々なトークン型の認証技術を利用したものがあります。
参考元:https://aws.amazon.com/jp/what-is/sso/
例えば、Googleアカウントのログイン情報一つでGoogle Workspace、Slack、Zoomなど独立した複数のアプリケーションへのログインを可能にするため、多くのアカウントを管理する必要のある企業や組織で導入するに適した方式です。
🔑 まとめ
ざっとまとめた"学びログ"いかがでしたでしょうか?
サブスクリプション型のWebアプリケーションやポイントサービスの市場拡大などに伴い、ユーザーは複数のIDやパスワードの管理を余儀なくされ、パスワードを失念したり、面倒な手続きで登録を諦めたり、他者による不正なログイン被害にあったり、と抱える問題も多くなりました。
しかし、そんなユーザーの利便性と十分な安全性を担保するために、認証技術も日々進化し多様化しています。
今回リストアップした認証方式の他にも、分散型ID、SSI(Self-Sovereign Identity)、ゼロトラストセキュリティモデル、など、セキュリティの向上とユーザー体験の改善の両立を目的とした新しい次世代認証技術が続々と登場してきているなか、企業で導入を検討する際には、安全性・利便性・コストなどのバランスをとることが最も重要になってくるのではないでしょうか。