Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Firebase App Checkを実装したので紹介
Search
Yohei Iino
November 02, 2024
Technology
280
0
Share
Firebase App Checkを実装したので紹介
Firebase App Checkを実装したので紹介
Yohei Iino
November 02, 2024
More Decks by Yohei Iino
See All by Yohei Iino
1年半放置したExpo製アプリを最新化してみた
wheatandcat
0
95
作成中のFlutterアプリの中間発表
wheatandcat
0
78
最近読んだ技術書を簡単紹介
wheatandcat
0
99
ユニバーサルリンク/アプリリンクを使ってQRコードでゲストログインできるようにする
wheatandcat
0
370
PlanetScaleの無料プランがなくなるので、NeonとTiDBを試してみた
wheatandcat
0
390
Flutter HooksとRiverpodの解説
wheatandcat
0
550
T3 Stack(応用編: Next Auth & SSRの実装紹介)
wheatandcat
1
390
App Routerの紹介
wheatandcat
0
140
Flutter × GraphQLでアプリを作ってみる
wheatandcat
0
330
Other Decks in Technology
See All in Technology
AgentCore×VPCでの設計パターンn選と勘所
har1101
4
390
ブラウザの投機的読み込みと投機ルールAPIを理解し、Webサービスのパフォーマンスを最適化する
shuta13
3
280
GKE Agent SandboxでAIが生成したコードを 安全に実行してみた
lamaglama39
0
200
AI時代に越境し、 組織を変えるQAスキルの正体 / QA Skills for Transforming an Organization
mii3king
5
4k
[Scram Fest Niigata2026]Quality as Code〜AIにQAの思考を再現させる試み〜
masamiyajiri
1
240
バイブコーディングで3倍早く⚪⚪を作ってみた
samakada
0
220
雑談は、センサーだった
bitkey
PRO
2
200
The 7 pitfalls of AI
ufried
0
190
生成AIはソフトウェア開発の革命か、ソフトウェア工学の宿題再提出なのか -ソフトウェア品質特性の追加提案-
kyonmm
PRO
2
840
多角的な視点から見たAGI
terisuke
0
120
UIライブラリに依存しすぎないReact Native設計を目指して
grandbig
0
190
「QA=テスト」「シフトレフト=スクラムイベントの参加者の一員」の呪縛を解く。アジャイルな開発を止めないために、10Xで挑んだ「右側のしわ寄せ」解消記 #scrumniigata
nihonbuson
PRO
3
870
Featured
See All Featured
Balancing Empowerment & Direction
lara
6
1.1k
ラッコキーワード サービス紹介資料
rakko
1
3.2M
End of SEO as We Know It (SMX Advanced Version)
ipullrank
3
4.2k
The Curse of the Amulet
leimatthew05
1
12k
Build The Right Thing And Hit Your Dates
maggiecrowley
39
3.1k
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
410
Ethics towards AI in product and experience design
skipperchong
2
270
Music & Morning Musume
bryan
47
7.2k
<Decoding/> the Language of Devs - We Love SEO 2024
nikkihalliwell
1
210
Skip the Path - Find Your Career Trail
mkilby
1
110
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
1k
DevOps and Value Stream Thinking: Enabling flow, efficiency and business value
helenjbeal
1
180
Transcript
Firebase App Checkを実装したので紹介 Press Space for next page
自己紹介 📝 飯野陽平(wheatandcat) 🏢 会社: 合同会社UNICORN 代表社員 📚 Blog: https://www.wheatandcat.me/
🛠 今までに作ったもの memoir OOMAKA MarkyLinky
Firebase App Check Firebase App Check Firebase App Checkは、アプリが正当なものであることを確認して、不正なアクセスを防ぐためのFirebase が提供しているセキュリティ機能
各プラットフォームで保護を行うことができる iOS DeviceCheck Android Play Integrity Web reCAPTCHA v3
DeviceCheck DeviceCheck Appleが提供するフレームワークで、Appleのサーバーと通信して端末情報を取得して不正なアクセスを防ぐ のに使用されている 各iOS端末でのアプリをインストール、アンインストールの情報をApple側で管理しており、フレームワーク を使用して、その情報を元にトークンを生成、認証の仕組みを行うことができる 正式にアプリをインストールした端末からしかトークンが発行できないので、クローリングやbotからのアク セスを防ぐことができる
Play Integrity Play Integrity Googleが提供するフレームワークで、Googleのサーバーと通信して端末情報を取得して不正なアクセスを 防ぐのに使用されている 基本的にはDeviceCheckのAndroid版 Play Integrityを使用することで、現在アクセスしているアプリがPlay Storeからインストールされたものか
判別できる AndroidはiOSよりも簡単に野良アプリをインストール可能なので、そういったアプリからのアクセスを防ぐ ことができる
Firebase App Checkの機能 以下のリソースに対して保護を行うことができる 各Firebaseのリソース Storage Functions Firestore Authentication etc
※ モニタリングの情報をDEMOで表示 Firebase以外のリソースの場合は実装すれば保護が可能 カスタム バックエンドから App Check トークンを検証する
Firebase App Checkのデバッグトークン① App Checkを実装するとストアからインストールされたアプリしかアクセスできなくなるので、そのままだ と開発時にアクセスできなくなってしまう そのため、開発時はデバッグトークンを使用してアクセスできるようにする
Firebase App Checkのデバッグトークン② デバッグトークンはProviderをdebugにすることで有効になる アプリを起動するとデバッグトークンが発行されて、コンソールに設定するとアクセスが可能になる ※デバッグトークンの表示は以下を参考 FlutterでFirebase App Checkに対応(+Firebase App
Distributionで配信時の対応) await FirebaseAppCheck.instance.activate( androidProvider: kReleaseMode ? AndroidProvider.playIntegrity : AndroidProvider.debug, appleProvider: kReleaseMode ? AppleProvider.deviceCheck : AppleProvider.debug, );
App Checkの実装① 実装環境 アプリ: Flutter バックエンド: NestJS 事前準備 DeviceCheckの導入 参考:【Flutter】App
Check を導入して Firebase を守ろう!(DeviceCheck) Play Integrityの導入 参考:【Flutter】App Check を導入して Firebase を守ろう!(Play Integrity)
App Checkの実装② PR Firebase App Check実装 backendの実装 対象コード アプリの実装 対象コード1
対象コード2
App Checkの実装③ App Checkを実装した状態でトークンなしでAPIにアクセスするとエラーが発生してアクセスできない
まとめ Firebase App Checkを導入することで不正アクセスを防ぐことができる 開発時はデバッグトークンを使用してアクセスできる デバッグトークンはアプリを再インストールする毎に変更されるので、その度にコンソールに設定する必要 があるので複数人開発では運用を考える必要がある Firebase App Distributionを使って配信した場合に、AndroidだとPlay
Integrityでエラーにされてしまうの で注意(今回の開発だとAndroid側は本番以外はデバッグトークンを使用して認証させた)
ご清聴ありがとうございました 🎉