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 karşı savunmasız kalır. Bu API'lerin korunmasına yardımcı olmak 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 dahil 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 de doğrulayan bir uygulama ya da cihaz onayı sağlayıcısı kullanır:
- İstekler, orijinal uygulamanızdan gelmelidir.
- İstekler, orijinal 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 gelen tüm istekler reddedilir.
App Check'yı ayarlarken yakında kullanıma sunulacak gelişmiş korumaya (yeniden oynatma koruması olarak da bilinir) hazırlanın.
App Check hakkında ayrıntılı bilgiyi, kotaları ve sınırları da dahil olmak üzere 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ı yerine getirdiğinizden 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'den gelen, yeniden oynatma koruması olarak bilinen gelişmiş korumaya hazırlanın.
(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
|
Sağlayıcıya özel içeriği ve kodu bu sayfada 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ş korumaya hazırlanın
| Sınırlı kullanım jetonlarının kullanımının etkinleştirilmesi Apple platformları (12.2.0 sürümü ve sonrası), Android (17.2.0 sürümü ve sonrası, BoM 34.2.0 sürümü ve sonrası), Web (12.3.0 sürümü ve sonrası) ve Flutter (3.2.0 sürümü ve sonrası, BoM 4.2.0 sürümü ve sonrası) için desteklenir. Unity desteği yakında kullanıma sunulacaktır. |
Varsayılan olarak App Check,
Gelecekte App Check, Firebase AI Logic için tekrar 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 şu ş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ım jetonu doğrulandıktan sonra, jeton yalnızca bir kez kullanılabilmesi için tüketilir. Bu sayede 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, tekrar 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 korumayı 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 biraz daha fazla 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
|
Sağlayıcıya özel içeriği ve kodu bu sayfada 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,
useLimitedUseAppCheckTokensparametresinitrueolarak 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
// ... // During instantiation, enable usage of limited-use tokens final ai = await FirebaseAI.googleAI( appCheck: FirebaseAppCheck.instance, // for Flutter, pass in App Check explicitly useLimitedUseAppCheckTokens: true, ); // ...Unity
Unity oyunlarında sınırlı kullanımlı jetonların kullanımı 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'si (firebasevertexai.googleapis.com) etkinleştirilmelidir. 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 geçmesine izin verilmeden önce Firebase App Check doğrulamasının yapıldığı bir proxy ağ geçidi görevi görür.