بررسی برنامه را با ارائه دهنده سفارشی در پلتفرم های اپل فعال کنید

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

اگر می‌خواهید از App Check با ارائه‌دهندگان داخلی استفاده کنید، به اسناد مربوط به App Check with App Attest و App Check with DeviceCheck مراجعه کنید.

قبل از اینکه شروع کنی

1. کتابخانه App Check را به برنامه خود اضافه کنید

  1. وابستگی App Check را به Podfile پروژه خود اضافه کنید:

    pod 'FirebaseAppCheck'

    یا به جای آن، می توانید از Swift Package Manager به جای آن استفاده کنید.

    همچنین، مطمئن شوید که از آخرین نسخه کتابخانه های سرویس Firebase که به آنها وابسته هستید استفاده می کنید.

  2. pod install اجرا کنید و فایل .xcworkspace ایجاد شده را باز کنید.

2. پروتکل های App Check را پیاده سازی کنید

ابتدا باید کلاس هایی ایجاد کنید که پروتکل های AppCheckProvider و AppCheckProviderFactory را پیاده سازی کنند.

کلاس AppCheckProvider شما باید دارای یک getToken(completion:) باشد که هر اطلاعاتی را که ارائه‌دهنده App Check سفارشی شما به عنوان اثبات اصالت نیاز دارد جمع‌آوری می‌کند و آن را در ازای توکن App Check به سرویس جذب توکن ارسال می‌کند. App Check SDK ذخیره رمز را کنترل می کند، بنابراین همیشه یک توکن جدید در پیاده سازی getToken(completion:) دریافت کنید.

سریع

class YourCustomAppCheckProvider: NSObject, AppCheckProvider {
    var app: FirebaseApp

    init(withFirebaseApp app: FirebaseApp) {
        self.app = app
        super.init()
    }

    func getToken(completion handler: @escaping (AppCheckToken?, Error?) -> Void) {
        DispatchQueue.main.async {
            // Logic to exchange proof of authenticity for an App Check token.
            // ...

            // Create AppCheckToken object.
            let exp = Date(timeIntervalSince1970: expirationFromServer)
            let token = AppCheckToken(
                token: tokenFromServer,
                expirationDate: exp
            )

            // Pass the token or error to the completion handler.
            handler(token, nil)
        }
    }
}

هدف-C

@interface YourCustomAppCheckProvider : NSObject <FIRAppCheckProvider>

@property FIRApp *app;

- (id)initWithApp:(FIRApp *)app;

@end

@implementation YourCustomAppCheckProvider

- (id)initWithApp:app {
    self = [super init];
    if (self) {
        self.app = app;
    }
    return self;
}

- (void)getTokenWithCompletion:(nonnull void (^)(FIRAppCheckToken * _Nullable,
                                                 NSError * _Nullable))handler {
    dispatch_async(dispatch_get_main_queue(), ^{
        // Logic to exchange proof of authenticity for an App Check token.
        // ...

        // Create FIRAppCheckToken object.
        NSTimeInterval exp = expirationFromServer;
        FIRAppCheckToken *token
            = [[FIRAppCheckToken alloc] initWithToken:tokenFromServer
                                       expirationDate:[NSDate dateWithTimeIntervalSince1970:exp]];

        // Pass the token or error to the completion handler.
        handler(token, nil);
    });
}

@end

همچنین، یک کلاس AppCheckProviderFactory را پیاده سازی کنید که نمونه هایی از پیاده سازی AppCheckProvider شما را ایجاد می کند:

سریع

class YourCustomAppCheckProviderFactory: NSObject, AppCheckProviderFactory {
  func createProvider(with app: FirebaseApp) -> AppCheckProvider? {
    return YourCustomAppCheckProvider(withFirebaseApp: app)
  }
}

هدف-C

@interface YourCustomAppCheckProviderFactory : NSObject <FIRAppCheckProviderFactory>
@end

@implementation YourCustomAppCheckProviderFactory

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

@end

3. App Check را اولیه کنید

کد اولیه زیر را به نماینده برنامه یا برنامه اولیه خود اضافه کنید:

سریع

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

FirebaseApp.configure()

هدف-C

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

[FIRApp configure];

هنگامی که کتابخانه App Check در برنامه شما نصب شد، شروع به توزیع برنامه به روز شده بین کاربران خود کنید.

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

4. معیارهای درخواست را نظارت کنید

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

پایگاه داده بیدرنگ، Cloud Firestore و Cloud Storage

ابزار مهمی که می‌توانید برای این تصمیم برای پایگاه داده بیدرنگ، Cloud Firestore و Cloud Storage استفاده کنید، صفحه معیارهای درخواست بررسی برنامه است.

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

نماگرفت صفحه معیارهای بررسی برنامه

معیارهای درخواست برای هر محصول به چهار دسته تقسیم می شوند:

  • درخواست‌های تایید شده آنهایی هستند که دارای نشانه معتبر App Check هستند. پس از فعال کردن اجرای بررسی برنامه، فقط درخواست‌های این دسته موفق خواهند شد.

  • درخواست‌های مشتری منسوخ شده آنهایی هستند که کد App Check را ندارند. این درخواست‌ها ممکن است از نسخه قدیمی‌تری از Firebase SDK قبل از گنجاندن App Check در برنامه باشد.

  • درخواست‌های مبدأ ناشناخته آن‌هایی هستند که کد App Check را ندارند و به نظر نمی‌رسد از Firebase SDK آمده باشند. اینها ممکن است از درخواست‌هایی باشد که با کلیدهای API به سرقت رفته یا درخواست‌های جعلی که بدون Firebase SDK انجام شده‌اند.

  • درخواست‌های نامعتبر درخواست‌هایی هستند که دارای یک کد برنامه بررسی نامعتبر هستند، که ممکن است از یک کلاینت غیر معتبر باشد که سعی در جعل هویت برنامه شما دارد، یا از محیط‌های شبیه‌سازی شده.

توزیع این دسته‌ها برای برنامه شما باید زمانی را که تصمیم به فعال کردن اعمال می‌کنید به شما اطلاع دهد. در اینجا چند دستورالعمل وجود دارد:

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

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

  • اگر برنامه شما هنوز راه اندازی نشده است، باید فوراً اجرای بررسی برنامه را فعال کنید، زیرا هیچ کلاینت قدیمی در حال استفاده نیست.

توابع ابری

برای توابع Cloud، می‌توانید با بررسی گزارش‌های عملکردهایتان، معیارهای App Check را دریافت کنید. هر فراخوانی یک تابع قابل فراخوانی یک ورودی گزارش ساختار یافته مانند مثال زیر منتشر می کند:

{
  "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 Cloud Console با ایجاد یک سنجه شمارنده مبتنی بر گزارش‌ها با فیلتر متریک زیر تجزیه و تحلیل کنید:

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 ، معیار را برچسب گذاری کنید.

5. اجرا را فعال کنید

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

پایگاه داده بیدرنگ، Cloud Firestore و Cloud Storage

برای فعال کردن اعمال برای پایگاه داده Realtime، Cloud Firestore (iOS و Android) و Cloud Storage:

  1. بخش App Check را در کنسول Firebase باز کنید.

  2. نمای معیارهای محصولی را که می‌خواهید اجرای آن را فعال کنید، گسترش دهید.

  3. روی Enforce کلیک کنید و انتخاب خود را تایید کنید.

توجه داشته باشید که تا 15 دقیقه پس از فعال کردن اجرای اعمال می‌شود.

توابع ابری

به فعال کردن اجرای بررسی برنامه برای عملکردهای ابری مراجعه کنید.