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
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Yohei Iino
November 02, 2024
Technology
310
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
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
100
作成中のFlutterアプリの中間発表
wheatandcat
0
83
最近読んだ技術書を簡単紹介
wheatandcat
0
110
ユニバーサルリンク/アプリリンクを使ってQRコードでゲストログインできるようにする
wheatandcat
0
380
PlanetScaleの無料プランがなくなるので、NeonとTiDBを試してみた
wheatandcat
0
410
Flutter HooksとRiverpodの解説
wheatandcat
0
580
T3 Stack(応用編: Next Auth & SSRの実装紹介)
wheatandcat
1
400
App Routerの紹介
wheatandcat
0
150
Flutter × GraphQLでアプリを作ってみる
wheatandcat
0
340
Other Decks in Technology
See All in Technology
40代で“やっとエンジニアになれた”――閉じた学びを開き、空の青さを知る / 20260628 Naoki Takahashi
shift_evolve
PRO
4
1.1k
組織における AI-DLC 実践
askul
0
140
AIチャットの改善から見えた、良いAI体験とは / What Constitutes a Good AI Experience: Insights from Improving AI Chat
kubode
0
120
螺旋型キャリアの生存戦略 / kinoko-conf2026
rakus_dev
1
1.2k
Amazon Redshift zero-ETL 統合を活用した軽量なマルチプロダクトデータ可視化基盤 / Lightweight Multi-Product Data Visualization with Amazon Redshift Zero-ETL
kaminashi
0
110
FPGAの開発コンペでZephyrを使ってみた
iotengineer22
0
210
#エンジニアBooks 30分でわかる 「技術記事を書く技術」 / engineer-books 2026-06-30
jnchito
1
120
AIは、人間らしい仕事の夢を見るか?─ AI時代のtoB/toEプロダクトを再設計する
techtekt
PRO
0
160
AI時代における最適なQA組織の作り方
ymty
3
120
FPC(フレキシブル)基板にZephyr実装してみた。
iotengineer22
0
180
【FinOps】データドリブンな意思決定を目指して
z63d
2
470
10年間のブログ発信を振り返って見えたWebアプリケーションエンジニアとしての軌跡
stefafafan
0
190
Featured
See All Featured
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
1
1.3k
Why You Should Never Use an ORM
jnunemaker
PRO
61
9.9k
GraphQLの誤解/rethinking-graphql
sonatard
75
12k
Max Prin - Stacking Signals: How International SEO Comes Together (And Falls Apart)
techseoconnect
PRO
0
190
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.4k
Building Applications with DynamoDB
mza
96
7.1k
What does AI have to do with Human Rights?
axbom
PRO
1
2.2k
Tell your own story through comics
letsgokoyo
1
980
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
1
200
Agile Leadership in an Agile Organization
kimpetersen
PRO
0
170
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
Exploring anti-patterns in Rails
aemeredith
3
430
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側は本番以外はデバッグトークンを使用して認証させた)
ご清聴ありがとうございました 🎉