এই পৃষ্ঠাটি আপনাকে দেখাবে কিভাবে আপনার নিজস্ব App Check প্রোভাইডার ব্যবহার করে একটি অ্যান্ড্রয়েড অ্যাপে App Check সক্রিয় করতে হয়। যখন আপনি App Check সক্রিয় করেন, তখন আপনি এটি নিশ্চিত করতে সাহায্য করেন যে শুধুমাত্র আপনার অ্যাপই আপনার প্রোজেক্টের ফায়ারবেস রিসোর্সগুলো অ্যাক্সেস করতে পারবে।
আপনি যদি ডিফল্ট প্লে ইন্টিগ্রিটি প্রোভাইডারের সাথে App Check ব্যবহার করতে চান, তাহলে অ্যান্ড্রয়েডে প্লে ইন্টিগ্রিটির সাথে App Check সক্ষম করুন দেখুন।
শুরু করার আগে
আপনার অ্যান্ড্রয়েড প্রজেক্টে ফায়ারবেস যোগ করুন, যদি আগে থেকে তা না করে থাকেন।
আপনার নিজস্ব App Check প্রোভাইডারের সার্ভার-সাইড লজিক প্রয়োগ করুন ।
১. আপনার অ্যাপে App Check লাইব্রেরিটি যোগ করুন
আপনার মডিউল (অ্যাপ-লেভেল) গ্রেডল ফাইলে (সাধারণত<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.11.0")) // 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") }
Firebase Android BoM ব্যবহার করলে, আপনার অ্যাপ সর্বদা Firebase Android লাইব্রেরিগুলোর সামঞ্জস্যপূর্ণ সংস্করণ ব্যবহার করবে।
(বিকল্প) BoM ব্যবহার না করে ফায়ারবেস লাইব্রেরি নির্ভরতা যোগ করুন
আপনি যদি Firebase BoM ব্যবহার না করার সিদ্ধান্ত নেন, তাহলে আপনাকে প্রতিটি 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:19.0.2") }
২. App Check ইন্টারফেসগুলো বাস্তবায়ন করুন
প্রথমে, আপনাকে এমন ক্লাস তৈরি করতে হবে যা AppCheckProvider এবং AppCheckProviderFactory ইন্টারফেসগুলো ইমপ্লিমেন্ট করে।
আপনার AppCheckProvider ক্লাসে অবশ্যই একটি getToken() মেথড থাকতে হবে, যা আপনার কাস্টম App Check প্রোভাইডারের সত্যতার প্রমাণ হিসেবে প্রয়োজনীয় তথ্য সংগ্রহ করে এবং একটি App Check টোকেনের বিনিময়ে আপনার টোকেন অ্যাকুইজিশন সার্ভিসে পাঠায়। App Check SDK টোকেন ক্যাশিং পরিচালনা করে, তাই আপনার getToken() মেথডের ইমপ্লিমেন্টেশনে সর্বদা একটি নতুন টোকেন সংগ্রহ করুন।
Kotlin
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
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); } }
৩. App Check শুরু করুন
আপনার অ্যাপে নিম্নলিখিত ইনিশিয়ালাইজেশন কোডটি যোগ করুন, যাতে অন্য কোনো Firebase SDK ব্যবহার করার আগে এটি রান করে:
Kotlin
Firebase.initialize(context) Firebase.appCheck.installAppCheckProviderFactory( YourCustomAppCheckProviderFactory(), )
Java
FirebaseApp.initializeApp(/*context=*/ context); FirebaseAppCheck firebaseAppCheck = FirebaseAppCheck.getInstance(); firebaseAppCheck.installAppCheckProviderFactory( new YourCustomAppCheckProviderFactory());
পরবর্তী পদক্ষেপ
আপনার অ্যাপে App Check লাইব্রেরিটি ইনস্টল হয়ে গেলে, ব্যবহারকারীদের কাছে আপডেট করা অ্যাপটি বিতরণ করা শুরু করুন।
আপডেট করা ক্লায়েন্ট অ্যাপটি ফায়ারবেসে করা প্রতিটি অনুরোধের সাথে App Check টোকেন পাঠানো শুরু করবে, কিন্তু ফায়ারবেস কনসোলের App Check বিভাগে আপনি এনফোর্সমেন্ট সক্রিয় না করা পর্যন্ত ফায়ারবেস প্রোডাক্টগুলোর জন্য টোকেনগুলো বৈধ থাকার প্রয়োজন হবে না।
মেট্রিক নিরীক্ষণ করুন এবং প্রয়োগ সক্ষম করুন
তবে, এনফোর্সমেন্ট চালু করার আগে আপনার নিশ্চিত হয়ে নেওয়া উচিত যে, এর ফলে আপনার বিদ্যমান বৈধ ব্যবহারকারীদের কোনো অসুবিধা হবে না। অন্যদিকে, যদি আপনি আপনার অ্যাপের রিসোর্সের সন্দেহজনক ব্যবহার দেখতে পান, তাহলে আপনি আরও দ্রুত এনফোর্সমেন্ট চালু করতে চাইতে পারেন।
এই সিদ্ধান্ত নিতে সাহায্য করার জন্য, আপনি আপনার ব্যবহৃত পরিষেবাগুলোর App Check মেট্রিক্স দেখতে পারেন:
- Firebase AI Logic , Data Connect , Realtime Database , Cloud Firestore , Cloud Storage , Authentication , Google Identity for iOS, Maps JavaScript API, এবং Places API (New)-এর জন্য App Check রিকোয়েস্ট মেট্রিক্স মনিটর করুন ।
- Cloud Functions জন্য App Check অনুরোধের মেট্রিক্স নিরীক্ষণ করুন ।
App Check প্রয়োগ সক্ষম করুন
যখন আপনি বুঝতে পারবেন App Check আপনার ব্যবহারকারীদের কীভাবে প্রভাবিত করবে এবং আপনি এগিয়ে যেতে প্রস্তুত হবেন, তখন আপনি App Check এনফোর্সমেন্ট সক্রিয় করতে পারেন:
- Firebase AI Logic , Data Connect , Realtime Database , Cloud Firestore , Cloud Storage , Authentication , Google Identity for iOS, Maps JavaScript API, এবং Places API (নতুন)-এর জন্য App Check এনফোর্সমেন্ট সক্রিয় করুন ।
- Cloud Functions জন্য App Check প্রয়োগ সক্ষম করুন ।
ডিবাগ পরিবেশে App Check ব্যবহার করুন
App Check জন্য আপনার অ্যাপটি নিবন্ধন করার পর, আপনি যদি এমন কোনো পরিবেশে আপনার অ্যাপটি চালাতে চান যা App Check সাধারণত বৈধ বলে গণ্য করে না, যেমন ডেভেলপমেন্টের সময় কোনো এমুলেটর থেকে, অথবা কোনো কন্টিনিউয়াস ইন্টিগ্রেশন (CI) পরিবেশ থেকে, তাহলে আপনি একটি আসল অ্যাটেস্টেশন প্রোভাইডারের পরিবর্তে App Check ডিবাগ প্রোভাইডার ব্যবহার করে আপনার অ্যাপের একটি ডিবাগ বিল্ড তৈরি করতে পারেন।
অ্যান্ড্রয়েডে ডিবাগ প্রোভাইডারের সাথে App Check ব্যবহার দেখুন।