অ্যাপল প্ল্যাটফর্মে অ্যাপ অ্যাটেস্ট সহ অ্যাপ চেক সক্ষম করুন

এই পৃষ্ঠাটি আপনাকে দেখায় কিভাবে একটি Apple অ্যাপে অ্যাপ চেক সক্ষম করতে হয়, বিল্ট-ইন অ্যাপ অ্যাটেস্ট প্রদানকারী ব্যবহার করে। আপনি যখন অ্যাপ চেক সক্ষম করেন, তখন আপনি নিশ্চিত করতে সাহায্য করেন যে শুধুমাত্র আপনার অ্যাপ আপনার প্রকল্পের ফায়ারবেস সংস্থানগুলি অ্যাক্সেস করতে পারে। এই বৈশিষ্ট্য একটি ওভারভিউ দেখুন.

ফায়ারবেস পরিষেবাগুলির অনুরোধগুলি আপনার খাঁটি অ্যাপ থেকে আসছে কিনা তা যাচাই করতে অ্যাপ চেক অ্যাপ অ্যাটেস্ট ব্যবহার করে। অ্যাপ চেক বর্তমানে জালিয়াতির ঝুঁকি বিশ্লেষণ করতে অ্যাপ অ্যাটেস্ট ব্যবহার করে না।

আপনি যদি আপনার নিজস্ব কাস্টম প্রদানকারীর সাথে অ্যাপ চেক ব্যবহার করতে চান, একটি কাস্টম অ্যাপ চেক প্রদানকারীকে প্রয়োগ করুন দেখুন

1. আপনার Firebase প্রকল্প সেট আপ করুন

  1. App Attest ব্যবহার করতে আপনার Xcode 12.5+ প্রয়োজন হবে।

  2. আপনি যদি ইতিমধ্যে এটি না করে থাকেন তবে আপনার Apple প্রকল্পে Firebase যোগ করুন

  3. Firebase কনসোলের অ্যাপ চেক বিভাগে অ্যাপ অ্যাটেস্ট প্রদানকারীর সাথে অ্যাপ চেক ব্যবহার করতে আপনার অ্যাপগুলি নিবন্ধন করুন।

    আপনাকে সাধারণত আপনার প্রকল্পের সমস্ত অ্যাপ নিবন্ধন করতে হবে, কারণ একবার আপনি একটি Firebase পণ্যের জন্য এনফোর্সমেন্ট সক্ষম করলে, শুধুমাত্র নিবন্ধিত অ্যাপগুলি পণ্যের ব্যাকএন্ড সংস্থানগুলি অ্যাক্সেস করতে সক্ষম হবে৷

  4. ঐচ্ছিক : অ্যাপ রেজিস্ট্রেশন সেটিংসে, প্রদানকারীর দ্বারা জারি করা অ্যাপ চেক টোকেনের জন্য একটি কাস্টম টাইম-টু-লাইভ (TTL) সেট করুন। আপনি TTL 30 মিনিট থেকে 7 দিনের মধ্যে যেকোনো মান সেট করতে পারেন। এই মান পরিবর্তন করার সময়, নিম্নলিখিত ট্রেডঅফ সম্পর্কে সচেতন হন:

    • নিরাপত্তা: সংক্ষিপ্ত TTLগুলি শক্তিশালী নিরাপত্তা প্রদান করে, কারণ এটি সেই উইন্ডোকে হ্রাস করে যেখানে একটি ফাঁস হওয়া বা আটকানো টোকেন আক্রমণকারী দ্বারা অপব্যবহার করা যেতে পারে।
    • পারফরম্যান্স: ছোট TTL মানে আপনার অ্যাপ আরও ঘন ঘন প্রত্যয়ন করবে। যেহেতু অ্যাপ্লিকেশানের প্রত্যয়ন প্রক্রিয়াটি প্রতিবার সম্পাদিত হওয়ার সময় নেটওয়ার্ক অনুরোধগুলিতে বিলম্বিত করে, তাই একটি সংক্ষিপ্ত TTL আপনার অ্যাপের কার্যকারিতাকে প্রভাবিত করতে পারে।
    • কোটা এবং খরচ: সংক্ষিপ্ত TTL এবং ঘন ঘন পুনঃপ্রত্যয়ন আপনার কোটা দ্রুত হ্রাস করে এবং অর্থপ্রদানের পরিষেবার জন্য, সম্ভাব্যভাবে আরও বেশি খরচ হতে পারে। কোটা এবং সীমা দেখুন।

    বেশিরভাগ অ্যাপের জন্য 1 ঘন্টার ডিফল্ট TTL যুক্তিসঙ্গত। মনে রাখবেন যে অ্যাপ চেক লাইব্রেরি টিটিএল সময়কালের প্রায় অর্ধেক সময়ে টোকেন রিফ্রেশ করে।

2. আপনার অ্যাপে অ্যাপ চেক লাইব্রেরি যোগ করুন

  1. আপনার প্রকল্পের Podfile অ্যাপ চেকের জন্য নির্ভরতা যোগ করুন:

    pod 'FirebaseAppCheck'

    অথবা, বিকল্পভাবে, আপনি পরিবর্তে সুইফট প্যাকেজ ম্যানেজার ব্যবহার করতে পারেন।

    আপনি যে অন্য ফায়ারবেস SDK-এর উপর নির্ভরশীল তার সর্বশেষ সংস্করণও ব্যবহার করছেন তা নিশ্চিত করুন।

  2. pod install চালান এবং তৈরি .xcworkspace ফাইলটি খুলুন।

  3. Xcode-এ, আপনার অ্যাপে অ্যাপ অ্যাটেস্ট ক্ষমতা যোগ করুন।

  4. আপনার প্রজেক্টের .entitlements ফাইলে, অ্যাপ অ্যাটেস্ট এনভায়রনমেন্টকে production সেট করুন।

3. অ্যাপ চেক শুরু করুন

অন্য কোনো Firebase SDK ব্যবহার করার আগে আপনাকে অ্যাপ চেক শুরু করতে হবে।

প্রথমে, AppCheckProviderFactory এর একটি বাস্তবায়ন লিখুন। আপনার বাস্তবায়নের সুনির্দিষ্টতা আপনার ব্যবহারের ক্ষেত্রে নির্ভর করবে।

উদাহরণস্বরূপ, যদি আপনার শুধুমাত্র iOS 14 এবং পরবর্তী ব্যবহারকারী থাকে, তাহলে আপনি সহজভাবে AppAttestProvider অবজেক্ট তৈরি করতে পারেন:

সুইফট

দ্রষ্টব্য: এই Firebase পণ্যটি watchOS লক্ষ্যে উপলব্ধ নয়।

class YourSimpleAppCheckProviderFactory: NSObject, AppCheckProviderFactory {
  func createProvider(with app: FirebaseApp) -> AppCheckProvider? {
    return AppAttestProvider(app: app)
  }
}

উদ্দেশ্য গ

দ্রষ্টব্য: এই Firebase পণ্যটি watchOS লক্ষ্যে উপলব্ধ নয়।

@interface YourSimpleAppCheckProviderFactory : NSObject <FIRAppCheckProviderFactory>
@end

@implementation YourSimpleAppCheckProviderFactory

- (nullable id<FIRAppCheckProvider>)createProviderWithApp:(nonnull FIRApp *)app {
  return [[FIRAppAttestProvider alloc] initWithApp:app];
}

@end

অথবা, আপনি iOS 14 এবং পরবর্তীতে AppAttestProvider অবজেক্ট তৈরি করতে পারেন এবং আগের সংস্করণে DeviceCheckProvider এ ফিরে যেতে পারেন:

সুইফট

দ্রষ্টব্য: এই Firebase পণ্যটি watchOS লক্ষ্যে উপলব্ধ নয়।

class YourAppCheckProviderFactory: NSObject, AppCheckProviderFactory {
  func createProvider(with app: FirebaseApp) -> AppCheckProvider? {
    if #available(iOS 14.0, *) {
      return AppAttestProvider(app: app)
    } else {
      return DeviceCheckProvider(app: app)
    }
  }
}

উদ্দেশ্য গ

দ্রষ্টব্য: এই Firebase পণ্যটি watchOS লক্ষ্যে উপলব্ধ নয়।

@interface YourAppCheckProviderFactory : NSObject <FIRAppCheckProviderFactory>
@end

@implementation YourAppCheckProviderFactory

- (nullable id<FIRAppCheckProvider>)createProviderWithApp:(nonnull FIRApp *)app {
  if (@available(iOS 14.0, *)) {
    return [[FIRAppAttestProvider alloc] initWithApp:app];
  } else {
    return [[FIRDeviceCheckProvider alloc] initWithApp:app];
  }
}

@end

আপনি একটি AppCheckProviderFactory ক্লাস প্রয়োগ করার পরে, এটি ব্যবহার করার জন্য অ্যাপ চেক কনফিগার করুন:

সুইফট

দ্রষ্টব্য: এই Firebase পণ্যটি watchOS লক্ষ্যে উপলব্ধ নয়।

let providerFactory = YourAppCheckProviderFactory()
AppCheck.setAppCheckProviderFactory(providerFactory)

FirebaseApp.configure()

উদ্দেশ্য গ

দ্রষ্টব্য: এই Firebase পণ্যটি watchOS লক্ষ্যে উপলব্ধ নয়।

YourAppCheckProviderFactory *providerFactory =
        [[YourAppCheckProviderFactory alloc] init];
[FIRAppCheck setAppCheckProviderFactory:providerFactory];

[FIRApp configure];

একবার আপনার অ্যাপে অ্যাপ চেক লাইব্রেরি ইনস্টল হয়ে গেলে, আপডেট করা অ্যাপটি আপনার ব্যবহারকারীদের কাছে বিতরণ করা শুরু করুন।

আপডেট হওয়া ক্লায়েন্ট অ্যাপটি Firebase-এ করা প্রতিটি অনুরোধের সাথে অ্যাপ চেক টোকেন পাঠানো শুরু করবে, কিন্তু Firebase পণ্যগুলির টোকেন বৈধ হওয়ার প্রয়োজন হবে না যতক্ষণ না আপনি Firebase কনসোলের অ্যাপ চেক বিভাগে এনফোর্সমেন্ট সক্ষম করছেন। বিস্তারিত জানার জন্য পরবর্তী দুটি বিভাগ দেখুন।

5. অনুরোধের মেট্রিক্স মনিটর করুন

এখন যেহেতু আপনার আপডেট করা অ্যাপটি ব্যবহারকারীদের হাতে রয়েছে, আপনি যে ফায়ারবেস পণ্যগুলি ব্যবহার করেন তার জন্য অ্যাপ চেকের প্রয়োগ সক্ষম করতে পারেন৷ আপনি এটি করার আগে, তবে, আপনাকে নিশ্চিত করতে হবে যে এটি করা আপনার বিদ্যমান বৈধ ব্যবহারকারীদের ব্যাহত করবে না।

রিয়েলটাইম ডেটাবেস, ক্লাউড ফায়ারস্টোর এবং ক্লাউড স্টোরেজ

রিয়েলটাইম ডেটাবেস, ক্লাউড ফায়ারস্টোর এবং ক্লাউড স্টোরেজের জন্য এই সিদ্ধান্ত নিতে আপনি একটি গুরুত্বপূর্ণ টুল ব্যবহার করতে পারেন তা হল অ্যাপ চেক অনুরোধ মেট্রিক্স স্ক্রীন।

একটি পণ্যের জন্য অ্যাপ চেক অনুরোধের মেট্রিক্স দেখতে, Firebase কনসোলের অ্যাপ চেক বিভাগটি খুলুন। উদাহরণ স্বরূপ:

অ্যাপ চেক মেট্রিক্স পৃষ্ঠার স্ক্রিনশট

প্রতিটি পণ্যের জন্য অনুরোধের মেট্রিক্স চারটি বিভাগে বিভক্ত:

  • যাচাইকৃত অনুরোধগুলি হল সেইগুলি যেগুলির একটি বৈধ অ্যাপ চেক টোকেন রয়েছে৷ আপনি অ্যাপ চেক এনফোর্সমেন্ট সক্ষম করার পরে, শুধুমাত্র এই বিভাগের অনুরোধগুলি সফল হবে৷

  • পুরানো ক্লায়েন্ট অনুরোধগুলি হল সেইগুলি যেগুলির একটি অ্যাপ চেক টোকেন নেই৷ অ্যাপ চেক অ্যাপে অন্তর্ভুক্ত করার আগে এই অনুরোধগুলি Firebase SDK-এর পুরানো সংস্করণ থেকে হতে পারে।

  • অজানা মূল অনুরোধগুলি হল সেইগুলি যেগুলিতে একটি অ্যাপ চেক টোকেন নেই এবং মনে হচ্ছে না যে সেগুলি Firebase SDK থেকে এসেছে৷ এগুলি চুরি করা API কীগুলির সাহায্যে করা অনুরোধ থেকে হতে পারে বা Firebase SDK ছাড়াই করা জাল অনুরোধ থেকে হতে পারে৷

  • অবৈধ অনুরোধগুলি হল সেইগুলি যেগুলির একটি অবৈধ অ্যাপ চেক টোকেন রয়েছে, যা আপনার অ্যাপের ছদ্মবেশী করার চেষ্টাকারী একটি অপ্রমাণিত ক্লায়েন্ট বা অনুকরণ করা পরিবেশ থেকে হতে পারে৷

আপনি যখন এনফোর্সমেন্ট সক্ষম করার সিদ্ধান্ত নেন তখন আপনার অ্যাপের জন্য এই বিভাগগুলির ডিস্ট্রিবিউশনকে জানানো উচিত। এখানে কিছু নির্দেশিকা আছে:

  • যদি সাম্প্রতিক অনুরোধগুলির প্রায় সবগুলিই যাচাইকৃত ক্লায়েন্টদের কাছ থেকে হয়, তাহলে আপনার ব্যাকএন্ড সংস্থানগুলিকে সুরক্ষিত করার জন্য এনফোর্সমেন্ট সক্ষম করার কথা বিবেচনা করুন৷

  • যদি সাম্প্রতিক অনুরোধগুলির একটি উল্লেখযোগ্য অংশ সম্ভবত পুরানো ক্লায়েন্টদের কাছ থেকে হয়, ব্যবহারকারীদের ব্যাঘাত এড়াতে, প্রয়োগ সক্ষম করার আগে আরও ব্যবহারকারীদের আপনার অ্যাপ আপডেট করার জন্য অপেক্ষা করার কথা বিবেচনা করুন। রিলিজ করা অ্যাপে অ্যাপ চেক এনফোর্স করা অ্যাপ চেক SDK-এর সাথে একত্রিত নয় এমন অ্যাপের আগের সংস্করণগুলিকে ভেঙে দেবে।

  • যদি আপনার অ্যাপটি এখনও চালু না হয়ে থাকে, তাহলে আপনাকে অবিলম্বে অ্যাপ চেক এনফোর্সমেন্ট সক্ষম করতে হবে, যেহেতু কোনও পুরানো ক্লায়েন্ট ব্যবহারে নেই৷

ক্লাউড ফাংশন

ক্লাউড ফাংশনগুলির জন্য, আপনি আপনার ফাংশনগুলির লগগুলি পরীক্ষা করে অ্যাপ চেক মেট্রিক্স পেতে পারেন৷ একটি কলযোগ্য ফাংশনের প্রতিটি আহ্বান নিম্নলিখিত উদাহরণের মতো একটি কাঠামোবদ্ধ লগ এন্ট্রি নির্গত করে:

{
  "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
    }
  }
}

আপনি নিম্নলিখিত মেট্রিক ফিল্টার সহ একটি লগ-ভিত্তিক কাউন্টার মেট্রিক তৈরি করে Google ক্লাউড কনসোলে এই মেট্রিকগুলি বিশ্লেষণ করতে পারেন:

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 ফিল্ডটি ব্যবহার করে মেট্রিক লেবেল করুন

6. প্রয়োগ সক্ষম করুন

প্রয়োগ সক্ষম করতে, প্রতিটি পণ্যের জন্য নীচের নির্দেশাবলী অনুসরণ করুন। একবার আপনি একটি পণ্যের জন্য এনফোর্সমেন্ট সক্ষম করলে, সেই পণ্যের সমস্ত অযাচাইকৃত অনুরোধ প্রত্যাখ্যান করা হবে।

রিয়েলটাইম ডেটাবেস, ক্লাউড ফায়ারস্টোর এবং ক্লাউড স্টোরেজ

রিয়েলটাইম ডেটাবেস, ক্লাউড ফায়ারস্টোর (আইওএস এবং অ্যান্ড্রয়েড), এবং ক্লাউড স্টোরেজের জন্য এনফোর্সমেন্ট সক্ষম করতে:

  1. Firebase কনসোলের অ্যাপ চেক বিভাগটি খুলুন।

  2. আপনি যে পণ্যটির জন্য প্রয়োগ সক্ষম করতে চান তার মেট্রিক্স ভিউ প্রসারিত করুন।

  3. এনফোর্স ক্লিক করুন এবং আপনার পছন্দ নিশ্চিত করুন।

মনে রাখবেন যে এটি কার্যকর হওয়ার জন্য আপনি এনফোর্সমেন্ট সক্ষম করার পরে এটি 15 মিনিট পর্যন্ত সময় নিতে পারে৷

ক্লাউড ফাংশন

ক্লাউড ফাংশনের জন্য অ্যাপ চেক এনফোর্সমেন্ট সক্ষম করুন দেখুন।

পরবর্তী পদক্ষেপ

আপনি যদি অ্যাপ চেকের জন্য আপনার অ্যাপ নিবন্ধন করার পরে, আপনি এমন পরিবেশে আপনার অ্যাপ চালাতে চান যা অ্যাপ চেক সাধারণত বৈধ হিসাবে শ্রেণীবদ্ধ করে না, যেমন বিকাশের সময় একটি সিমুলেটর, বা একটি অবিচ্ছিন্ন ইন্টিগ্রেশন (CI) পরিবেশ থেকে, আপনি করতে পারেন আপনার অ্যাপের একটি ডিবাগ বিল্ড তৈরি করুন যা প্রকৃত সত্যায়ন প্রদানকারীর পরিবর্তে অ্যাপ চেক ডিবাগ প্রদানকারী ব্যবহার করে।

অ্যাপল প্ল্যাটফর্মে ডিবাগ প্রদানকারীর সাথে অ্যাপ চেক ব্যবহার করুন দেখুন।