Bu sayfada, yerleşik Play Integrity sağlayıcısını kullanarak bir Android uygulamasında Uygulama Kontrolü'nün nasıl etkinleştirileceği gösterilmektedir. Uygulama Kontrolü'nü etkinleştirerek, projenizin Firebase kaynaklarına yalnızca uygulamanızın erişebildiğinden emin olabilirsiniz. Bu özelliğe Genel Bakış'ı inceleyin.
Yerleşik Play Integrity sağlayıcısı şu anda yalnızca Google Play tarafından dağıtılan Android uygulamalarını desteklemektedir. Play Integrity'nin Play dışı özelliklerini veya Uygulama Kontrolü'nü kendi özel sağlayıcınızla kullanmak için Özel bir Uygulama Kontrolü sağlayıcısı uygulama bölümüne bakın.
1. Firebase projenizi oluşturma
Henüz yapmadıysanız Firebase'i Android projenize ekleyin.
Play Integrity API'yi etkinleştirin:
Google Play Console'da uygulamanızı seçin veya henüz eklemediyseniz ekleyin.
Sürüm bölümünde Uygulama bütünlüğü'nü tıklayın.
Sayfanın Play Integrity API bölümüne gidin, Cloud projesi bağla'yı tıklayın ve ardından Google Cloud projeleri listesinden Firebase projenizi seçin. Burada seçtiğiniz proje, uygulamanızı kaydettiğiniz projeyle aynı Firebase projesi olmalıdır (sonraki adıma bakın).
Uygulama Kontrolü'nü kullanmak için Firebase konsolunun Uygulama Kontrolü bölümünde Play Integrity sağlayıcısıyla uygulamalarınızı kaydedin. Uygulamanızın imzalama sertifikasının SHA-256 parmak izini sağlamanız gerekir.
Bir Firebase ürünü için zorunlu kılmayı etkinleştirdiğinizde yalnızca kayıtlı uygulamalar ürünün arka uç kaynaklarına erişebilir. Bu nedenle genellikle projenizin tüm uygulamalarını kaydetmeniz gerekir.
İsteğe bağlı: Uygulama kaydı ayarlarında, sağlayıcının verdiği Uygulama Kontrolü jetonları için özel bir geçerlilik süresi (TTL) belirleyin. TTL'yi 30 dakika ile 7 gün arasında herhangi bir değere ayarlayabilirsiniz. Bu değeri değiştirirken aşağıdaki dengeleri göz önünde bulundurun:
- Güvenlik: Daha kısa TTL'ler, sızdırılan veya ele geçirilen bir jetonun bir saldırgan tarafından kötüye kullanılabileceği zaman aralığını kısalttığı için daha güçlü güvenlik sağlar.
- Performans: Daha kısa TTL'ler, uygulamanızın onay işlemini daha sık gerçekleştireceği anlamına gelir. Uygulama onay süreci, her gerçekleştirildiğinde ağ isteklerine gecikme eklediğinden, kısa bir TTL uygulamanızın performansını etkileyebilir.
- Kota ve maliyet: Daha kısa TTL'ler ve sık yeniden doğrulama, kotanızı daha hızlı tüketir. Ücretli hizmetler için bu maliyet potansiyel olarak daha yüksek olur. Kotalar ve sınırlar bölümüne bakın.
1 saatlik varsayılan TTL, çoğu uygulama için makuldür. Uygulama Kontrolü kitaplığının, jetonları TTL süresinin yaklaşık yarısında yenilediğini unutmayın.
2. Uygulama Kontrolü kitaplığını uygulamanıza ekleme
Modül (uygulama düzeyi) Gradle dosyanıza (genellikle<project>/<app-module>/build.gradle.kts
veya <project>/<app-module>/build.gradle
), Android için App Check kitaplığının bağımlılığını ekleyin. Kitaplık sürümü oluşturmayı kontrol etmek için Firebase Android BoM'u kullanmanızı öneririz.
dependencies { // Import the BoM for the Firebase platform implementation(platform("com.google.firebase:firebase-bom:33.1.0")) // Add the dependencies for the App Check libraries // When using the BoM, you don't specify versions in Firebase library dependencies implementation("com.google.firebase:firebase-appcheck-playintegrity") }
Firebase Android BoM kullanıldığında uygulamanız Firebase Android kitaplıklarının her zaman uyumlu sürümlerini kullanır.
(Alternatif) Firebase kitaplığı bağımlılıklarını BoM'u kullanmadan ekleyin
Firebase BoM'yi kullanmamayı seçerseniz her Firebase kitaplık sürümünü bağımlılık satırında belirtmeniz gerekir.
Uygulamanızda birden fazla Firebase kitaplığı kullanıyorsanız kitaplık sürümlerini yönetmek için tüm sürümlerin uyumlu olmasını sağlamak için BoM kullanmanızı kesinlikle öneririz.
dependencies { // Add the dependencies for the App Check libraries // When NOT using the BoM, you must specify versions in Firebase library dependencies implementation("com.google.firebase:firebase-appcheck-playintegrity:18.0.0") }
3. Uygulama Kontrolü'nü başlatın
Diğer Firebase SDK'larını kullanmadan önce çalışması için aşağıdaki başlatma kodunu uygulamanıza ekleyin:
Kotlin KTX
Firebase.initialize(context = this) Firebase.appCheck.installAppCheckProviderFactory( PlayIntegrityAppCheckProviderFactory.getInstance(), )
Java
FirebaseApp.initializeApp(/*context=*/ this); FirebaseAppCheck firebaseAppCheck = FirebaseAppCheck.getInstance(); firebaseAppCheck.installAppCheckProviderFactory( PlayIntegrityAppCheckProviderFactory.getInstance());
Sonraki adımlar
Uygulamanıza Uygulama Kontrolü kitaplığı yüklendikten sonra, güncellenmiş uygulamayı kullanıcılarınıza dağıtmaya başlayın.
Güncellenen istemci uygulaması, Firebase'e yaptığı her istekle birlikte Uygulama Kontrolü jetonları göndermeye başlar ancak Firebase ürünleri, Firebase konsolunun Uygulama Kontrolü bölümünde zorunlu kılmayı etkinleştirmediğiniz sürece jetonların geçerli olmasını gerektirmez.
Metrikleri izleyin ve zorunlu kılmayı etkinleştirin
Ancak yaptırımı etkinleştirmeden önce bu işlemin mevcut meşru kullanıcılarınızın çalışmasını kesintiye uğratmayacağından emin olmanız gerekir. Diğer yandan, uygulama kaynaklarınızın şüpheli bir şekilde kullanıldığını görüyorsanız yaptırımın daha erken yapılmasını isteyebilirsiniz.
Bu kararı vermenize yardımcı olması için kullandığınız hizmetlerle ilgili Uygulama Kontrolü metriklerine bakabilirsiniz:
- Realtime Database, Cloud Firestore, Cloud Storage ve Authentication (beta) için Uygulama Kontrolü istek metriklerini izleyin.
- Cloud Functions için Uygulama Kontrolü istek metriklerini izleyin.
Uygulama Kontrolü zorunluluğunu etkinleştir
Uygulama Kontrolü'nün kullanıcılarınızı nasıl etkileyeceğini anladığınızda ve devam etmeye hazır olduğunuzda Uygulama Kontrolü'nün zorunlu kılınmasını etkinleştirebilirsiniz:
- Realtime Database, Cloud Firestore, Cloud Storage ve Authentication (beta) için Uygulama Kontrolü'nü zorunlu kılmayı etkinleştirin.
- Cloud Functions için Uygulama Kontrolü'nü zorunlu kılın.
Hata ayıklama ortamlarında Uygulama Kontrolü'nü kullanma
Uygulamanızı Uygulama Kontrolü'ne kaydettikten sonra, uygulamanızı normalde Uygulama Kontrolü'nün geçerli olarak sınıflandıramayacağı bir ortamda (örneğin, geliştirme sırasında emülatörde veya sürekli entegrasyon (CI) ortamından) çalıştırmak isterseniz gerçek bir onay sağlayıcısı yerine Uygulama Kontrolü hata ayıklama sağlayıcısını kullanan bir hata ayıklama derlemesi oluşturabilirsiniz.
Android'de hata ayıklama sağlayıcısıyla Uygulama Kontrolü'nü kullanma başlıklı makaleyi inceleyin.