شروع به استفاده از App Check با Play Integrity در Android کنید

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

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

۱. پروژه فایربیس خود را راه‌اندازی کنید

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

  2. فعال کردن API یکپارچگی بازی:

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

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

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

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

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

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

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

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

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

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

کانال توزیع برنامه شما بازی_شناخته_شده دارای مجوز حداقل سطح یکپارچگی قابل قبول دستگاه
منحصراً در گوگل پلی مورد نیاز مورد نیاز سطح یکپارچگی دستگاه را به طور صریح بررسی نکنید
منحصراً خارج از گوگل پلی لازم نیست لازم نیست یکپارچگی دستگاه
در گوگل پلی و خارج از گوگل پلی مورد نیاز لازم نیست سطح یکپارچگی دستگاه را به طور صریح بررسی نکنید

جزئیات

هر تنظیم پیشرفته با یک برچسب حکم 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 برای اندروید را اضافه کنید. توصیه می‌کنیم از Firebase Android BoM برای کنترل نسخه‌بندی کتابخانه استفاده کنید.

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

    // 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 استفاده خواهد کرد.

(جایگزین) اضافه کردن وابستگی‌های کتابخانه 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:19.0.1")
}

۳. App Check

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

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 در برنامه خود، شروع به توزیع برنامه به‌روزرسانی‌شده بین کاربران خود کنید.

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

نظارت بر معیارها و فعال کردن اجرای آنها

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

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

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

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

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

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

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