認証とは
- 本人確認
- 「誰であるか」
- 「本当にその人か」
認可との違い
- 認可≒権限によるアクセス制御
認証の性質
- ログインの体験は単純
- だが実装は複雑な分岐を考慮する必要がある
- ユーザーIDが間違っている
- パスワードが間違っている
- 初回ログイン
- パスワードの頻繁な誤りへの対処
- Captureなど人間であることの確認
- パスワード期限を迎えた
- パスワード忘れ
- OTP入力
- Passキー認証
... etc
認証実装の心得
自分で実装しない!
認証プロバイダの利用
- よくあるのはSNSアカウントでのログイン
- Googleアカウントでログイン
- Xアカウントでログイン
- LINEアカウントでログイン
など
簡単な実例
(デモ)
認証プロバイダの良いところ
- 複雑な認証フローを担ってくれる!
- 認証というクリティカルな処理を担ってくれるのは大変ありがたい
- SSO可能
- バックエンドを正しく構成すれば、認証がものすごく簡単に実装できる
- ログイン画面を作らなくていい
- 堅牢な仕組みを提供してくれる
認証プロバイダの辛いところ
- ベンダロックイン:他のプロバイダに乗り換えるのは相当に辛い
- パスワードやユーザIDを握られるし、ログインUXが変わるのも辛い
- ただし、ログイン画面はアプリ独自のものを使うことも可能
- 仕組みの理解が浅いとデバッグが難しい
- 個人的にはこれが辛かった
- 勉強必須!(分かればメリットは計り知れない)
最後に
- 認証は「なるべく作らない」
- どのプロバイダを使うかはよく考えて!
- 勉強は辛いが認証を「自信を持って提供できる」のはたいへんありがたいですことですね