আপনার API কী সুরক্ষিত করতে অ্যাপ চেক ব্যবহার করুন (নতুন)

ফায়ারবেস অ্যাপ চেক আপনার অ্যাপ থেকে Google মানচিত্র প্ল্যাটফর্মে কলের জন্য সুরক্ষা প্রদান করে যা বৈধ অ্যাপ ছাড়া অন্য উৎস থেকে আসা ট্রাফিক ব্লক করে। এটি অ্যাপ অ্যাটেস্টের মতো একটি প্রত্যয়ন প্রদানকারীর কাছ থেকে একটি টোকেন চেক করে এটি করে। অ্যাপ চেকের সাথে আপনার অ্যাপগুলিকে একীভূত করা দূষিত অনুরোধগুলি থেকে রক্ষা করতে সহায়তা করে, তাই আপনাকে অননুমোদিত API কলগুলির জন্য চার্জ করা হবে না।

অ্যাপ চেক কি আমার জন্য সঠিক?

বেশিরভাগ ক্ষেত্রে অ্যাপ চেক করার পরামর্শ দেওয়া হয়, তবে অ্যাপ চেকের প্রয়োজন নেই বা নিম্নলিখিত ক্ষেত্রে সমর্থিত নয়:

  • ব্যক্তিগত বা পরীক্ষামূলক অ্যাপ। যদি আপনার অ্যাপ সর্বজনীনভাবে অ্যাক্সেসযোগ্য না হয় তবে অ্যাপ চেকের প্রয়োজন নেই।
  • যদি আপনার অ্যাপ শুধুমাত্র সার্ভার-টু-সার্ভার ব্যবহার করা হয়, অ্যাপ চেকের প্রয়োজন নেই। যাইহোক, যদি GMP এর সাথে যোগাযোগ করে এমন সার্ভারটি পাবলিক ক্লায়েন্টদের দ্বারা ব্যবহার করা হয় (যেমন মোবাইল অ্যাপস), GMP এর পরিবর্তে সেই সার্ভারটিকে সুরক্ষিত করতে অ্যাপ চেক ব্যবহার করার কথা বিবেচনা করুন৷
  • অ্যাপ চেকের প্রস্তাবিত প্রত্যয়ন প্রদানকারী আপনার প্রত্যয়ন প্রদানকারীর দ্বারা আপস করা বা অবিশ্বস্ত বলে মনে করা ডিভাইসগুলিতে কাজ করবে না। আপনি যদি এই জাতীয় ডিভাইসগুলিকে সমর্থন করতে চান তবে আপনি একটি কাস্টম সত্যায়ন পরিষেবা স্থাপন করতে পারেন৷ আরও তথ্যের জন্য, নির্দেশাবলী দেখুন।

বাস্তবায়ন পদক্ষেপের ওভারভিউ

উচ্চ স্তরে, অ্যাপ চেকের সাথে আপনার অ্যাপকে সংহত করতে আপনি এই পদক্ষেপগুলি অনুসরণ করবেন:

  1. আপনার অ্যাপে Firebase যোগ করুন।
  2. অ্যাপ চেক লাইব্রেরি যোগ করুন এবং আরম্ভ করুন।
  3. আপনার অ্যাপে টোকেন প্রদানকারী যোগ করুন।
  4. স্থান এবং অ্যাপ চেক API গুলি শুরু করুন৷
  5. ডিবাগিং সক্ষম করুন।
  6. আপনার অ্যাপের অনুরোধগুলি নিরীক্ষণ করুন এবং প্রয়োগের বিষয়ে সিদ্ধান্ত নিন।

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

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

একটি অ্যাপ চেক ইন্টিগ্রেশন পরিকল্পনা করার সময় বিবেচনা

আপনার ইন্টিগ্রেশনের পরিকল্পনা করার সময় এখানে কিছু বিষয় বিবেচনা করতে হবে:

  • আমরা যে প্রত্যয়ন প্রদানকারীর সুপারিশ করি, ডিভাইস চেক বা অ্যাপ অ্যাটেস্ট , অ্যাপল দ্বারা সেট করা কোটা এবং সীমাবদ্ধতার বিষয়।

    আপনি একটি কাস্টম প্রত্যয়ন প্রদানকারী ব্যবহার করতে বেছে নিতে পারেন, যদিও এটি একটি উন্নত ব্যবহারের ক্ষেত্রে। আরও তথ্যের জন্য Firebase অ্যাপ চেক ডকুমেন্টেশন দেখুন।

  • আপনার অ্যাপের ব্যবহারকারীরা স্টার্টআপে কিছু বিলম্ব অনুভব করবেন। যাইহোক, পরে, যেকোন পর্যায়ক্রমিক পুনঃপ্রত্যয়ন ব্যাকগ্রাউন্ডে ঘটবে এবং ব্যবহারকারীদের আর কোনো লেটেন্সি অনুভব করা উচিত নয়। স্টার্টআপে বিলম্বের সঠিক পরিমাণ নির্ভর করে আপনি যে প্রত্যয়ন প্রদানকারীকে বেছে নিয়েছেন তার উপর।

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

অ্যাপ চেকের সাথে আপনার অ্যাপকে একীভূত করুন

পূর্বশর্ত এবং প্রয়োজনীয়তা

  • Places SDK সংস্করণ 9.2 বা তার পরে ইনস্টল করা একটি অ্যাপ।
  • অ্যাপটির বান্ডেল আইডি
  • মেম্বারশিপের অধীনে Apple মেম্বার সেন্টার থেকে আপনার টিম আইডি।
  • আপনি যদি ডিভাইস চেক, আপনার ব্যক্তিগত কী ফাইল এবং কী আইডি ব্যবহার করার পরিকল্পনা করেন।
  • আপনাকে অবশ্যই ক্লাউড কনসোলে অ্যাপটির মালিক হতে হবে।
  • ক্লাউড কনসোল থেকে আপনার অ্যাপের প্রোজেক্ট আইডির প্রয়োজন হবে

ধাপ 1: আপনার অ্যাপে Firebase যোগ করুন

আপনার অ্যাপে Firebase যোগ করতে Firebase ডেভেলপার ডকুমেন্টেশনের নির্দেশাবলী অনুসরণ করুন।

আপনি যখন আপনার অ্যাপটি নিবন্ধন করবেন, তখন আপনি একটি কনফিগারেশন ফাইল পাবেন, GoogleService-Info.plist । আপনার অ্যাপের রুট লেভেলে এই ফাইলটি, অপরিবর্তিত, যোগ করুন।

সুইফট

import FirebaseCore
import FirebaseAppCheck
import GooglePlaces

উদ্দেশ্য-C

@import FirebaseCore;      
@import FirebaseAppCheck;
@import GooglePlaces;

ধাপ 2: অ্যাপ চেক লাইব্রেরি যোগ করুন এবং অ্যাপ চেক শুরু করুন

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

  1. অ্যাপ চেক লাইব্রেরি যোগ করতে Firebase নির্দেশাবলী অনুসরণ করুন:
  2. অ্যাপ চেক শুরু করুন।

ধাপ 3: টোকেন প্রদানকারী যোগ করুন

AppCheckTokenProvider নামে একটি ফাইল তৈরি করুন (অথবা, আপনি যদি অবজেক্টিভ-সি ব্যবহার করেন, AppCheckTokenProvider.h এবং AppCheckTokenProvider.m নামে দুটি ফাইল) আপনার অ্যাপের রুট লেভেলে। নিম্নলিখিত আমদানি বিবৃতি এবং শ্রেণী সংজ্ঞা যোগ করুন:

সুইফট

// AppCheckTokenProvider.swift

import FirebaseAppCheck
import Foundation
import GooglePlaces

class AppCheckTokenProvider: NSObject, GMSPlacesAppCheckTokenProvider {
  func fetchAppCheckToken() async throws -> String {
    return try await AppCheck.appCheck().token(forcingRefresh: false).token
  }
}

উদ্দেশ্য-C

// AppCheckTokenProvider.h

@import Foundation;
@import GooglePlaces;

@interface AppCheckTokenProvider : NSObject <GMSPlacesAppCheckTokenProvider>
@end

// AppCheckTokenProvider.m

#import "AppCheckTokenProvider.h"

@import FirebaseAppCheck;

@implementation AppCheckTokenProvider

- (void)fetchAppCheckTokenWithCompletion:(nonnull GMSAppCheckTokenCompletion)completion {
  [[FIRAppCheck appCheck]
      tokenForcingRefresh:NO
               completion:^(FIRAppCheckToken *_Nullable token, NSError *_Nullable error) {
                 if (token) {
                   completion(token.token, nil);
                 } else {
                   completion(nil, error);
                 }
               }];
}

@end

ধাপ 4: স্থান এবং অ্যাপ চেক এপিআই শুরু করুন

  1. আপনার AppDelegate ফাইলে, Places API শুরু করুন:

    সুইফট

    GMSPlacesClient.provideAPIKey("YOUR_API_KEY")

    উদ্দেশ্য-C

    [GMSPlacesClient provideAPIKey:@"YOUR_API_KEY"];
  2. তারপরে, অ্যাপ চেক API শুরু করুন:

    সুইফট

    GMSPlacesClient.setAppCheckTokenProvider(AppCheckTokenProvider())

    উদ্দেশ্য-C

    [GMSPlacesClient setAppCheckTokenProvider:[[AppCheckTokenProvider alloc] init]];

ধাপ 5: ডিবাগিং সক্ষম করুন (ঐচ্ছিক)

আপনি যদি স্থানীয়ভাবে আপনার অ্যাপটি বিকাশ ও পরীক্ষা করতে চান বা এটিকে একটি অবিচ্ছিন্ন ইন্টিগ্রেশন (CI) পরিবেশে চালাতে চান, তাহলে আপনি আপনার অ্যাপের একটি ডিবাগ বিল্ড তৈরি করতে পারেন যা বৈধ অ্যাপ চেক টোকেন পেতে একটি ডিবাগ গোপন ব্যবহার করে। এটি আপনাকে আপনার ডিবাগ বিল্ডে বাস্তব সত্যায়ন প্রদানকারীর ব্যবহার এড়াতে দেয়।

আপনার অ্যাপটি সিমুলেটরে বা একটি পরীক্ষামূলক ডিভাইসে পরীক্ষা করতে:

  • অ্যাপ চেক ডিবাগ প্রদানকারী কারখানা তৈরি করুন এবং সেট করুন।

    এই কোড নমুনা ডিবাগিং এবং উত্পাদন উভয় পরিস্থিতি পরিচালনা করে:

    সুইফট

    #if targetEnvironment(simulator)
          let providerFactory = AppCheckDebugProviderFactory()
    #else
          let providerFactory = YourAppCheckProviderFactory()
    #endif

    উদ্দেশ্য-C

    if (targetEnvironment == simulator){
    
    FIRAppCheckDebugProviderFactory *providerFactory =
          [[FIRAppCheckDebugProviderFactory alloc] init];
    [FIRAppCheck setAppCheckProviderFactory:providerFactory];
    }
    
    else {
    
    YourAppCheckProviderFactory *providerFactory =
          [[YourAppCheckProviderFactory alloc] init];
    [FIRAppCheck setAppCheckProviderFactory:providerFactory];
    }
        
  • আপনার Xcode প্রকল্পে লগিং সক্ষম করুন, অ্যাপটি চালু করুন এবং লগে স্থানীয় ডিবাগ টোকেন খুঁজুন।
  • Firebase কনসোলে এই টোকেন যোগ করুন।
  • আরও তথ্য এবং নির্দেশাবলীর জন্য, অ্যাপ চেক ডকুমেন্টেশন দেখুন।

একটি CI পরিবেশে আপনার অ্যাপ চালানোর জন্য:

  • Firebase কনসোলে একটি ডিবাগ টোকেন তৈরি করুন এবং এটি আপনার CI সিস্টেমের সুরক্ষিত কী স্টোরে যোগ করুন।
  • Xcode-এ, মান হিসাবে FIRAAppCheckDebugToken এবং $(APP_CHECK_DEBUG_TOKEN) (বা অনুরূপ কিছু) নামের সাথে আপনার পরীক্ষার স্কিমে একটি পরিবেশ পরিবর্তনশীল যোগ করুন।
  • আপনার CI পরীক্ষার স্ক্রিপ্টে, পরিবেশ হিসাবে ডিবাগ টোকেন পাস করুন
  • অ্যাপ চেক ডিবাগ প্রদানকারী কারখানা তৈরি করুন এবং সেট করুন।

    এই কোড নমুনা ডিবাগিং এবং উত্পাদন উভয় পরিস্থিতি পরিচালনা করে:

    সুইফট

      #if targetEnvironment(ci)
            let providerFactory = AppCheckDebugProviderFactory()
            AppCheck.setAppCheckProviderFactory(providerFactory)
      #else
            let providerFactory = YourAppCheckProviderFactory()
      #endif
      

    উদ্দেশ্য-C

    if (targetEnvironment == ci) {
    FIRAppCheckDebugProviderFactory *providerFactory =
          [[FIRAppCheckDebugProviderFactory alloc] init];
    [FIRAppCheck setAppCheckProviderFactory:providerFactory];
    }
    
    else {
    YourAppCheckProviderFactory *providerFactory =
          [[YourAppCheckProviderFactory alloc] init];
    [FIRAppCheck setAppCheckProviderFactory:providerFactory];
    }
  • আরও তথ্য এবং নির্দেশাবলীর জন্য, অ্যাপ চেক ডকুমেন্টেশন দেখুন।

ধাপ 6: আপনার অ্যাপের অনুরোধগুলি নিরীক্ষণ করুন এবং প্রয়োগের বিষয়ে সিদ্ধান্ত নিন

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

আরও তথ্য এবং নির্দেশাবলীর জন্য Firebase অ্যাপ চেক ডকুমেন্টেশন দেখুন।