Bir API'yi doğrudan mobil veya web uygulamasından çağırdığınızda (ör. üretken yapay zeka modellerine erişime izin veren API'ler) API, yetkisiz istemciler tarafından kötüye kullanıma açık hâle gelir. Bu API'leri korumak için Firebase App Check kullanarak tüm gelen API çağrılarının gerçek uygulamanızdan geldiğini doğrulayabilirsiniz.
Firebase AI Logic, Firebase App Check ile entegrasyon yapmanıza ve mobil ile web uygulamalarınız tarafından çağrılan üretken yapay zeka modeli API'lerini korumanıza olanak tanıyan bir proxy ağ geçidi sağlar. App Check ile Firebase AI Logic SDK'ları kullanmak tüm yapılandırmalarımızı destekler:
Hem "Gemini API" sağlayıcılarını (Gemini Developer API) hem de Vertex AI Gemini API korur.
Hem Gemini hem de Imagen modelleri olmak üzere desteklenen tüm modelleri korur.
App Check'ın işleyiş şekliyle ilgili üst düzey özet
App Check ile uygulamanızı çalıştıran cihazlar, aşağıdakilerden birini veya her ikisini doğrulayan bir uygulama ya da cihaz onayı sağlayıcısı kullanır:
- İstekler, orijinal uygulamanızdan geliyor
- İstekler, gerçek ve kurcalanmamış bir cihazdan kaynaklanıyor
Bu onay, uygulamanızın Firebase AI Logic SDK'sını kullanarak yaptığı her isteğe eklenir. App Check zorunluluğunu etkinleştirdiğinizde, geçerli bir onay içermeyen istemcilerden gelen istekler ve yetkilendirmediğiniz bir uygulama veya platformdan kaynaklanan tüm istekler reddedilir.
App Check özelliğini ayarlarken gelecekteki gelişmiş korumaya (yeniden oynatma koruması olarak bilinir) hazırlanmanızı öneririz.
App Check hakkında kotaları ve sınırları da dahil olmak üzere ayrıntılı bilgiyi dokümanlarında bulabilirsiniz.
Kullanılabilir sağlayıcılar ve uygulama talimatları
App Check dokümanlarında, onay sağlayıcıların açıklamalarının yanı sıra uygulama talimatları da yer alır.
Varsayılan bir sağlayıcı seçin ve aşağıdaki bağlantılardaki uygulama talimatlarını uygulayın:
- Apple platformları: DeviceCheck veya App Attest
- Android: Play Integrity
- Web: reCAPTCHA Enterprise
- Flutter: Yukarıdaki tüm varsayılan sağlayıcıları destekler.
Ayrıca, Flutter ve App Check için özel örnekleme koşullarını karşıladığınızdan emin olun. - Unity: Yukarıdaki tüm varsayılan sağlayıcıları destekler.
Varsayılan sağlayıcıların hiçbiri ihtiyaçlarınızı karşılamıyorsa üçüncü taraf bir onay sağlayıcı veya kendi onay tekniklerinizi kullanan özel bir sağlayıcı uygulayabilirsiniz.
(Önerilir) App Check'dan gelecek gelişmiş korumaya hazırlanın (yeniden oynatma koruması olarak da bilinir).
(Zorunlu) Uygulamanızı gerçek kullanıcılarla paylaşmadan önce App Check yaptırımını etkinleştirin.
Flutter için özel örnekleme gerekir
Bu sayfada sağlayıcıya özel içerikleri ve kodu görüntülemek için Gemini API sağlayıcınızı tıklayın. |
Flutter uygulamalarında App Check ile Firebase AI Logic kullanırken, örnek oluşturma sırasında App Check değerini açıkça iletmeniz gerekir. Örneğin:
// ...
final ai = await FirebaseAI.googleAI(
appCheck: FirebaseAppCheck.instance, // for Flutter, pass in App Check explicitly
);
// ...
Yaklaşan gelişmiş koruma özelliklerine hazırlanın
Sınırlı kullanım jetonları şu anda yalnızca Apple
platformlarında (12.2.0 sürümü veya üzeri), Android'de (17.2.0 sürümü veya üzeri, BoM 34.2.0 sürümü veya üzeri) ve web'de (12.3.0 sürümü veya üzeri)
kullanılabilir. Diğer platformlar için destek önümüzdeki birkaç hafta içinde kullanıma sunulacaktır. |
Varsayılan olarak App Check,
Gelecekte App Check, Firebase AI Logic için yeniden oynatma korumasını etkinleştirme seçeneğini ekleyecektir (App Check'nın bazı diğer kaynaklar için sunduğu desteğe benzer şekilde). Yeniden oynatma koruması etkinleştirildiğinde koruma aşağıdaki şekillerde iyileştirilir:
App Check, yalnızca sınırlı kullanım jetonu adı verilen özel bir jetonla birlikte gönderilen istekleri kabul eder.
Sınırlı kullanımlı jeton doğrulandıktan sonra, jeton yalnızca bir kez kullanılabilir ve tekrar oynatma saldırıları önlenir.
Yeniden oynatma korumasına hazırlanmak için App Check kurulumunun bir parçası olarak sınırlı kullanım jetonlarının kullanımını etkinleştirmenizi öneririz. Bu sayede, yeniden oynatma koruması kullanıma sunulduğunda daha fazla kullanıcınız sınırlı kullanımlı jetonlar gönderen uygulama sürümlerini kullandığı için bu özelliği daha erken etkinleştirebilirsiniz.
Yeniden oynatma koruması kullanılamıyorken uygulamanızda sınırlı kullanım jetonlarının kullanımını etkinleştirirseniz aşağıdakileri unutmayın:
App Check, geçerli oturum jetonlarının kullanımını engellemez.
Sınırlı kullanım jetonları, oturum jetonları gibi App Check SDK tarafından önbelleğe alınır ve isteklerle birlikte gönderilir. Bu sınırlı kullanım jetonları, varsayılan oturum jetonlarına kıyasla daha az ek koruma sağlar. Bunun nedeni, sınırlı kullanım jetonlarının oturum jetonlarına kıyasla daha kısa bir TTL'ye (yalnızca
5 dakika ve ayarlanamaz) sahip olmasıdır.Sınırlı kullanım jetonlarının geçerlilik süresi
5 dakika olsa da SDK, her istek için yeni bir jeton oluşturmaya devam eder. Bu işlem, isteğinize biraz gecikme ekleyebilir.
Ancak gelecekte Firebase AI Logic için yeniden oynatma koruması kullanıma sunulduğunda (ve siz bu özelliği etkinleştirdiğinizde) oturum jetonlarının kullanılması ve sınırlı kullanımlı jetonların yeniden kullanılması mümkün olmayacaktır. Her istek için yeni bir jeton oluşturulmasıyla ilgili ek gecikmenin devam edeceğini unutmayın.
Sınırlı kullanım jetonlarının kullanımını etkinleştirme
Bu sayfada sağlayıcıya özel içerikleri ve kodu görüntülemek için Gemini API sağlayıcınızı tıklayın. |
Sınırlı kullanım jetonlarının kullanımını etkinleştirmek için:
App Check uygulayın ve uygulamanız için App Check yaptırımını etkinleştirdiğinizden emin olun.
Uygulamanızda örnek oluşturma sırasında,
useLimitedUseAppCheckTokens
parametresinitrue
olarak ayarlayarak sınırlı kullanım jetonlarının kullanımını etkinleştirin:Swift
// ... // During instantiation, enable usage of limited-use tokens let ai = FirebaseAI.firebaseAI( backend: .googleAI(), useLimitedUseAppCheckTokens: true ) // ...
Kotlin
// ... // During instantiation, enable usage of limited-use tokens val ai = Firebase.ai( backend = GenerativeBackend.googleAI(), useLimitedUseAppCheckTokens = true ) // ...
Java
// ... // During instantiation, enable usage of limited-use tokens FirebaseAI ai = FirebaseAI.getInstance( /* backend: */ GenerativeBackend.googleAI(), /* useLimitedUseAppCheckTokens: */ true ); // ...
Web
// ... // During instantiation, enable usage of limited-use tokens const ai = getAI(firebaseApp, { backend: new GoogleAIBackend(), useLimitedUseAppCheckTokens: true }); // ...
Dart
Flutter uygulamalarında sınırlı kullanım jetonları kullanma, yakında kullanıma sunulacak sürümde desteklenecektir. Bir süre sonra tekrar kontrol edin.
Unity
Unity oyunlarında sınırlı kullanımlı jetonlar, gelecekteki bir sürümde desteklenecektir. Bir süre sonra tekrar kontrol edin.
Firebase AI Logic ile App Check arasındaki entegrasyonu anlama
Firebase AI Logic SDK'larını kullanmak için Firebase projenizde Firebase AI Logic API'sinin (firebasevertexai.googleapis.com
) etkinleştirilmesi gerekir. Bunun nedeni, Firebase AI Logic SDK'ları tarafından yapılan isteklerin önce Firebase AI Logic sunucusuna gönderilmesidir. Bu sunucu, isteğin seçtiğiniz "Gemini API" sağlayıcının arka ucuna ve Gemini ile Imagen modellerine erişmek için kullanılan API'lere devam etmesine izin verilmeden önce Firebase App Check doğrulamasının yapıldığı bir proxy ağ geçidi görevi görür.