Esta página mostra como habilitar o App Check em um aplicativo da Apple, usando o provedor App Attest integrado. Ao ativar o App Check, você ajuda a garantir que apenas seu aplicativo possa acessar os recursos do Firebase do seu projeto. Veja uma visão geral deste recurso.
O App Check usa o App Attest para verificar se as solicitações aos serviços do Firebase vêm do seu aplicativo autêntico. Atualmente, o App Check não usa o App Attest para analisar o risco de fraude .
Se você quiser usar o App Check com seu próprio provedor personalizado, consulte Implementar um provedor personalizado do App Check .
1. Configure seu projeto do Firebase
Você precisará do Xcode 12.5+ para usar o App Attest.
Adicione o Firebase ao seu projeto Apple, caso ainda não o tenha feito.
Registre seus aplicativos para usar o App Check com o provedor App Attest na seção App Check do console do Firebase.
Normalmente, você precisa registrar todos os aplicativos do seu projeto, porque depois de habilitar a imposição para um produto Firebase, apenas os aplicativos registrados poderão acessar os recursos de back-end do produto.
Opcional : nas configurações de registro do aplicativo, defina uma vida útil (TTL) personalizada para tokens do App Check emitidos pelo provedor. Você pode definir o TTL para qualquer valor entre 30 minutos e 7 dias. Ao alterar esse valor, esteja ciente das seguintes compensações:
- Segurança: TTLs mais curtos fornecem segurança mais forte, porque reduzem a janela na qual um token vazado ou interceptado pode ser abusado por um invasor.
- Desempenho: TTLs mais curtos significam que seu aplicativo realizará atestados com mais frequência. Como o processo de atestado do aplicativo adiciona latência às solicitações de rede sempre que é executado, um TTL curto pode afetar o desempenho do seu aplicativo.
- Cota e custo: TTLs mais curtos e reatestações frequentes esgotam sua cota mais rapidamente e, para serviços pagos, podem custar mais. Consulte Cotas e limites .
O TTL padrão de 1 hora é razoável para a maioria dos aplicativos. Observe que a biblioteca do App Check atualiza os tokens em aproximadamente metade da duração do TTL.
2. Adicione a biblioteca App Check ao seu aplicativo
Adicione a dependência do App Check ao
Podfile
do seu projeto:pod 'FirebaseAppCheck'
Ou, alternativamente, você pode usar o Swift Package Manager .
Verifique se você também está usando a versão mais recente de quaisquer outros SDKs do Firebase dos quais você depende.
Execute a
pod install
e abra o arquivo.xcworkspace
criado.No Xcode, adicione o recurso App Attest ao seu aplicativo.
No arquivo
.entitlements
do seu projeto, defina o ambiente App Attest paraproduction
.
3. Inicialize a verificação do aplicativo
Você precisará inicializar o App Check antes de usar qualquer outro SDK do Firebase.
Primeiro, escreva uma implementação de AppCheckProviderFactory
. As especificidades de sua implementação dependerão de seu caso de uso.
Por exemplo, se você tiver apenas usuários no iOS 14 e posterior, pode simplesmente sempre criar objetos AppAttestProvider
:
Rápido
Nota: este produto Firebase não está disponível em destinos watchOS.
class YourSimpleAppCheckProviderFactory: NSObject, AppCheckProviderFactory { func createProvider(with app: FirebaseApp) -> AppCheckProvider? { return AppAttestProvider(app: app) } }
Objective-C
Nota: este produto Firebase não está disponível em destinos watchOS.
@interface YourSimpleAppCheckProviderFactory : NSObject <FIRAppCheckProviderFactory> @end @implementation YourSimpleAppCheckProviderFactory - (nullable id<FIRAppCheckProvider>)createProviderWithApp:(nonnull FIRApp *)app { return [[FIRAppAttestProvider alloc] initWithApp:app]; } @end
Ou você pode criar objetos AppAttestProvider
no iOS 14 e posterior e voltar para DeviceCheckProvider
em versões anteriores:
Rápido
Nota: este produto Firebase não está disponível em destinos watchOS.
class YourAppCheckProviderFactory: NSObject, AppCheckProviderFactory { func createProvider(with app: FirebaseApp) -> AppCheckProvider? { if #available(iOS 14.0, *) { return AppAttestProvider(app: app) } else { return DeviceCheckProvider(app: app) } } }
Objective-C
Nota: este produto Firebase não está disponível em destinos watchOS.
@interface YourAppCheckProviderFactory : NSObject <FIRAppCheckProviderFactory> @end @implementation YourAppCheckProviderFactory - (nullable id<FIRAppCheckProvider>)createProviderWithApp:(nonnull FIRApp *)app { if (@available(iOS 14.0, *)) { return [[FIRAppAttestProvider alloc] initWithApp:app]; } else { return [[FIRDeviceCheckProvider alloc] initWithApp:app]; } } @end
Depois de implementar uma classe AppCheckProviderFactory
, configure o App Check para usá-la:
Rápido
Nota: este produto Firebase não está disponível em destinos watchOS.
let providerFactory = YourAppCheckProviderFactory() AppCheck.setAppCheckProviderFactory(providerFactory) FirebaseApp.configure()
Objective-C
Nota: este produto Firebase não está disponível em destinos watchOS.
YourAppCheckProviderFactory *providerFactory = [[YourAppCheckProviderFactory alloc] init]; [FIRAppCheck setAppCheckProviderFactory:providerFactory]; [FIRApp configure];
Próximos passos
Depois que a biblioteca do App Check estiver instalada em seu aplicativo, comece a distribuir o aplicativo atualizado para seus usuários.
O aplicativo cliente atualizado começará a enviar tokens do App Check junto com todas as solicitações feitas ao Firebase, mas os produtos Firebase não exigirão que os tokens sejam válidos até que você habilite a aplicação na seção App Check do console do Firebase.
Monitore as métricas e habilite a aplicação
Antes de habilitar a imposição, no entanto, certifique-se de que isso não interromperá seus usuários legítimos existentes. Por outro lado, se você perceber o uso suspeito dos recursos do seu aplicativo, convém ativar a aplicação mais cedo.
Para ajudar a tomar essa decisão, você pode consultar as métricas do App Check para os serviços que usa:
- Monitore as métricas de solicitação do App Check para Realtime Database, Cloud Firestore e Cloud Storage.
- Monitore as métricas de solicitação de verificação de aplicativo para Cloud Functions .
Ativar a aplicação do App Check
Quando você entender como o App Check afetará seus usuários e estiver pronto para prosseguir, poderá ativar a aplicação do App Check:
- Ative a aplicação do App Check para Realtime Database, Cloud Firestore e Cloud Storage.
- Ative a aplicação do App Check para Cloud Functions .
Use o App Check em ambientes de depuração
Se, depois de registrar seu app no App Check, você quiser executá-lo em um ambiente que o App Check normalmente não classificaria como válido, como um simulador durante o desenvolvimento ou a partir de um ambiente de integração contínua (CI), você pode crie uma compilação de depuração de seu aplicativo que use o provedor de depuração do App Check em vez de um provedor de atestado real.
Consulte Use App Check com o provedor de depuração em plataformas Apple .