شروع به استفاده از App Check با reCAPTCHA Enterprise در برنامه‌های Flutter کنید

انتخاب پلتفرم: iOS+ اندروید وب فلاتر


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

App Check نیاز به استفاده از کلیدهای reCAPTCHA مبتنی بر امتیاز دارد، که آن را برای کاربران نامرئی می‌کند. این بدان معناست که ارائه دهنده reCAPTCHA Enterprise از کاربران نمی‌خواهد که در هر زمانی یک چالش را حل کنند.

اگر مورد استفاده شما به ویژگی‌های reCAPTCHA Enterprise نیاز دارد که توسط App Check پیاده‌سازی نشده است، یا اگر می‌خواهید از App Check با ارائه‌دهنده سفارشی خود استفاده کنید، به بخش پیاده‌سازی ارائه‌دهنده سفارشی App Check مراجعه کنید.

۱. پروژه فایربیس خود را راه‌اندازی کنید

  1. اگر هنوز Firebase را نصب نکرده‌اید، آن را در پروژه Flutter خود نصب و راه‌اندازی کنید .

  2. در کنسول Google Cloud ، به صفحه Fraud Defense بروید و موارد زیر را برای ارائه دهنده reCAPTCHA Enterprise انجام دهید:

    1. مطمئن شوید که در پروژه صحیح هستید (به انتخابگر پروژه در بالای صفحه مراجعه کنید).

    2. در صورت درخواست، رابط برنامه‌نویسی کاربردی reCAPTCHA Enterprise را فعال کنید.

    3. بر اساس پلتفرم هدف خود، یک کلید ایجاد کنید:

      آی‌او‌اس+

      یک کلید از نوع iOS ایجاد کنید و شناسه بسته برنامه خود را مشخص کنید (برای مثال، com.example.my_app ).

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

      • برای App Check ، هر شناسه بسته فقط می‌تواند با یک کلید reCAPTCHA مطابقت داشته باشد.

      اندروید

      یک کلید از نوع اندروید ایجاد کنید و نام بسته برنامه خود را مشخص کنید (برای مثال، com.example.my_app ).

      • مطمئن شوید که همان نام بسته‌ای را که هنگام ایجاد برنامه اندروید Firebase خود در پروژه Firebase خود ارائه دادید، وارد می‌کنید. مقدار نام بسته به حروف کوچک و بزرگ حساس است.

      • برای App Check ، هر نام بسته فقط می‌تواند به یک کلید reCAPTCHA مربوط باشد.

      وب

      یک کلید از نوع وب ایجاد کنید و هر یک از دامنه‌های برنامه‌های وب خود را مشخص کنید.

      • App Check از برنامه‌های تحت وبی که روی بیش از ۲۵۰ دامنه سرویس می‌دهند، پشتیبانی نمی‌کند .

      • هرگز localhost به عنوان دامنه به کلید reCAPTCHA که در محیط عملیاتی مستقر شده است (یا قرار است مستقر شود) اضافه نکنید.

      • گزینه‌ی «استفاده از چالش تیک‌دار» را علامت نزده بگذارید.

      برای دستورالعمل‌های دقیق، به ایجاد کلیدهای reCAPTCHA مبتنی بر امتیاز مراجعه کنید.

    4. هر کلید را یادداشت کنید. باید آنها را به جریان ثبت نام در کنسول Firebase اضافه کنید.

  3. در کنسول Firebase ، به مسیر Security > App Check بروید.

  4. در تب برنامه‌ها ، هر یک از برنامه‌های پلتفرم هدف خود را برای استفاده ثبت کنید. App Check با ارائه‌دهنده reCAPTCHA Enterprise انجام دهید. باید کلیدی را که در کنسول Google Cloud دریافت کرده‌اید، ارائه دهید.

  5. اختیاری : زمان زنده بودن توکن (TTL) را تنظیم کنید.

    در تنظیمات ثبت برنامه، یک زمان دلخواه برای زنده ماندن (TTL) برای توکن‌های App Check صادر شده توسط ارائه دهنده تنظیم کنید. می‌توانید TTL را روی هر مقداری بین 30 دقیقه تا 7 روز تنظیم کنید. هنگام تغییر این مقدار، به موارد زیر توجه داشته باشید:

    • امنیت: TTL های کوتاه تر امنیت قوی تری را فراهم می کنند، زیرا بازه زمانی که یک توکن فاش شده یا رهگیری شده می تواند توسط یک مهاجم مورد سوء استفاده قرار گیرد را کاهش می دهند.
    • عملکرد: هرچه TTL های کوتاه‌تر باشند، برنامه شما دفعات بیشتری عملیات تصدیق را انجام می‌دهد. از آنجایی که فرآیند تصدیق برنامه هر بار که انجام می‌شود، به درخواست‌های شبکه تأخیر اضافه می‌کند، TTL کوتاه می‌تواند بر عملکرد برنامه شما تأثیر بگذارد.
    • سهمیه و هزینه: TTL های کوتاه تر و تأیید مجدد مکرر، سهمیه شما را سریعتر تمام می کند و برای خدمات پولی، احتمالاً هزینه بیشتری دارد. به سهمیه ها و محدودیت ها مراجعه کنید.

    مدت زمان پیش‌فرض TTL برای اکثر برنامه‌ها ۱ ساعت است که معقول به نظر می‌رسد. توجه داشته باشید که کتابخانه App Check تقریباً در نصف مدت زمان TTL، توکن‌ها را به‌روزرسانی می‌کند.

  6. اختیاری : تنظیمات پیشرفته را پیکربندی کنید.

  7. روی ذخیره کلیک کنید.

(اختیاری) پیکربندی تنظیمات پیشرفته

وقتی کاربری برنامه شما را باز می‌کند، reCAPTCHA Enterprise سطح ریسک تعامل کاربر را تحت تأثیر کلیدهای اعمال‌شده ارزیابی می‌کند و امتیازی بین ۰.۰ تا ۱.۰، با گام‌های ۰.۱، برمی‌گرداند.

  • امتیاز ۰.۰ نشان می‌دهد که این تعامل ریسک بالایی دارد و ممکن است کلاهبرداری باشد.
  • امتیاز ۱.۰ نشان می‌دهد که این تعامل ریسک کمی دارد و به احتمال زیاد قانونی است.

App Check به شما امکان می‌دهد آستانه ریسک برنامه را پیکربندی کنید تا بتوانید تحمل خود را برای این ریسک تنظیم کنید.

برای اکثر موارد استفاده، مقدار آستانه پیش‌فرض ۰.۵ توصیه می‌شود. اگر مورد استفاده شما نیاز به تنظیم دارد، می‌توانید این مقدار را برای هر یک از برنامه‌های خود در کنسول Firebase پیکربندی کنید (به Security > App Check بروید). حتماً برخی از ملاحظات مهم در مورد پیکربندی آستانه ریسک برنامه را که در زیر آمده است، بسط داده و مرور کنید.

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

برای استفاده از ارائه‌دهنده reCAPTCHA Enterprise ، باید افزونه App Check مربوطه را اضافه کنید.

  1. از ریشه پروژه Flutter خود، دستور زیر را برای نصب افزونه اجرا کنید:

    flutter pub add firebase_app_check
    
  2. پس از اتمام، پروژه Flutter خود را از نو بسازید:

    flutter run
    

۳. App Check

در برنامه خود، قبل از استفاده از سایر سرویس‌های Firebase، باید App Check مقداردهی اولیه کنید.

import 'package:firebase_core/firebase_core.dart';
import 'package:firebase_app_check/firebase_app_check.dart';
import 'firebase_options.dart';

Future<void> main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await Firebase.initializeApp(options: DefaultFirebaseOptions.currentPlatform);
  await FirebaseAppCheck.instance.activate(
    providerWeb: ReCaptchaEnterpriseProvider(WEB_SITE_KEY),
    providerAndroid: const AndroidReCaptchaProvider(ANDROID_SITE_KEY),
    providerApple: const AppleReCaptchaProvider(IOS_SITE_KEY),
  );
  runApp(App());
}

۴. معیارها را رصد کنید و اجرای آنها را ممکن سازید

بعد از اینکه App Check در برنامه خود تنظیم کردید، شروع به توزیع برنامه به‌روزرسانی‌شده بین کاربران خود کنید.

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

نظارت بر معیارها

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

برای کمک به تصمیم‌گیری، می‌توانید معیارهای App Check را برای سرویس‌هایی که استفاده می‌کنید بررسی کنید:

فعال کردن اجرای App Check

وقتی فهمیدید که App Check چگونه بر کاربران شما تأثیر می‌گذارد و آماده ادامه کار شدید، می‌توانید اجرای App Check را فعال کنید:

استفاده از App Check در محیط‌های اشکال‌زدایی

App Check برخی از محیط‌ها را به عنوان نامعتبر طبقه‌بندی می‌کند، مانند درخواست‌هایی از یک شبیه‌ساز/شبیه‌ساز یا میزبان محلی در طول توسعه یا از یک محیط ادغام مداوم (CI).

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

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

قیمت‌گذاری

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

به طور پیش‌فرض، برنامه شما این توکن را هر ۱ ساعت دو بار به‌روزرسانی می‌کند. برای کنترل اینکه برنامه شما چند وقت یکبار توکن‌های App Check را به‌روزرسانی می‌کند (و در نتیجه چند وقت یکبار ارزیابی‌های جدید ایجاد می‌شوند)، می‌توانید TTL توکن را پیکربندی کنید .