بررسی برنامه با SafetyNet را در Android فعال کنید

این صفحه به شما نشان می دهد که چگونه با استفاده از ارائه دهنده SafetyNet داخلی، App Check را در یک برنامه Android فعال کنید. وقتی برنامه بررسی را فعال می‌کنید، مطمئن می‌شوید که فقط برنامه شما می‌تواند به منابع Firebase پروژه شما دسترسی داشته باشد. مشاهده نمای کلی از این ویژگی.

اگر شما می خواهید به استفاده از چک نرم افزار با ارائه دهنده سفارشی خود را، و پیاده سازی یک نرم افزار سفارشی ارائه دهنده چک .

1. پروژه Firebase خود را راه اندازی کنید

  1. اضافه کردن فایربیس به پروژه آندروید خود را اگر شما قبلا انجام داده است تا.

  2. ثبت نام برنامه های خود را به استفاده از چک نرم افزار با ارائه دهنده SafetyNet در تنظیمات پروژه> برنامه را بررسی کنید بخش از کنسول فایربیس. شما نیاز به ارائه SHA-256 اثر انگشت از گواهی امضای برنامه شما هستند.

    معمولاً باید همه برنامه‌های پروژه خود را ثبت کنید، زیرا پس از فعال کردن اجرای یک محصول Firebase، فقط برنامه‌های ثبت‌شده می‌توانند به منابع پشتیبان محصول دسترسی پیدا کنند.

  3. اختیاری: در تنظیمات ثبت نام برنامه، تنظیم سفارشی زمان به زندگی می کنند (TTL) برای ورود به نرم افزار نشانه شده توسط ارائه دهنده صادر شده است. می توانید TTL را روی هر مقداری بین 30 دقیقه تا 7 روز تنظیم کنید. هنگام تغییر این مقدار، به معاوضه های زیر توجه داشته باشید:

    • امنیت: TTL‌های کوتاه‌تر امنیت قوی‌تری را فراهم می‌کنند، زیرا پنجره‌ای را کاهش می‌دهد که در آن توکن لو رفته یا رهگیری شده توسط مهاجم مورد سوء استفاده قرار می‌گیرد.
    • عملکرد: TTLهای کوتاهتر به این معنی است که برنامه شما به دفعات بیشتری گواهی را انجام می دهد. از آنجایی که فرآیند تأیید برنامه هر بار که انجام می شود، تاخیر را به درخواست های شبکه اضافه می کند، یک TTL کوتاه می تواند بر عملکرد برنامه شما تأثیر بگذارد.
    • سهمیه و هزینه: TTLهای کوتاهتر و تأیید مجدد مکرر سهمیه شما را سریعتر از بین می برد و برای خدمات پولی، احتمالاً هزینه بیشتری دارد. مشاهده سهمیه و محدودیت .

    از این که ttl طور پیش فرض از 1 ساعت برای بیشتر برنامه است. توجه داشته باشید که کتابخانه App Check توکن ها را تقریباً در نیمی از مدت زمان TTL تازه می کند.

2. کتابخانه App Check را به برنامه خود اضافه کنید

در ماژول خود را (در سطح برنامه) فایل Gradle (معمولا app/build.gradle )، اعلام وابستگی برای برنامه تیک بزنید کتابخانه آندروید:

جاوا

dependencies {
    implementation 'com.google.firebase:firebase-appcheck-safetynet:16.0.0-beta04'
}

Kotlin+KTX

dependencies {
    implementation 'com.google.firebase:firebase-appcheck-safetynet:16.0.0-beta04'
}

3. App Check را اولیه کنید

کد اولیه زیر را به برنامه خود اضافه کنید تا قبل از استفاده از Firebase SDK دیگر اجرا شود:

جاوا

FirebaseApp.initializeApp(/*context=*/ this);
FirebaseAppCheck firebaseAppCheck = FirebaseAppCheck.getInstance();
firebaseAppCheck.installAppCheckProviderFactory(
        SafetyNetAppCheckProviderFactory.getInstance());

کاتلین + KTX

FirebaseApp.initializeApp(/*context=*/this)
val firebaseAppCheck = FirebaseAppCheck.getInstance()
firebaseAppCheck.installAppCheckProviderFactory(
    SafetyNetAppCheckProviderFactory.getInstance()
)

هنگامی که کتابخانه App Check در برنامه شما نصب شد، شروع به توزیع برنامه به روز شده بین کاربران خود کنید.

برنامه کلاینت به‌روزرسانی‌شده، به همراه هر درخواستی که به Firebase می‌کند، نشانه‌های App Check را ارسال می‌کند، اما محصولات Firebase تا زمانی که اعمال را در بخش App Check کنسول Firebase فعال نکنید، نیازی به معتبر بودن توکن‌ها ندارند. برای جزئیات بیشتر به دو بخش بعدی مراجعه کنید.

4. معیارهای درخواست را نظارت کنید

اکنون که برنامه به‌روزرسانی شده شما در دست کاربران است، می‌توانید اجرای App Check را برای محصولات Firebase که استفاده می‌کنید فعال کنید. با این حال، قبل از انجام این کار، باید مطمئن شوید که انجام این کار باعث اختلال در کاربران قانونی فعلی شما نمی شود.

پایگاه داده بیدرنگ، Cloud Firestore و Cloud Storage

ابزار مهمی که می‌توانید برای این تصمیم برای پایگاه داده بیدرنگ، Cloud Firestore و Cloud Storage استفاده کنید، صفحه معیارهای درخواست بررسی برنامه است.

برای مشاهده برنامه های درخواست بررسی معیارهای برای یک محصول، باز کردن تنظیمات پروژه> برنامه را بررسی کنید بخش از کنسول فایربیس. مثلا:

نماگرفت صفحه معیارهای بررسی برنامه

معیارهای درخواست برای هر محصول به چهار دسته تقسیم می شوند:

  • درخواست تایید شده کسانی که یک برنامه معتبر را بررسی کنید رمز هستند. پس از فعال کردن اجرای بررسی برنامه، فقط درخواست‌های این دسته موفق خواهند شد.

  • درخواست مشتری از رده خارج کسانی که در حال از دست رفته یک برنامه را بررسی کنید رمز هستند. این درخواست‌ها ممکن است از نسخه قدیمی‌تری از Firebase SDK قبل از گنجاندن App Check در برنامه باشد.

  • درخواست منشا ناشناخته آن است که گم شده یک برنامه چک رمز هستند، و به نظر نمی مانند آنها از فایربیس SDK آمده است. اینها ممکن است از درخواست‌هایی باشد که با کلیدهای API به سرقت رفته یا درخواست‌های جعلی که بدون Firebase SDK انجام شده‌اند.

  • درخواست نامعتبر کسانی که یک برنامه نامعتبر بررسی نشانه، که ممکن است از یک سرویس گیرنده نامعتبر تلاش برای جعل هویت برنامه خود را، و یا از محیط شبیه سازی می شود.

توزیع این دسته‌ها برای برنامه شما باید زمانی را که تصمیم به فعال کردن اعمال می‌کنید به شما اطلاع دهد. در اینجا چند دستورالعمل وجود دارد:

  • اگر تقریباً تمام درخواست‌های اخیر از مشتریان تأیید شده است، برای شروع محافظت از منابع باطن خود، اجرای را فعال کنید.

  • اگر بخش قابل‌توجهی از درخواست‌های اخیر از کلاینت‌هایی هستند که به احتمال زیاد قدیمی هستند، برای جلوگیری از ایجاد اختلال در کاربران، قبل از فعال کردن اعمال، منتظر بمانید تا کاربران بیشتری برنامه شما را به‌روزرسانی کنند. اجرای بررسی برنامه در یک برنامه منتشر شده، نسخه‌های قبلی برنامه را که با SDK بررسی برنامه ادغام نشده‌اند، خراب می‌کند.

  • اگر برنامه شما هنوز راه اندازی نشده است، باید فوراً اجرای بررسی برنامه را فعال کنید، زیرا هیچ کلاینت قدیمی در حال استفاده نیست.

توابع ابری

برای توابع Cloud، می‌توانید با بررسی گزارش‌های عملکردهایتان، معیارهای App Check را دریافت کنید. هر فراخوانی یک تابع قابل فراخوانی یک ورودی گزارش ساختار یافته مانند مثال زیر منتشر می کند:

{
  "severity": "INFO",    // INFO, WARNING, or ERROR
  "logging.googleapis.com/labels": {"firebase-log-type": "callable-request-verification"},
  "jsonPayload": {
    "message": "Callable header verifications passed.",
    "verifications": {
      // ...
      "app": "MISSING",  // VALID, INVALID, or MISSING
    }
  }
}

شما می توانید این معیارها در ابر کنسول گوگل توسط تجزیه و تحلیل ایجاد یک سیاهههای مربوط مبتنی بر ضد متریک با فیلتر متریک زیر است:

resource.type="cloud_function"
resource.labels.function_name="YOUR_CLOUD_FUNCTION"
resource.labels.region="us-central1"
labels.firebase-log-type="callable-request-verification"

برچسب متریک استفاده از قسمت jsonPayload.verifications.appCheck .

5. اجرا را فعال کنید

برای فعال کردن اعمال، دستورالعمل‌های مربوط به هر محصول را در زیر دنبال کنید. هنگامی که اجرای یک محصول را فعال کنید، همه درخواست‌های تأیید نشده برای آن محصول رد می‌شوند.

پایگاه داده بیدرنگ، Cloud Firestore و Cloud Storage

برای فعال کردن اعمال برای پایگاه داده Realtime، Cloud Firestore (iOS و Android) و Cloud Storage:

  1. را باز تنظیمات پروژه> برنامه را بررسی کنید بخش از کنسول فایربیس.

  2. نمای معیارهای محصولی را که می‌خواهید اجرای آن را فعال کنید، گسترش دهید.

  3. کلیک کنید اجرای و انتخاب خود را تایید کنید.

توجه داشته باشید که تا 10 دقیقه پس از فعال کردن اجرای اعمال می‌شود.

توابع ابری

مشاهده فعال کردن برنامه بررسی اجرای برای توابع ابر .

مراحل بعدی

اگر بعد از اینکه برنامه خود را برای بررسی برنامه ثبت کردید، می خواهید برنامه خود را در محیطی اجرا کنید که App Check معمولاً آن را به عنوان معتبر طبقه بندی نمی کند، مانند شبیه ساز در طول توسعه، یا از یک محیط یکپارچه سازی مداوم (CI)، می توانید یک ساختار اشکال زدایی از برنامه خود ایجاد کنید که از ارائه دهنده اشکال زدایی App Check به جای ارائه دهنده گواهی واقعی استفاده می کند.

مشاهده استفاده از نرم افزار چک با ارائه دهنده اشکال زدایی در آندروید .