Copyright (C) iPhoneアプリ開発備忘録 All rights reserved.
ブログ内で記したコード、内容の正確性は保証いたしません。
記載内容を実装したことにより発生した不具合・損害等の責任は一切負いません。



2021年06月22日

Firebase App Checkを有効にする



Firebaseで App Checkを有効にし、コールするアプリ以外からの不正なFirebaseへのアクセスを防止する手順のメモ。
なお、App Checkは2021年5月現在、Beta版として提供されており、今後仕様が変更される可能性がある。
このため、サービスの本番運用への適用には注意が必要である。

1. クライアント
(1) AppCheckライブラリをPodでインストールする
pod 'Firebase/AppCheck'



2. Firebase 関数
(1) プロジェクトのfirebase firebase-functions依存関係をバージョン3.14.0以降に更新する。
npm install firebase-functions@">=3.14.0"


(2) プロジェクトの firebase firebase-admin依存関係をバージョン 9.8.0 以降に更新する。
npm install firebase-admin@">=9.8.0"


(3) functions.https.onCallで呼び出されるコードに、context.appチェックを追加する。context.appが定義されていない場合、関数は失敗する。
exports.yourCallableFunction = functions.https.onCall((data, context) => {
// context.app will be undefined if the request doesn't include a valid
// App Check token.
if (context.app == undefined) {
throw new functions.https.HttpsError(
'failed-precondition',
'The function must be called from an App Check verified app.')
}

// Your function logic follows.
});


(4) 関数をデプロイする。
firebase deploy --only functions



3. Firebase コンソールの設定
(1) Appleデベロッパサイトで、DeviceCheck秘密鍵を作成する。
(2) Firebaseコンソールの[プロジェクト設定]> [アプリチェック]セクションで、DeviceCheckプロバイダーにアプリチェックを使用するようにアプリを登録する。前の手順で作成した秘密鍵を設定する必要がある。
(3) リクエストの指標を監視する。
(4) 施行を有効にする。


参考記事:
Firebase アプリのチェック
https://firebase.google.com/docs/app-check

iOSでDeviceCheckを使用してアプリチェックを有効にする
https://firebase.google.com/docs/app-check/ios

クラウド機能のアプリチェックの実施を有効にする
https://firebase.google.com/docs/app-check/cloud-functions?authuser=0

iOSのデバッグプロバイダーでアプリチェックを使用する
https://firebase.google.com/docs/app-check/ios-debug-provider#objective-c

Firebaseの新機能App Checkで乱用されるのを防ぐ
https://zenn.dev/moga/articles/appcheck_looks_good



上記で実行すると、クライアントアプリの有効性はチェックできるが、ユーザ認証は行われず、Firebaseコンソールのログには下記のように表示される。
Callable request verification passed {"verifications":{"auth":"MISSING","app":"VALID"}}


カスタムプロバイダーによるApp Checkを有効にすると、ユーザ認証まで実施できるので、よりセキュリティを強固にすることができる。

参考記事:
iOSのカスタムプロバイダーでアプリチェックを有効にする
https://firebase.google.com/docs/app-check/ios-custom-provider

カスタム App Check プロバイダーを実装する
https://firebase.google.com/docs/app-check/custom-provider


posted by mobileDeveloper at 14:50 | Comment(0) | 開発の流れ はてなブックマーク - Firebase App Checkを有効にする | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
※ブログオーナーが承認したコメントのみ表示されます。
Apple、Appleのロゴ、App Store、iPodのロゴ、iTunesは、米国および他国のApple Inc.の登録商標です。
iPhone、iPod touch、iPadはApple Inc.の商標です。
iPhone商標は、アイホン株式会社のライセンスに基づき使用されています。
その他、本ブログに記載されている製品名、会社名は、それぞれ各社の商標または登録商標です。