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
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
フルカイテン株式会社 エンジニア向け採用資料
fullkaiten
0
11k
GitHub Copilot運用のリアル ~AI Credit時代にどう向き合うか~
takafumisu2uk1
0
480
Microsoft のサポートとフィードバック総まとめ
murachiakira
PRO
0
110
IaC コードを資産へ:AWS CDK 社内ライブラリと横断展開 / aws-summit-japan-2026
gotok365
10
1.6k
AIペネトレーションテスト・ セキュリティ検証「AgenticSec」紹介資料
laysakura
2
7.7k
テスト設計の本質を改めて考えてみる~生成AIを活用する時代だからこそ、作ったテストの説明性を高めよう~
yamasaki696
1
110
「ビジネスがわかるエンジニア」とは何か?
ryooob
0
340
AIをフル活用してオンコール機能のプロトタイプを2日で作った話 / Building an AI-Powered On-Call Prototype in Just Two Days
nari_ex
0
140
[チョークトーク資料]AWS DevOps Agent を使いこなす / AWS Dev Ops Agent Chalk Talk AWS Summit Japan 2026
kinunori
4
800
UIパーツの設計を「型」から読み解く 〜TSKaigiのセッションから得た学び〜
yud0uhu
0
100
Agile and AI Redmine Japan 2026
hiranabe
4
500
AI時代のコスト管理を考えよう〜明日から使える実践AWSノウハウ~
yoshimi0227
0
930
Featured
See All Featured
Paper Plane
katiecoart
PRO
1
52k
Agile Leadership in an Agile Organization
kimpetersen
PRO
0
170
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
23k
<Decoding/> the Language of Devs - We Love SEO 2024
nikkihalliwell
1
260
How to Get Subject Matter Experts Bought In and Actively Contributing to SEO & PR Initiatives.
livdayseo
0
140
Leading Effective Engineering Teams in the AI Era
addyosmani
9
2.1k
Efficient Content Optimization with Google Search Console & Apps Script
katarinadahlin
PRO
1
640
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
1
1.4k
State of Search Keynote: SEO is Dead Long Live SEO
ryanjones
0
210
Code Reviewing Like a Champion
maltzj
528
40k
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
[RailsConf 2023] Rails as a piece of cake
palkan
59
6.7k
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側は本番以外はデバッグトークンを使用して認証させた)
ご清聴ありがとうございました 🎉