از App Check برای ایمن کردن کلید API خود استفاده کنید (جدید)

Firebase App Check با مسدود کردن ترافیکی که از منابعی غیر از برنامه‌های قانونی می‌آید، از تماس‌های برنامه شما به پلتفرم Google Maps محافظت می‌کند. این کار را با بررسی نشانه ای از یک ارائه دهنده گواهی مانند Play Integrity انجام می دهد. ادغام برنامه‌هایتان با App Check به محافظت در برابر درخواست‌های مخرب کمک می‌کند، بنابراین برای تماس‌های API غیرمجاز هزینه‌ای از شما دریافت نمی‌شود.

آیا App Check برای من مناسب است؟

App Check در اکثر موارد توصیه می شود، اما در موارد زیر به بررسی برنامه نیازی نیست یا پشتیبانی نمی شود:

  • برنامه های خصوصی یا آزمایشی اگر برنامه شما برای عموم قابل دسترسی نیست، برنامه بررسی لازم نیست.
  • اگر برنامه شما فقط از سرور به سرور استفاده می شود، بررسی برنامه مورد نیاز نیست. با این حال، اگر سروری که با GMP ارتباط برقرار می کند توسط مشتریان عمومی (مانند برنامه های تلفن همراه) استفاده می شود، برای محافظت از آن سرور به جای GMP از App Check استفاده کنید.
  • ارائه‌دهندگان گواهی‌نامه پیشنهادی App Check روی دستگاه‌هایی که توسط ارائه‌دهنده گواهی‌نامه شما در معرض خطر یا غیرقابل اعتماد تشخیص داده می‌شوند، کار نمی‌کنند. اگر نیاز به پشتیبانی از چنین دستگاه هایی دارید، می توانید یک سرویس گواهی سفارشی را مستقر کنید. برای اطلاعات بیشتر، دستورالعمل ها را ببینید.

مروری بر مراحل اجرا

در سطح بالا، این مراحلی هستند که برای یکپارچه کردن برنامه خود با App Check دنبال خواهید کرد:

  1. Firebase را به برنامه خود اضافه کنید.
  2. کتابخانه App Check را اضافه و مقداردهی اولیه کنید.
  3. ارائه دهنده توکن را اضافه کنید.
  4. اشکال زدایی را فعال کنید.
  5. درخواست های برنامه خود را نظارت کنید و در مورد اجرا تصمیم بگیرید.

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

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

ملاحظات هنگام برنامه ریزی یکپارچه سازی App Check

در اینجا مواردی وجود دارد که باید هنگام برنامه ریزی ادغام خود در نظر بگیرید:

  • ارائه‌دهنده گواهی که ما توصیه می‌کنیم، Play Integrity ، محدودیت تماس روزانه برای سطح استفاده استاندارد API خود دارد. برای اطلاعات بیشتر در مورد محدودیت تماس، به صفحه راه اندازی در مستندات توسعه دهنده Google Play Integrity مراجعه کنید.

    شما همچنین می توانید انتخاب کنید که از یک ارائه دهنده گواهی سفارشی استفاده کنید، اگرچه این یک مورد استفاده پیشرفته است. برای اطلاعات بیشتر، به پیاده‌سازی ارائه‌دهنده بررسی برنامه سفارشی مراجعه کنید.

  • کاربران برنامه شما در هنگام راه اندازی با تاخیر مواجه می شوند. با این حال، پس از آن، هر گونه تأیید مجدد دوره ای در پس زمینه رخ می دهد و کاربران دیگر نباید تاخیری را تجربه کنند. میزان دقیق تاخیر در راه اندازی به ارائه دهنده گواهی انتخابی شما بستگی دارد.

    مدت زمانی که کد App Check معتبر است ( زمان زندگی یا TTL) تعداد دفعات تأیید مجدد را تعیین می کند. این مدت زمان را می توان در کنسول Firebase پیکربندی کرد. تأیید مجدد زمانی اتفاق می افتد که تقریباً نیمی از TTL سپری شده باشد. برای اطلاعات بیشتر، به اسناد Firebase برای ارائه دهنده گواهی خود مراجعه کنید.

برنامه خود را با App Check یکپارچه کنید

پیش نیازها و الزامات

  • برنامه ای با نسخه 4.1 یا جدیدتر Places SDK یکپارچه شده است.
  • اثر انگشت SHA-256 برای برنامه شما.
  • نام بسته برنامه شما.
  • شما باید مالک برنامه در Cloud Console باشید.
  • شما به شناسه پروژه برنامه از کنسول Cloud نیاز دارید

مرحله 1: Firebase را به برنامه خود اضافه کنید

دستورالعمل‌های موجود در اسناد برنامه‌نویس Firebase را دنبال کنید تا Firebase را به برنامه خود اضافه کنید.

مرحله 2: کتابخانه App Check را اضافه کنید و App Check را مقداردهی اولیه کنید

برای اطلاعات در مورد استفاده از Play Integrity، ارائه‌دهنده گواهی پیش‌فرض، به شروع استفاده از App Check with Play Integrity در Android مراجعه کنید.

  1. اگر قبلاً این کار را نکرده‌اید، Places SDK را در برنامه خود ادغام کنید .
  2. سپس، App Check و سرویس گیرنده Places را مقداردهی اولیه کنید.

    // Initialize App Check
    FirebaseApp.initializeApp(/*context=*/ this);
    FirebaseAppCheck firebaseAppCheck = FirebaseAppCheck.getInstance();
    firebaseAppCheck.installAppCheckProviderFactory(
            PlayIntegrityAppCheckProviderFactory.getInstance());
      
    // Initialize Places SDK
    Places.initializeWithNewPlacesApiEnabled(context, API_KEY);
    PlacesClient client = Places.createClient(context);.

مرحله 3: ارائه دهنده توکن را اضافه کنید

پس از راه اندازی API Places، با setPlacesAppCheckTokenProvider() تماس بگیرید تا PlacesAppCheckTokenProvider را تنظیم کنید.

Places.initializeWithNewPlacesApiEnabled(context, API_KEY);
Places.setPlacesAppCheckTokenProvider(new TokenProvider());
PlacesClient client = Places.createClient(context);.

در اینجا یک نمونه پیاده سازی از رابط واکشی نشانه آورده شده است:

  /** Sample client implementation of App Check token fetcher interface. */
  static class TokenProvider implements PlacesAppCheckTokenProvider {
    @Override
    public ListenableFuture<String> fetchAppCheckToken() {
      SettableFuture<String> future = SettableFuture.create();
      FirebaseAppCheck.getInstance()
          .getAppCheckToken(false)
          .addOnSuccessListener(
              appCheckToken -> {
                future.set(appCheckToken.getToken());
              })
          .addOnFailureListener(
              ex -> {
                future.setException(ex);
              });

      return future;
    }
  }

مرحله 4: فعال کردن اشکال زدایی (اختیاری)

اگر می خواهید برنامه خود را به صورت محلی توسعه و آزمایش کنید، یا آن را در محیط یکپارچه سازی پیوسته (CI) اجرا کنید، می توانید یک ساختار اشکال زدایی از برنامه خود ایجاد کنید که از رمز اشکال زدایی برای به دست آوردن نشانه های معتبر App Check استفاده می کند. این به شما امکان می دهد از ارائه دهندگان گواهی واقعی در ساخت اشکال زدایی خودداری کنید.

برای اجرای برنامه خود در یک شبیه ساز یا روی یک دستگاه آزمایشی:

  • کتابخانه App Check را به فایل build.gradle خود اضافه کنید.
  • برای استفاده از کارخانه ارائه‌دهنده اشکال‌زدایی در ساخت اشکال‌زدایی، بررسی برنامه را پیکربندی کنید.
  • برنامه را اجرا کنید، که یک نشانه اشکال زدایی محلی ایجاد می کند. این توکن را به کنسول Firebase اضافه کنید.
  • برای اطلاعات و دستورالعمل‌های بیشتر، به مستندات بررسی برنامه مراجعه کنید.

برای اجرای برنامه خود در محیط CI:

  • یک نشانه اشکال زدایی در کنسول Firebase ایجاد کنید و آن را به فروشگاه کلید امن سیستم CI خود اضافه کنید.
  • کتابخانه App Check را به فایل build.gradle خود اضافه کنید.
  • نوع ساخت CI خود را برای استفاده از نشانه اشکال زدایی پیکربندی کنید.
  • کدهایی را در کلاس‌های آزمایشی خود بپیچید که به یک نشانه بررسی برنامه نیاز دارند با DebugAppCheckTestHelper .
  • برای اطلاعات و دستورالعمل‌های بیشتر، به مستندات بررسی برنامه مراجعه کنید.

مرحله 5: درخواست های برنامه خود را نظارت کنید و در مورد اجرا تصمیم بگیرید

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

برای اطلاعات و دستورالعمل‌های بیشتر به مستندات بررسی برنامه Firebase مراجعه کنید.