Questa pagina mostra come attivare App Check in un'app per iOS. Quando attivi App Check, contribuisci ad assicurarti che solo la tua app possa accedere agli endpoint OAuth 2.0 di Google per conto del tuo progetto. Consulta una panoramica di questa funzionalità.
App Check utilizza App Attest per verificare che le richieste OAuth 2.0 provengano dalla tua app autentica. App Check non utilizza App Attest per analizzare il rischio di attività fraudolenta.
Prima di iniziare
Assicurati di avere Xcode 12.5 o versioni successive.
Integra Accedi con Google nella tua app per iOS utilizzando la libreria Accedi con Google.
1. Configura il progetto
Controllo app può essere attivato in Google API Console o nella Console Firebase. Non è necessario attivarla in entrambi i modi, ne è sufficiente uno.
Google API Console
Per attivare correttamente App Check per il client iOS, devono essere soddisfatti i seguenti requisiti:- Devi specificare un ID team per il tuo client iOS.
- Non devi utilizzare un carattere jolly nell'ID bundle, poiché può risolvere in più di un'app. Ciò significa che l'ID bundle non deve includere il simbolo dell'asterisco (*).
Dopo aver attivato App Check, inizierai a visualizzare le metriche relative alle richieste OAuth inviate dal tuo client nella visualizzazione di modifica del client OAuth. Le richieste provenienti da origini non verificate non verranno bloccate finché non applicherai il controllo app. Le informazioni riportate nella pagina di monitoraggio delle metriche possono aiutarti a determinare quando iniziare l'applicazione.
Quando attivi App Check per la tua app per iOS, potresti visualizzare errori relativi alla funzionalità. Per risolvere questi errori, prova quanto segue:
- Verifica che l'ID bundle e l'ID team specificati siano validi.
- Verifica di non utilizzare un carattere jolly per l'ID pacchetto.
Console Firebase
Per utilizzare App Check con Accesso Google, devi avere un progetto Firebase.
Se la tua app utilizza già Firebase, utilizza lo stesso progetto.
Se la tua app utilizza Accedi con Google, ma non Firebase, hai già un progetto Google Cloud. Aggiungi Firebase al tuo progetto Google Cloud selezionato quando crei un nuovo progetto nella Console Firebase.
Vedi anche: Relazione tra progetti Firebase e Google Cloud
Se non l'hai già fatto, aggiungi le app per iOS al tuo progetto Firebase utilizzando la pagina Impostazioni progetto della Console Firebase.
Registra le tue app per l'utilizzo di App Check con il fornitore App Attest nella sezione App Check della Console Firebase.
Assicurati che tutti i client OAuth del progetto siano collegati a un'app.
Se hai client scollegati, nella sezione Identità Google per iOS della pagina Controllo app viene visualizzato il messaggio "Hai n client OAuth scollegati che richiedono una configurazione aggiuntiva".
Inoltre, se hai eliminato alcuni client OAuth dopo averli configurati in App Check, visualizzerai il messaggio "Hai n override senza client OAuth corrispondente". Puoi eseguire la pulizia in sicurezza eliminando queste sostituzioni.
Puoi collegare i client scollegati a un'app esistente o nuova nella pagina Client OAuth della Console Firebase.
2. Aggiungere la libreria di Accesso Google alla tua app
Nel progetto Xcode, imposta la dipendenza da Accesso Google sulla versione
8.0.0
o successiva :SPM
Imposta la regola di dipendenza di
googlesignin-ios
sulla versione8.0.0
o superiore.CocoaPods
Aggiorna
Podfile
:source 'https://github.com/CocoaPods/Specs.git' source 'https://github.com/firebase/SpecsDev.git' target 'YourAppName' do use_frameworks! pod 'GoogleSignIn','~> 8.0' :git => 'https://github.com/google/GoogleSignIn-iOS.git' pod 'GoogleSignInSwiftSupport' # If you use SwiftUI. end
Quindi, esegui
pod install
e apri il file.xcworkspace
creato.In Xcode, aggiungi la funzionalità App Attest alla tua app.
Nel file
.entitlements
del progetto, imposta l'ambiente App Attest suproduction
.
3. Inizializzare App Check
Nel metodo didFinishLaunchingWithOptions
del tuo app delegate, chiama
GIDSignIn.sharedInstance.configure(completion:)
. Devi chiamare questo metodo
il prima possibile nel ciclo di vita dell'app per ridurre al minimo la latenza percepita dall'utente.
import SwiftUI
import GoogleSignIn
class AppDelegate: NSObject, UIApplicationDelegate {
func application(
_ application: UIApplication,
didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey : Any]? = nil
) -> Bool {
#if targetEnvironment(simulator)
// Configure for debugging.
// See: https://developers.google.com/identity/sign-in/ios/appcheck/debug-provider
#else
GIDSignIn.sharedInstance.configure { error in
if let error {
print("Error configuring `GIDSignIn` for Firebase App Check: \(error)")
}
}
#endif
return true
}
}
@main
struct YourAppNameApp: App {
@UIApplicationDelegateAdaptor(AppDelegate.self) var appDelegate
// ...
}
Passaggi successivi
Una volta installata la libreria App Check nella tua app, inizia a distribuire l'app aggiornata agli utenti.
L'app client aggiornata inizierà a inviare i token App Check insieme a ogni richiesta inviata agli endpoint di autenticazione di Google, ma questi ultimi non richiederanno che i token siano validi finché non attivi l'applicazione forzata nella sezione App Check della console Firebase.
Monitorare le metriche
Tuttavia, prima di attivare l'applicazione, devi assicurarti che questa operazione non causi interruzioni per gli utenti legittimi esistenti. D'altra parte, se noti un uso sospetto delle risorse della tua app, ti consigliamo di attivare l'applicazione delle norme in precedenza.
Per aiutarti a prendere questa decisione, puoi consultare le metriche di App Check per Accedi con Google.
Attivare l'applicazione forzata di App Check
Quando hai compreso in che modo App Check influirà sui tuoi utenti e sei pronto a procedere, puoi abilitare l'applicazione di App Check.
Utilizzare App Check negli ambienti di debug
Se, dopo aver registrato la tua app per App Check, vuoi eseguirla in un ambiente che normalmente App Check non classificherebbe come valido, ad esempio un simulatore durante lo sviluppo o da un ambiente di integrazione continua (CI), puoi creare una build di debug della tua app che utilizzi il provider di debug App Check invece di App Attest.