概要
過去にコインチェックという企業がが暗号資産(仮想通貨)を盗まれるといったセキュリティホールをついた攻撃があり、世間ではセキュリティについて厳しくなってきました。現在はソフトウェアやネットワーク、サーバーといった様々な観点からセキュリティを強化していく必要があります。
そこで今回はソフトウェアのセキュリティ強化であるログイン認証に特化したFirebase Authenticationというサービスの機能について紹介します。
目次
Firebaseとは
firebaseはiOS/AndroidアプリとWebサービスに利用することができるサービスです。サーバーサイドの代わりの仕事の代わりをしてくれます。元々、Firebaseは独立系のサービスでしたがGoogleが2014年に買収していまはGoogle Cloud Platformの仲間になっています。
FirebaseとGCPは様々なサービスで連携しています。例えば、CloudFunctions、Firestoreがあります。対応しているサービス名を表にしたのでご確認ください。
No | Firebase | Google Cloud Platform |
---|---|---|
1 | Firestore | Datastore |
2 | Cloudfunctions | Cloudfunctions |
今ではかなり勉強会も開かれていてエンジニア界隈でも注目を集めています。まず、Firebaseはたくさんのサービスがあるので主に使うサービスであるAuthenticationを紹介したいと思います。ちなみに今ではITエンジニアにとっては必須のスキルになりつつあります。
Firebase Authenticationの強いセキュリティ
これは認証系のサービスです。よく使われるのはiPhoneやAndroidアプリからサーバーサイドに通信する際に毎回認証していくことでセキュリティを担保しています。今までは自作で通信部分をJWT(ジョット)という形式で送っていたのですがFirebase Authenticationではその手間を全部Firebaseがやってくれます。
認証については最近アクセストークンの漏洩の対応方法を検討する必要出てきたセキュリティについては高い意識を要求されるようになりました。このFirebaseを利用すれば、アクセストークン漏洩の心配もなくセキュリティについてはかなりしっかりしているので利用する人が増えてきています。
SNS認証や電話認証についての対応もされているので利用されることが増えてくると思います。iPhoneやAndroidといったスマートフォン対応だけでなくWebサービスにも対応しています。将来はIoTについての連携も必要となってくると思います。
エンジニアの実装もシンプル
設計の時に、リスクであるユーザーIDとパスワードをデータベースに保存する必要はありません。
私はBackendエンジニアなのでアプリ側のコードはわからないですが受け取り側だと10行あればサクッと作成することができて大変便利です。
Firebase Authの機能
メール認証
よくあるログイン認証機能です。
- 会員登録の時、メールとパスワードを登録する
- メールが届く
- メールからのリンクをクリックし認証完了
SNS認証
こちらもよくあるログイン認証機能です。以下のSNSと連携するとワンクリックで会員登録ができます。セキュリティに問題なければ手間もいらないので利用者は多いです。
- Twitter認証
- Facebook認証
- Google認証
- Yahoo認証
- Apple認証
他にもMicrosoft認証、Github認証、PlayGame認証、GameCenter認証があります。
電話認証
電話番号で認証することができます。今までにない珍しい認証方法です。
匿名認証
Firebase Authの対応デバイス
- Web
- iOS
- Android
- Unity
- C++
その他競合の認証サービス
- Auth0
- Amazon Cognito User Pools
- Google Identity Platform
- hello.js
まとめ
値段とセキュリティの高さ、機能のバランスではFirebase Authenticationを選択する人が多いです。エンジニアにとっても簡単に実装できるのでコスト面でも非常にいい認証サービスです。