Android'de Play Integrity ile Uygulama Kontrolü'nü kullanmaya başlayın

Bu sayfada, yerleşik Play Integrity sağlayıcısını kullanarak Android uygulamasında App Check özelliğini nasıl etkinleştireceğiniz gösterilmektedir. App Check özelliğini etkinleştirdiğinizde projenizin arka uç kaynaklarına yalnızca uygulamanızın erişebilmesini sağlarsınız. Bu özelliğe genel bakış

Play Integrity sağlayıcısı, Google Play'de, Google Play dışında veya her ikisinde yayınlanan Android uygulamalarını destekler. Kullanım alanınız, App Check tarafından uygulanmayan Play Integrity özelliklerini gerektiriyorsa veya App Check'i kendi özel sağlayıcınızla kullanmak istiyorsanız Özel bir App Check sağlayıcısı uygulama başlıklı makaleyi inceleyin.

1. Firebase projenizi oluşturma

  1. Henüz yapmadıysanız Firebase'i Android projenize ekleyin.

  2. Google Play Integrity API'yi etkinleştirme:

    1. Google Play Console'da uygulamanızı seçin veya henüz eklemediyseniz ekleyin.

    2. Sürüm bölümünde Uygulama bütünlüğü'nü tıklayın.

    3. Sayfanın Play Integrity API bölümüne gidin, Cloud projesini bağla'yı tıklayın, ardından Google Cloud proje listesinden Firebase projenizi seçin. Burada seçtiğiniz proje, uygulamanızı kaydettiğiniz Firebase projesiyle aynı olmalıdır (sonraki adıma bakın).

  3. Firebase konsolunda Security (Güvenlik) > App Check (Uygulama Kontrolü) bölümüne gidin.

  4. Uygulamalar sekmesinde, uygulamalarınızı Play Integrity sağlayıcısıyla App Check kullanacak şekilde kaydedin. Uygulamanızın imzalama sertifikasının SHA-256 parmak izini sağlamanız gerekir.

    Bir Firebase ürünü için yaptırımı etkinleştirdiğinizde yalnızca kayıtlı uygulamalar ürünün arka uç kaynaklarına erişebileceğinden genellikle projenizin tüm uygulamalarını kaydetmeniz gerekir.

  5. İsteğe bağlı: Jetonun geçerlilik süresini (TTL) ayarlayın.

    Uygulama kayıt ayarlarında, sağlayıcı tarafından verilen App Check jetonları için özel bir geçerlilik süresi (TTL) ayarlayın. TTL'yi 30 dakika ile 7 gün arasında herhangi bir değere ayarlayabilirsiniz. Bu değeri değiştirirken aşağıdaki avantaj ve dezavantajları göz önünde bulundurun:

    • Güvenlik: Daha kısa TTL'ler daha güçlü güvenlik sağlar. Çünkü sızdırılan veya ele geçirilen bir jetonun saldırgan tarafından kötüye kullanılabileceği süreyi kısaltır.
    • Performans: Daha kısa TTL'ler, uygulamanızın daha sık onay işlemi gerçekleştireceği anlamına gelir. Uygulama onayı işlemi 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 onaylama, kotanızı daha hızlı tüketir ve ücretli hizmetler için daha fazla maliyete neden olabilir. Kotalar ve sınırlar bölümüne bakın.

    1 saatlik varsayılan TTL, çoğu uygulama için uygundur. App Check kitaplığının, jetonları TTL süresinin yaklaşık yarısında yenilediğini unutmayın.

Gelişmiş ayarları yapılandırma (isteğe bağlı)

App Check, uygulamanızı Google Play dışında dağıtma gibi ileri düzey kullanım alanlarını destekleyen çeşitli ayarlar sunar. Kayıtlı Android uygulamalarınızın her biri için bu ayarları Firebase konsolunun App Check > Uygulamalar sekmesinde yapılandırabilirsiniz. Uygulamanızı ilk kez kaydettiğinizde bu ayarları aşağıdaki tabloya göre yapılandırmanızı öneririz.

Uygulamanızın dağıtım kanalı PLAY_RECOGNIZED LICENSED Kabul edilebilir minimum cihaz bütünlüğü düzeyi
Yalnızca Google Play'de Zorunlu Zorunlu Cihaz bütünlüğü düzeyini açıkça kontrol etmeyin
Yalnızca Google Play dışında Zorunlu değil Zorunlu değil Cihaz bütünlüğü
Google Play'de ve Google Play dışında Zorunlu Zorunlu değil Cihaz bütünlüğü düzeyini açıkça kontrol etmeyin

Ayrıntılar

Her gelişmiş ayar, bir Play Integrity karar etiketine karşılık gelir. Daha fazla bilgi için Play Integrity belgelerine bakın.

  • Varsayılan olarak App Check, PLAY_RECOGNIZED uygulama tanıma etiketini gerektirir. Google Play'de yayınlanmayan uygulamalar bu etiketi alamaz.
  • Varsayılan olarak App Check, LICENSED uygulama lisanslama etiketini gerektirmez. Yalnızca uygulamanızı doğrudan Google Play'den yükleyen veya güncelleyen kullanıcılar bu etiketi alabilir.
  • Varsayılan olarak App Check, cihaz bütünlük değerlendirmesini açıkça kontrol etmez. App Check, cihaz bütünlüğünün artan sırasına göre listelenen aşağıdaki üç cihaz bütünlüğü seviyesini açıkça kontrol etmeyi destekler.

    • Temel bütünlük. App Check için MEETS_BASIC_INTEGRITY cihaz tanıma etiketinin zorunlu olmasına neden olur. Uygulamanızın bu isteğe bağlı etiketi alabilmesi için öncelikle Google Play Console'dan etkinleştirmeniz gerekir.

    • Cihaz bütünlüğü. App Check için MEETS_DEVICE_INTEGRITY cihaz tanıma etiketinin zorunlu olmasına neden olur. Tüm uygulamalar bu etiketi almaya otomatik olarak uygundur.

    • Güçlü bütünlük. App Check için MEETS_STRONG_INTEGRITY cihaz tanıma etiketinin zorunlu olmasına neden olur. Uygulamanızın bu isteğe bağlı etiketi alabilmesi için öncelikle Google Play Console'dan etkinleştirmeniz gerekir.

2. App Check kitaplığını uygulamanıza ekleme

Modülünüzün (uygulama düzeyinde) Gradle dosyasında (genellikle <project>/<app-module>/build.gradle.kts veya <project>/<app-module>/build.gradle) Android için App Check kitaplığına olan bağımlılığı ekleyin. Kitaplık sürümünü kontrol etmek için Firebase Android BoM kullanmanızı öneririz.

dependencies {
    // Import the BoM for the Firebase platform
    implementation(platform("com.google.firebase:firebase-bom:35.0.2"))

    // 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 kullanarak uygulamanızın her zaman Firebase Android kitaplıklarının uyumlu sürümlerini kullanmasını sağlayabilirsiniz.

(Alternatif)  BoM kullanmadan Firebase kitaplığı bağımlılıklarını ekleme

Firebase BoM kullanmamayı tercih ederseniz her Firebase kitaplığı sürümünü kendi 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 BoM kullanmanızı önemle tavsiye ederiz. Bu sayede tüm sürümlerin uyumlu olmasını sağlayabilirsiniz.

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:20.0.0")
}

3. App Check başlatılıyor

Diğer Firebase SDK'larını kullanmadan önce çalışması için uygulamanıza aşağıdaki ilk kullanıma hazırlama kodunu ekleyin:

Kotlin

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

App Check kitaplığı uygulamanıza yüklendikten sonra güncellenmiş uygulamayı kullanıcılarınıza dağıtmaya başlayın.

Güncellenen istemci uygulaması, Firebase'e gönderdiği her istekle birlikte App Check jetonları göndermeye başlar ancak Firebase konsolunun App Check bölümünde yaptırımı etkinleştirene kadar Firebase ürünleri, jetonların geçerli olmasını zorunlu kılmaz.

Metrikleri izleme ve yaptırımı etkinleştirme

Ancak yaptırımı etkinleştirmeden önce, bu işlemin mevcut meşru kullanıcılarınızı rahatsız etmeyeceğinden emin olmanız gerekir. Öte yandan, uygulama kaynaklarınızın şüpheli bir şekilde kullanıldığını görüyorsanız yaptırımı daha erken etkinleştirmek isteyebilirsiniz.

Bu kararı vermenize yardımcı olması için kullandığınız hizmetlerin App Check metriklerine bakabilirsiniz:

App Check yaptırımını etkinleştirme

App Check özelliğinin kullanıcılarınızı nasıl etkileyeceğini anladığınızda ve devam etmeye hazır olduğunuzda App Check yaptırımını etkinleştirebilirsiniz:

Hata ayıklama ortamlarında App Check kullanma

Uygulamanızı App Check için kaydettikten sonra, App Check tarafından normalde geçerli olarak sınıflandırılmayacak bir ortamda (ör. geliştirme sırasında bir emülatörde veya sürekli entegrasyon (CI) ortamında) çalıştırmak isterseniz uygulamanızın gerçek bir onaylama sağlayıcısı yerine App Check hata ayıklama sağlayıcısını kullanan bir hata ayıklama derlemesini oluşturabilirsiniz.

Android'de hata ayıklama sağlayıcısı ile App Check kullanma başlıklı makaleyi inceleyin.