توضّح لك هذه الصفحة كيفية تفعيل ميزة "التحقّق من التطبيقات" في أحد تطبيقات Android، باستخدام موفّر خدمة "التحقّق من التطبيقات" المخصّص. عند تفعيل فحص التطبيقات، تسهم في ضمان وصول تطبيقك فقط إلى موارد Firebase لمشروعك.
إذا أردت استخدام ميزة "فحص التطبيق" مع موفِّر Play Integrity التلقائي، يُرجى الاطّلاع على تفعيل ميزة "فحص التطبيق" باستخدام ميزة Play Integrity على Android.
قبل البدء
أضِف Firebase إلى مشروع Android إذا لم يسبق لك إجراء ذلك.
تنفيذ منطق من جهة الخادم لموفِّر خدمة "التحقّق من التطبيقات"
1- إضافة مكتبة فحص التطبيقات إلى تطبيقك
في ملف Gradle للوحدة (على مستوى التطبيق) (عادةً<project>/<app-module>/build.gradle.kts
أو
<project>/<app-module>/build.gradle
)، أضِف الاعتمادية لمكتبة "فحص التطبيقات" لنظام التشغيل Android. ننصح باستخدام
بنود سياسة Android في Firebase
للتحكّم في نُسَخ المكتبة.
dependencies { // Import the BoM for the Firebase platform implementation(platform("com.google.firebase:firebase-bom:33.1.2")) // Add the dependency for the App Check library // When using the BoM, you don't specify versions in Firebase library dependencies implementation("com.google.firebase:firebase-appcheck") }
باستخدام أداة إدارة قوائم التشغيل Android في Firebase، سيستخدم تطبيقك دائمًا الإصدارات المتوافقة من مكتبات Android في Firebase.
(بديل) إضافة ملحقات مكتبة Firebase بدون استخدام BoM
إذا اخترت عدم استخدام قائمة العناصر في Firebase، يجب تحديد كل إصدار من مكتبة Firebase في سطر الاعتمادية الخاص به.
يُرجى العِلم أنّه إذا كنت تستخدم مكتبات متعددة لمنصة Firebase في تطبيقك، ننصحك بشدّة باستخدام BoM لإدارة إصدارات المكتبة، ما يضمن توافق جميع الإصدارات.
dependencies { // Add the dependency for the App Check library // When NOT using the BoM, you must specify versions in Firebase library dependencies implementation("com.google.firebase:firebase-appcheck:18.0.0") }
2- تنفيذ واجهات "فحص التطبيقات"
عليك أولاً إنشاء صفوف تستخدم الواجهتين AppCheckProvider
وAppCheckProviderFactory
.
يجب أن تتضمن فئة AppCheckProvider
طريقة getToken()
، التي تجمع أي معلومات يطلبها موفِّر خدمة "فحص التطبيق" المخصَّص كإثبات للمصداقية، وترسلها إلى خدمة الحصول على الرموز المميّزة مقابل الحصول على رمز مميَّز لـ "فحص التطبيق". تتعامل حزمة تطوير البرامج (SDK) لفحص التطبيقات مع التخزين المؤقت للرموز المميّزة، لذا احرص دائمًا على الحصول على رمز مميّز جديد عند تنفيذ getToken()
.
Kotlin+KTX
class YourCustomAppCheckToken( private val token: String, private val expiration: Long, ) : AppCheckToken() { override fun getToken(): String = token override fun getExpireTimeMillis(): Long = expiration } class YourCustomAppCheckProvider(firebaseApp: FirebaseApp) : AppCheckProvider { override fun getToken(): Task<AppCheckToken> { // Logic to exchange proof of authenticity for an App Check token and // expiration time. // ... // Refresh the token early to handle clock skew. val expMillis = expirationFromServer * 1000L - 60000L // Create AppCheckToken object. val appCheckToken: AppCheckToken = YourCustomAppCheckToken(tokenFromServer, expMillis) return Tasks.forResult(appCheckToken) } }
Java
public class YourCustomAppCheckToken extends AppCheckToken { private String token; private long expiration; YourCustomAppCheckToken(String token, long expiration) { this.token = token; this.expiration = expiration; } @NonNull @Override public String getToken() { return token; } @Override public long getExpireTimeMillis() { return expiration; } } public class YourCustomAppCheckProvider implements AppCheckProvider { public YourCustomAppCheckProvider(FirebaseApp firebaseApp) { // ... } @NonNull @Override public Task<AppCheckToken> getToken() { // Logic to exchange proof of authenticity for an App Check token and // expiration time. // ... // Refresh the token early to handle clock skew. long expMillis = expirationFromServer * 1000L - 60000L; // Create AppCheckToken object. AppCheckToken appCheckToken = new YourCustomAppCheckToken(tokenFromServer, expMillis); return Tasks.forResult(appCheckToken); } }
عليك أيضًا تنفيذ فئة AppCheckProviderFactory
لإنشاء مثيلات لعملية تنفيذ AppCheckProvider
:
Kotlin+KTX
class YourCustomAppCheckProviderFactory : AppCheckProviderFactory { override fun create(firebaseApp: FirebaseApp): AppCheckProvider { // Create and return an AppCheckProvider object. return YourCustomAppCheckProvider(firebaseApp) } }
Java
public class YourCustomAppCheckProviderFactory implements AppCheckProviderFactory { @NonNull @Override public AppCheckProvider create(@NonNull FirebaseApp firebaseApp) { // Create and return an AppCheckProvider object. return new YourCustomAppCheckProvider(firebaseApp); } }
3- إعداد فحص التطبيقات
أضِف رمز الإعداد التالي إلى تطبيقك كي يتم تشغيله قبل استخدام أي حِزم تطوير برامج (SDK) أخرى لمنصّة Firebase:
Kotlin+KTX
Firebase.initialize(context) Firebase.appCheck.installAppCheckProviderFactory( YourCustomAppCheckProviderFactory(), )
Java
FirebaseApp.initializeApp(/*context=*/ context); FirebaseAppCheck firebaseAppCheck = FirebaseAppCheck.getInstance(); firebaseAppCheck.installAppCheckProviderFactory( new YourCustomAppCheckProviderFactory());
الخطوات اللاحقة
بعد تثبيت مكتبة "فحص التطبيقات" في تطبيقك، ابدأ في توزيع التطبيق المحدَّث على المستخدمين.
سيبدأ تطبيق العميل المحدّث في إرسال رموز "فحص التطبيق" مع كل طلب يتم تقديمه إلى Firebase، إلا أنّ منتجات Firebase لن تتطلب أن تكون الرموز المميزة صالحة إلى أن يتم تفعيل التنفيذ في قسم "فحص التطبيق" في وحدة تحكُّم Firebase.
مراقبة المقاييس وتفعيل التنفيذ
ومع ذلك، قبل تفعيل التنفيذ، يجب التأكّد من أنّ ذلك لن يعطّل المستخدمين الشرعيين الحاليين. من ناحية أخرى، إذا لاحظت استخدامًا مريبًا لموارد تطبيقك، ننصحك بتفعيل هذه الميزة في وقت أقرب.
للمساعدة في اتخاذ هذا القرار، يمكنك الاطّلاع على مقاييس "فحص التطبيق" للخدمات التي تستخدمها:
- مراقبة مقاييس طلب فحص التطبيق لقاعدة البيانات في الوقت الفعلي وCloud Firestore وCloud Storage والمصادقة (الإصدار التجريبي).
- مراقبة مقاييس طلب "فحص التطبيق" لوظائف السحابة الإلكترونية
تفعيل فرض فحص التطبيقات
بعد معرفة تأثير فحص التطبيقات على المستخدمين، وعند استعدادك للمتابعة، يمكنك تفعيل تنفيذ ميزة "فحص التطبيق":
- تفعيل فرض فحص التطبيقات لقاعدة البيانات في الوقت الفعلي، وCloud Firestore وCloud Storage والمصادقة (تجريبي).
- تفعيل فرض "التحقّق من التطبيقات" لوظائف السحابة الإلكترونية
استخدام ميزة "فحص التطبيقات" في بيئات تصحيح الأخطاء
بعد تسجيل تطبيقك في ميزة "فحص التطبيقات"، إذا أردت تشغيل تطبيقك في بيئة لا تصنّفها عادةً أداة "فحص التطبيقات" على أنّها صالحة، مثل المحاكي أثناء التطوير أو من بيئة تكامل مستمر (CI)، يمكنك إنشاء إصدار لتصحيح أخطاء تطبيقك ويستخدِم موفِّر تصحيح أخطاء التطبيق بدلاً من موفّر تصديق حقيقي.
راجِع مقالة استخدام ميزة "فحص التطبيق" مع موفِّر تصحيح الأخطاء على نظام Android.