شروع به کار با App Check با Play Integrity در Android

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

ارائه‌دهنده Play Integrity از برنامه‌های Android که در Google Play، خارج از Google Play، یا هر دو منتشر شده‌اند پشتیبانی می‌کند. اگر مورد استفاده شما به ویژگی‌های Play Integrity نیاز دارد که توسط App Check پیاده‌سازی نشده است، یا اگر می‌خواهید از App Check با ارائه‌دهنده سفارشی خودتان استفاده کنید، به پیاده‌سازی ارائه‌دهنده سفارشی App Check مراجعه کنید.

۱. راه‌اندازی پروژه Firebase

  1. اگر قبلاً این کار را نکرده‌اید، Firebase را به پروژه Android خود اضافه کنید.

  2. فعال کردن Play Integrity API:

    1. در کنسول Google Play، برنامه‌تان را انتخاب کنید، یا اگر قبلاً این کار را نکرده‌اید، آن را اضافه کنید.

    2. در بخش انتشار، روی تمامیت برنامه کلیک کنید.

    3. به بخش Play Integrity API در صفحه بروید، روی پیوند دادن پروژه Cloud کلیک کنید، سپس پروژه Firebase خود را از فهرست پروژه‌های Google Cloud انتخاب کنید. پروژه‌ای که در اینجا انتخاب می‌کنید باید همان پروژه Firebase باشد که برنامه‌تان را در آن ثبت می‌کنید (مرحله بعدی را ببینید).

  3. در کنسول Firebase، به امنیت > بررسی برنامه بروید.

  4. در برگه برنامه‌ها، برنامه‌هایتان را ثبت کنید تا از App Check با ارائه‌دهنده Play Integrity استفاده کنید. باید اثر انگشت SHA-256 گواهی امضای برنامه‌تان را ارائه دهید.

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

  5. اختیاری: زمان بقای (TTL) کد را تنظیم کنید.

    در تنظیمات ثبت برنامه، زمان سفارشی برای زندگی (TTL) را برای نشان‌های App Check صادرشده توسط ارائه‌دهنده تنظیم کنید. می‌توانید TTL را روی هر مقداری بین ۳۰ دقیقه و ۷ روز تنظیم کنید. هنگام تغییر این مقدار، به مبادله‌های زیر توجه داشته باشید:

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

    TTL پیش‌فرض ۱ ساعت برای اکثر برنامه‌ها مناسب است. توجه داشته باشید که کتابخانه App Check ژتون‌ها را تقریباً در نیمی از مدت TTL بازآوری می‌کند.

پیکربندی تنظیمات پیشرفته (اختیاری)

App Check تنظیمات متعددی را برای پشتیبانی از موارد استفاده پیشرفته ارائه می‌دهد، ازجمله توزیع برنامه شما در خارج از Google Play. برای هرکدام از برنامه‌های Android ثبت‌شده‌تان، می‌توانید این تنظیمات را در برگه App Check > برنامه‌ها در کنسول Firebase پیکربندی کنید. توصیه می‌کنیم این تنظیمات را هنگام اولین ثبت برنامه‌تان مطابق با جدول زیر پیکربندی کنید.

کانال توزیع برنامه شما PLAY_RECOGNIZED دارای پروانه حداقل سطح قابل‌قبول تمامیت دستگاه
منحصراً در Google Play ضروری ضروری سطح تمامیت دستگاه به‌طور صریح بررسی نمی‌شود
منحصراً خارج از Google Play الزامی نیست الزامی نیست تمامیت دستگاه
در Google Play و خارج از Google Play ضروری الزامی نیست سطح تمامیت دستگاه به‌طور صریح بررسی نمی‌شود

جزئیات

هر تنظیم پیشرفته با یک برچسب حکم Play Integrity مطابقت دارد. برای جزئیات بیشتر، به اسناد Play Integrity مراجعه کنید.

  • به‌طور پیش‌فرض، App Check به برچسب تشخیص برنامه PLAY_RECOGNIZED نیاز دارد. برنامه‌هایی که در Google Play منتشر نشده‌اند واجدشرایط دریافت این برچسب نیستند.
  • به‌طور پیش‌فرض، App Check به برچسب صدور پروانه برنامه LICENSED نیاز ندارد. فقط کاربرانی که برنامه‌تان را مستقیماً از Google Play نصب یا به‌روزرسانی کرده‌اند واجدشرایط دریافت این برچسب هستند.
  • به‌طور پیش‌فرض، App Check به‌طور صریح حکم تمامیت دستگاه را بررسی نمی‌کند. App Check به‌طور صریح سه سطح تمامیت دستگاه زیر را بررسی می‌کند که به‌ترتیب افزایش تمامیت دستگاه فهرست شده‌اند.

    • تمامیت پایه. باعث می‌شود App Check به برچسب تشخیص دستگاه MEETS_BASIC_INTEGRITY نیاز داشته باشد. برای اینکه برنامه‌تان واجدشرایط دریافت این برچسب اختیاری باشد، ابتدا باید ازطریق «کنسول Google Play» موافقت کنید.

    • تمامیت دستگاه. باعث می‌شود App Check به برچسب تشخیص دستگاه MEETS_DEVICE_INTEGRITY نیاز داشته باشد. همه برنامه‌ها به‌طور خودکار واجدشرایط دریافت این برچسب هستند.

    • تمامیت قوی. باعث می‌شود App Check به برچسب تشخیص دستگاه MEETS_STRONG_INTEGRITY نیاز داشته باشد. برای اینکه برنامه‌تان واجدشرایط دریافت این برچسب اختیاری باشد، ابتدا باید ازطریق «کنسول Google Play» موافقت کنید.

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

در فایل Gradle (سطح برنامه) (معمولاً <project>/<app-module>/build.gradle.kts یا <project>/<app-module>/build.gradle)، وابستگی کتابخانه App Check را برای Android اضافه کنید. توصیه می‌کنیم از Firebase Android BoM برای کنترل نسخه‌بندی کتابخانه استفاده کنید.

dependencies {
    // Import the BoM for the Firebase platform
    implementation(platform("com.google.firebase:firebase-bom:35.0.2"))

    // Add the dependencies for the App Check libraries
    // When using the BoM, you don't specify versions in Firebase library dependencies
    implementation("com.google.firebase:firebase-appcheck-playintegrity")
}

بااستفاده از Firebase Android BoM، برنامه شما همیشه از نسخه‌های سازگار کتابخانه‌های Firebase Android استفاده خواهد کرد.

(جایگزین)  افزودن وابستگی‌های کتابخانه Firebase بدون استفاده از BoM

اگر انتخاب کنید که از Firebase BoM استفاده نکنید، باید هر نسخه کتابخانه Firebase را در خط وابستگی آن مشخص کنید.

توجه داشته باشید که اگر از چند کتابخانه Firebase در برنامه‌تان استفاده می‌کنید، اکیداً توصیه می‌کنیم از BoM برای مدیریت نسخه‌های کتابخانه استفاده کنید تا مطمئن شوید همه نسخه‌ها سازگار هستند.

dependencies {
    // Add the dependencies for the App Check libraries
    // When NOT using the BoM, you must specify versions in Firebase library dependencies
    implementation("com.google.firebase:firebase-appcheck-playintegrity:20.0.0")
}

۳. مقداردهی اولیه App Check

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

Kotlin

Firebase.initialize(context = this)
Firebase.appCheck.installAppCheckProviderFactory(
    PlayIntegrityAppCheckProviderFactory.getInstance(),
)

Java

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

مراحل بعدی

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

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

پایش سنجه‌ها و فعال کردن اجرا

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

برای کمک به گرفتن این تصمیم، می‌توانید به سنجه‌های App Check برای سرویس‌هایی که استفاده می‌کنید نگاه کنید:

فعال کردن اجرای App Check

وقتی متوجه شدید که App Check چه تأثیری بر کاربران شما خواهد داشت و آماده بودید که ادامه دهید، می‌توانید اجرای App Check را فعال کنید:

استفاده از App Check در محیط‌های اشکال‌زدایی

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

استفاده از App Check با ارائه‌دهنده اشکال‌زدایی در Android را ببینید.