2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Magic Link とは

2
Posted at

はじめに

お疲れ様です。プログラミング学習中のくろちゃんです。
本日は私が認証機能をどうしたらいいか迷っている時に、受講中のオンラインスクールの校長がこんなのもあるよと教えてくださったMagic Link についてまとめていきます。

Magic Link とは

パスワードレスログインの一形態です。
一般的なメールアドレス+パスワードとは違いメールアドレスのみで認証します。

仕組み

Magic Linkは以下の仕組みで動いています。
1.ユーザーがメールアドレスを入力
2.サーバーが一度きり有効なトークン付きURLを生成
3.そのURLをメールで送信
4.URLをユーザーがクリック
5.トークンを検証してログイン完了

メリット

  • UXが良い
    パスワードの入力が不要なため、パスワードを忘れたり間違えることがなくなりログイン離脱が減りやすいです
  • パスワード管理が不要
    ハッシュ化、パスワードリセット、強度のルールなどを丸々度外視することができます
  • プルートフォース攻撃に強い
    パスワードが存在しないため総当たり攻撃が成立しなくなります。

デメリット

* メールが届かないと何もできない
遅延やメールサーバー障害等が起こるとログイン不能となってしまいます

  • メールアカウント依存
    メールが乗っ取られたら終了です
    2段階認証がないメールは危険です
  • URL漏洩リスク
    リンク=鍵となるので扱いがシビアになります
  • 頻繁なログインに向かない
    毎回メールを確認してURLを踏むのは面倒です

よくある設計のルール

  • トークンは一回限り
  • 有効期限は数分〜15分値度
  • 使用後は無効化する
  • ログイン完了後にセッション発行

まとめ

Magic Linkはパスワードが引き起こす問題を捨てるための仕組みです。
実装自体もパスワード系を排除するため楽にはなりますが、毎度メールを確認しないといけないなどユーザー目線で不便なこともあります。
メリットデメリットを考えた上で作成しているアプリケーションにあった認証を選択するのが大切です。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?