Esta página mostra como habilitar o App Check em um aplicativo da Apple, usando seu provedor de App Check personalizado . Ao ativar o App Check, você ajuda a garantir que apenas seu aplicativo possa acessar os recursos do Firebase do seu projeto.
Se você quiser usar o App Check com os provedores integrados, consulte os documentos para App Check com App Attest e App Check com DeviceCheck .
Antes de você começar
Adicione o Firebase ao seu projeto Apple, caso ainda não o tenha feito.
Implemente a lógica do lado do servidor do seu provedor App Check personalizado .
1. 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 .
Além disso, verifique se você está usando a versão mais recente de todas as bibliotecas de clientes do serviço Firebase das quais você depende.
Execute a
pod install
e abra o arquivo.xcworkspace
criado.
2. Implemente os protocolos do App Check
Primeiro, você precisa criar classes que implementem os protocolos AppCheckProvider
e AppCheckProviderFactory
.
Sua classe AppCheckProvider
deve ter um getToken(completion:)
, que coleta todas as informações que seu provedor de App Check personalizado requer como prova de autenticidade e as envia para seu serviço de aquisição de token em troca de um token de App Check. O SDK do App Check lida com o cache de token, portanto, sempre obtenha um novo token em sua implementação de getToken(completion:)
.
Rápido
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) } } }
Objective-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
Além disso, implemente uma classe AppCheckProviderFactory
que crie instâncias de sua implementação AppCheckProvider
:
Rápido
class YourCustomAppCheckProviderFactory: NSObject, AppCheckProviderFactory { func createProvider(with app: FirebaseApp) -> AppCheckProvider? { return YourCustomAppCheckProvider(withFirebaseApp: app) } }
Objective-C
@interface YourCustomAppCheckProviderFactory : NSObject <FIRAppCheckProviderFactory> @end @implementation YourCustomAppCheckProviderFactory - (nullable id<FIRAppCheckProvider>)createProviderWithApp:(FIRApp *)app { return [[YourCustomAppCheckProvider alloc] initWithApp:app]; } @end
3. Inicialize a verificação do aplicativo
Adicione o seguinte código de inicialização ao delegado ou inicializador do aplicativo:
Rápido
let providerFactory = YourAppCheckProviderFactory() AppCheck.setAppCheckProviderFactory(providerFactory) FirebaseApp.configure()
Objective-C
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 .