컬렉션을 사용해 정리하기
내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요.
Firebase App Check
plat_ios
plat_android
plat_web
plat_flutter
App Check는 승인되지 않은 클라이언트가 백엔드 리소스에 액세스하는 것을 방지하여 앱 백엔드를 악용으로부터 보호해 줍니다. Google 서비스(Firebase 및 Google Cloud 서비스 포함)와 자체 커스텀 백엔드와 모두 호환되므로 리소스를 안전하게 보호할 수 있습니다.
App Check를 사용하면 앱을 실행하는 기기는 다음 중 하나 또는 둘 모두를 증명하는 앱 또는 기기 증명 제공자를 사용합니다.
- 요청이 인증된 앱에서 발생함
- 요청이 변조되지 않은 인증된 기기에서 발생함
이 증명은 지정한 API에 대해 앱이 수행하는 모든 요청에 연결됩니다. App Check 적용을 사용 설정하면 유효한 증명이 없는 클라이언트의 요청이 거부되며 승인하지 않은 앱이나 플랫폼에서 발생한 요청도 거부됩니다.
App Check에는 다음 서비스를 증명 제공자로 사용하기 위한 지원 기능이 내장되어 있습니다.
이것으로 요구사항이 충족되지 않으면 제3자 증명 제공자 또는 자체 증명 기법을 사용하는 자체 서비스를 구현할 수도 있습니다.
App Check는 다음 Google 서비스와 호환됩니다.
App Check를 사용하여 자체 호스팅 백엔드와 같이 Google 외의 커스텀 백엔드 리소스를 보호할 수도 있습니다.
시작하는 방법 알아보기
작동 원리
서비스에 App Check를 사용 설정하고 앱에 클라이언트 SDK를 포함하면 다음과 같은 상황이 주기적으로 발생합니다.
- 앱은 선택한 제공자와 상호작용하여 앱 또는 기기(또는 제공자에 따라 둘 다)의 신뢰성을 증명합니다.
- 증명은 앱에 등록된 파라미터를 사용하여 증명의 유효성을 확인하는 App Check 서버로 전송되며, 만료 시간이 있는 App Check 토큰으로 앱에 반환됩니다. 이 토큰에는 확인된 증명 자료에 대한 정보가 유지될 수 있습니다.
- App Check 클라이언트 SDK는 앱에서 토큰을 캐시하며, 이는 앱에서 보호된 서비스에 보내는 모든 요청과 함께 전송할 수 있습니다.
App Check로 보호되는 서비스는 현재 유효한 App Check 토큰과 함께 제공되는 요청만 수락합니다.
App Check에서 제공하는 보안의 강도는 어느 정도인가요?
App Check는 증명 제공자의 강도를 사용하여 앱 또는 기기 신뢰성을 결정합니다. 전부는 아니지만 백엔드로 향하는 악용 벡터의 일부가 방지됩니다. App Check를 사용해도 모든 악용 사례를 없앨 수는 없지만 App Check와 통합하면 백엔드 리소스의 악용 방지를 위한 중요한 조치를 취할 수 있습니다.
App Check 및 Firebase Authentication은 앱 보안 과정의 상호 보완적인 부분입니다. Firebase Authentication은 사용자 인증을 제공하여 사용자를 보호하며, App Check는 앱 또는 기기의 신뢰성을 증명하여 개발자를 보호합니다. App Check는 API 호출에 유효한 App Check 토큰을 포함하도록 요구하여 Google 백엔드 리소스 및 커스텀 백엔드에 대한 액세스를 보호합니다. 이 두 개념은 함께 작동하여 앱을 보호하는 데 도움이 됩니다.
할당량 및 한도
App Check를 사용할 때는 사용하는 증명 제공자의 할당량과 한도가 적용됩니다.
DeviceCheck 및 App Attest 액세스에는 Apple에서 설정한 할당량 또는 제한이 적용됩니다.
Play Integrity 표준 API 사용 등급의 일일 호출 할당량은 10,000회입니다. 사용 등급 상향 조정에 관한 자세한 내용은 Play Integrity 문서를 참고하세요.
reCAPTCHA Enterprise는 매월 10,000회의 평가를 무료로 제공하며 그 이상은 비용이 발생합니다. reCAPTCHA 가격 책정을 참조하세요.
시작하기
시작할 준비가 되셨나요?
DeviceCheck
App Attest
Android
Play Integrity
웹
reCAPTCHA Enterprise
Flutter
기본 제공자
Unity
기본 제공자
C++
기본 제공자
커스텀 App Check 제공자를 구현하는 방법 알아보기
커스텀 제공자
App Check를 사용하여 커스텀 백엔드 리소스를 보호하는 방법 알아보기
플랫폼 선택:
iOS+
Android
웹
Flutter
Unity
C++
달리 명시되지 않는 한 이 페이지의 콘텐츠에는 Creative Commons Attribution 4.0 라이선스에 따라 라이선스가 부여되며, 코드 샘플에는 Apache 2.0 라이선스에 따라 라이선스가 부여됩니다. 자세한 내용은 Google Developers 사이트 정책을 참조하세요. 자바는 Oracle 및/또는 Oracle 계열사의 등록 상표입니다.
최종 업데이트: 2025-08-16(UTC)
[null,null,["최종 업데이트: 2025-08-16(UTC)"],[],[],null,["Firebase App Check \nplat_ios plat_android plat_web plat_flutter \n\nApp Check helps protect your app backends from abuse by preventing\nunauthorized clients from accessing your backend resources. It works with\nboth Google services (including Firebase and Google Cloud services) and your\nown custom backends to keep your resources safe.\n\nWith App Check, devices running your app will use an app or device\nattestation provider that attests to one or both of the following:\n\n- Requests originate from your authentic app\n- Requests originate from an authentic, untampered device\n\nThis attestation is attached to every request your app makes to the APIs you\nspecify. When you enable App Check enforcement, requests from\nclients without a valid attestation will be rejected, as will any request\noriginating from an app or platform you haven't authorized.\n\nApp Check has built-in support for using the following services as\nattestation providers:\n\n- [DeviceCheck](https://developer.apple.com/documentation/devicecheck) or [App Attest](https://developer.apple.com/documentation/devicecheck/establishing_your_app_s_integrity) on Apple platforms\n- [Play Integrity](https://developer.android.com/google/play/integrity) on Android\n- [reCAPTCHA Enterprise](https://cloud.google.com/recaptcha-enterprise) on web apps.\n\nIf these are insufficient for your needs, you can also implement your own\nservice that uses either a third-party attestation provider or your own\nattestation techniques.\n\nApp Check works with the following Google services:\n\n| Supported Firebase and Google Cloud services |\n|------------------------------------------------------------------------------------------------------------|\n| Firebase Authentication (Preview) |\n| Firebase Data Connect |\n| Cloud Firestore |\n| Firebase Realtime Database |\n| Cloud Storage for Firebase |\n| Cloud Functions for Firebase (callable functions only) |\n| Firebase AI Logic |\n| [Maps JavaScript API](https://developers.google.com/maps/documentation/javascript/overview) (Preview) |\n| [Places API (New)](https://developers.google.com/maps/documentation/places/web-service/overview) (Preview) |\n| [Google Identity for iOS](https://developers.google.com/identity/sign-in/ios/appcheck) |\n\nYou can also use App Check to protect your non-Google custom backend\nresources, like your own self-hosted backend.\n\n[Learn how to get started](#get_started)\n\nHow does it work?\n\nWhen you enable App Check for a service and include the client SDK\nin your app, the following happens periodically:\n\n1. Your app interacts with the provider of your choice to obtain an attestation of the app or device's authenticity (or both, depending on the provider).\n2. The attestation is sent to the App Check server, which verifies the validity of the attestation using parameters registered with the app, and returns to your app an App Check token with an expiration time. This token might retain some information about the attestation material it verified.\n3. The App Check client SDK caches the token in your app, ready to be sent along with any requests your app makes to protected services.\n\nA service protected by App Check only accepts requests accompanied\nby a current, valid App Check token.\n\nHow strong is the security provided by App Check?\n\nApp Check relies on the strength of its attestation providers to determine\napp or device authenticity. It prevents some, but not all, abuse vectors\ndirected towards your backends. Using App Check does not guarantee\nthe elimination of all abuse, but by integrating with App Check, you are\ntaking an important step towards abuse protection for your backend resources.\n\nHow is App Check related to Firebase Authentication?\n\nApp Check and Firebase Authentication are complementary parts of your app security\nstory. Firebase Authentication provides user authentication, which protects your\nusers, whereas App Check provides attestation of app or device authenticity,\nwhich protects you, the developer. App Check guards access to your Google\nbackend resources and custom backends by requiring API calls to contain a valid\nApp Check token. These two concepts work together to help secure your app.\n\nQuotas \\& limits\n\nYour use of App Check is subject to the quotas and limits of the attestation\nproviders you use.\n\n- DeviceCheck and App Attest access is subject to any quotas or limitations set\n by Apple.\n\n- Play Integrity has a daily quota of 10,000 calls for its Standard API usage\n tier. For information on raising your usage tier, see the\n [Play Integrity documentation](https://developer.android.com/google/play/integrity/overview#usage-tiers).\n\n- reCAPTCHA Enterprise is no-cost for 10,000 assessments each month, and has a\n cost beyond that. See [reCAPTCHA pricing](https://cloud.google.com/security/products/recaptcha#pricing).\n\nGet started\n\nReady to get started?\n\nApple platforms\n\n[DeviceCheck](/docs/app-check/ios/devicecheck-provider)\n[App Attest](/docs/app-check/ios/app-attest-provider)\n\nAndroid\n\n[Play Integrity](/docs/app-check/android/play-integrity-provider)\n\nWeb\n\n[reCAPTCHA Enterprise](/docs/app-check/web/recaptcha-enterprise-provider)\n\nFlutter\n\n[Default providers](/docs/app-check/flutter/default-providers)\n\nUnity\n\n[Default providers](/docs/app-check/unity/default-providers)\n\nC++\n\n[Default providers](/docs/app-check/cpp/default-providers)\n\nLearn how to implement a custom App Check provider\n\n[Custom providers](/docs/app-check/custom-provider)\n\nLearn how to use App Check to protect your custom backend resources\n\nSelect your platform:\n\n[iOS+](/docs/app-check/ios/custom-resource)\n[Android](/docs/app-check/android/custom-resource)\n[Web](/docs/app-check/web/custom-resource)\n[Flutter](/docs/app-check/flutter/custom-resource)\n[Unity](/docs/app-check/unity/custom-resource)\n[C++](/docs/app-check/cpp/custom-resource)"]]