Auth0とは何か?
まず一言でAuth0を説明すると
複雑な認証・認可機能を簡単に実装できるプラットフォームです!
そして今回は上記の「複雑」といった点、Auth0のメリットについて深掘りしていきます!
何が複雑なのか?
- セキュリティの対策
- 様々なログイン方法への対応
- 画面作りとシステム管理
- ログの取得・分析、法律に合わせた実装
セキュリティの対策
自分でログイン機能を作るのが複雑な理由がいくつかあります。
1. セキュリティ対策と最新技術への対応です。
まずログイン機能を作るということはユーザーのパスワードを盗まれないようにしっかりと管理しなければならないということです。その守る方法が少しでも古かったり、暗号化せずに管理していると簡単に盗まれてしまう。
2. 不正アクセスへの対策
コンピューターがログインできるまで何度もログインを試す「ブルートフォース攻撃(総当たり攻撃)」や盗まれたIDとパスワードのリストを使う攻撃などから、サービスや情報を守るための監視と仕組みを自分でしっかりと理解して全て作らなければならない。
3. パスワード漏洩の監視
ユーザーが他サービスで盗まれたパスワードを使い回していないかをチェックする仕組みも用意しないといけない(らしい)し、この仕組みはとても手間がかかる、、らしいです。
様々なログイン方法への対応
1. 多要素認証(MFA)
自分で設定したパスワードの他にメールやメッセージに送られる数字や英語の無造作な配列などを使用し、本人確認をする仕組みを自分で作って組み込む必要がある。
2. ソーシャルログインの連携
これは何かというと、「Googleでログイン」「Appleでログイン」というようなSNSのアカウントでログインできる機能です。この機能はそれぞれ別々の会社のルールに合わせて作らなければいけなく、その会社のルールが変わるたびに直す必要がある、、、(らしい!初めて知りました)!!!
3. 企業向け(toB)認証への対応
toBの場合、その会社のシステム(Active Directoryなど)と連携してログインできる仕組みをお客様ごとに作成したり、調整が必要になります!
画面作りとシステム管理
1. ログイン画面やフローの開発
例えばログイン、新規登録、パスワードを忘れた時の画面など、すべての画面と裏側の動きをUI/UXを意識して綺麗に作らなければならない!
2. 管理者画面
誰がどのメアドで、電話番号で登録したか、どんな役割の人なのか、と言ったユーザーの情報をみたり変更したりの管理者画面も作る必要がある。
3. セッション管理
ログイン状態を安全に、一定時間使わなければ自動ログアウトさせるなどの、セッションの管理を間違いなく正確に作らなければならない。
ログの取得・分析、法律に合わせた実装
1. ログの取得・分析
「いつ、誰が、どこからログインを試みたか」という詳細な記録をずっと保存しておき、問題が起きた時にすぐ調べることができる仕組みを作る必要がある。
2. 法律や規制への準拠
世界には様々な個人情報に関する法律というものがあります。
-
カリフォルニア州消費者プライバシー法 (CCPA/CPRA)
-
ブラジル一般データ保護法 (LGPD)
-
日本の個人情報保護法
などがあります。この中の「忘れられる権利」や「データ削除の権利」などに基づき、会員の情報を削除しなければならなかったりと法律に合わせて実装する必要がある。
だからこそAuth0が必要
今見ていただいたように、認証機能を作るというのは単に画面を作るだけでなく、「法律」「セキュリティ」「世界のルール」など全てに対応した完璧なシステムを自力で作り、運用していかないといけません。これをしていたら、他の開発に手が回らなくなりタスクが溜まっていってしまうというエンジニアにとっては大きな負担になり得るものなのです。
Auth0で得られるメリット
先ほどの項目と関連付けて説明させていただきます!!
セキュリティの対策
ハイレベルなセキュリティを自動適用してくれる。
パスワードの厳重な暗号化や、最新の不正アクセス対策をAuth0が常に保っています!エンジニアは最新のセキュリティ技術を勉強せずとも安心して組み込むことができるということです!🙌
様々なログイン方法への対応
スイッチ一つで多機能を実現 「Googleでログイン」や「多要素認証」といった複雑な機能も、管理画面のボタンやチェックボックスを操作するだけですぐに利用可能になる!(らしい!まだ使ってないからわからないので確認したらまたこの記事をアップデートさせます!)。GoogleやApple各社のルール変更も、Auth0側が自動で対応してくれる。
画面作りとシステム管理
ログイン・新規登録画面をUI/UXに優れたテンプレートが用意されているため、色やロゴを変更するだけで品質の高い画面が完成します!
ログの取得・分析、法律に合わせた実装
「いつ、誰がログインしたか」の記録は、不正検知に役立つ形(IPアドレス、デバイス情報、試行回数やエラー)で自動記録されます。また、「忘れられる権利」といった世界的な法律で求められるデータ削除の機能も、APIを通じて簡単に実行することができます!
まとめ
Auth0を導入するということは、単に認証機能を使えるというだけでなく、きちんと法律を意識し、強固なセキュリティ機能をも自分のサービスに
組み込むことができるということです!!
高い信頼性もあり、NTTドコモやマツダも使用しているとか!
そしてAuth0を導入することで勉強、実装の時間が減り、他の業務に時間を割くことができます!
今回使う予定があるので、実際に使ってみてまた記事を書こうと思います!
ここまで読んでいただきありがとうございました!
何言ってんだこいつというところがあれば遠慮なく刺してください!🙂↕️
Discussion