iOS'te Google ile Oturum Açma için Uygulama Kontrolü'nü kullanmaya başlama

Bu sayfada, iOS uygulamasında App Check'i nasıl etkinleştireceğiniz gösterilmektedir. App Check'i etkinleştirdiğinizde, projeniz adına Google'ın OAuth 2.0 uç noktalarına yalnızca uygulamanızın erişebilmesini sağlarsınız. Bu özelliğe genel bakış için.

Uygulama Kontrolü, OAuth 2.0 isteklerinin gerçek uygulamanızdan geldiğini doğrulamaya yardımcı olmak için App Attest'i kullanır. Uygulama Kontrolü, sahtekarlık riskini analiz etmek için App Attest'i kullanmaz.

Başlamadan önce

  1. Xcode 12.5 veya daha yeni bir sürümün yüklü olduğundan emin olun.

  2. Google ile oturum açma kitaplığını kullanarak Google ile oturum açma özelliğini iOS uygulamanıza entegre edin.

1. Projenizi oluşturma

App Check, Google API Console veya Firebase konsolunda etkinleştirilebilir. Bu özelliği her iki yerde de etkinleştirmeniz gerekmez. Bir yerde etkinleştirmeniz yeterlidir.

Google API Console

iOS istemcinizde App Check'i başarıyla etkinleştirmek için aşağıdaki koşulların karşılanması gerekir:
  • iOS istemciniz için bir ekip kimliği belirtmeniz gerekir.
  • Birden fazla uygulamaya çözümlenebileceğinden paket kimliğinizde joker karakter kullanmamalısınız. Bu nedenle, paket kimliği yıldız (*) sembolünü içermemelidir.
Uygulama Kontrolü'nü etkinleştirmek için iOS istemcinizin düzenleme görünümünde Firebase Uygulama Kontrolü ile OAuth istemcinizi kötüye kullanıma karşı koruyun açma/kapatma düğmesini etkinleştirin.

Uygulama Kontrolü'nü etkinleştirdikten sonra, OAuth istemcisinin düzenleme görünümünde istemcinizden gelen OAuth istekleriyle ilgili metrikleri görmeye başlarsınız. Uygulama Kontrolü'nü zorunlu kılana kadar doğrulanmamış kaynaklardan gelen istekler engellenmez. Metrik izleme sayfasındaki bilgiler, yaptırım uygulamaya ne zaman başlayacağınızı belirlemenize yardımcı olabilir.

iOS uygulamanızda Uygulama Kontrolü'nü etkinleştirirken Uygulama Kontrolü özelliğiyle ilgili hatalar görebilirsiniz. Bu hataları düzeltmek için aşağıdakileri deneyin:

  • Belirttiğiniz paket kimliğinin ve takım kimliğinin geçerli olduğunu doğrulayın.
  • Paket kimliği için joker karakter kullanmadığınızı doğrulayın.

Firebase Konsolu

  1. Google ile Giriş'i App Check ile kullanmak için bir Firebase projeniz olmalıdır.

  2. Henüz yapmadıysanız Firebase konsolunun Proje ayarları sayfasını kullanarak iOS uygulamalarınızı Firebase projenize ekleyin.

  3. Uygulamalarınızı, Firebase konsolunun Uygulama Kontrolü bölümünde App Attest sağlayıcısıyla Uygulama Kontrolü'nü kullanacak şekilde kaydedin.

  4. Projenizdeki tüm OAuth istemcilerinin bir uygulamaya bağlı olduğundan emin olun.

    Bağlantısı kaldırılmış istemcileriniz varsa Uygulama Kontrolü sayfasının iOS için Google Kimliği bölümünde "Ek kurulum gerektiren n bağlantısı kaldırılmış OAuth istemciniz var." mesajını görürsünüz.

    Ayrıca, App Check'te ayarladıktan sonra bazı OAuth istemcilerini sildiyseniz "Eşleşen OAuth istemcisi olmayan n geçersiz kılma işleminiz var" mesajını görürsünüz. Bu geçersiz kılmaları silerek güvenli bir şekilde temizleme yapabilirsiniz.

    Bağlantısı kaldırılmış istemcileri, Firebase konsolunun OAuth istemcileri sayfasında mevcut veya yeni bir uygulamaya bağlayabilirsiniz.

2. Google ile oturum açma kitaplığını uygulamanıza ekleme

  1. Xcode projenizde Google ile Giriş bağımlılığını 8.0.0 veya daha yüksek bir sürüme ayarlayın :

    SPM : Stratejik İş Ortağı Yöneticisi

    googlesignin-ios bağımlılık kuralını 8.0.0 sürümüne veya daha yüksek bir sürüme ayarlayın.

    CocoaPods

    Podfile öğenizi güncelleyin:

    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
    

    Ardından pod install komutunu çalıştırın ve oluşturulan .xcworkspace dosyasını açın.

  2. Xcode'da uygulamanıza App Attest özelliğini ekleyin.

  3. Projenizin .entitlements dosyasında App Attest ortamını production olarak ayarlayın.

3. Uygulama Kontrolü'nü başlatma

Uygulama temsilcinizin didFinishLaunchingWithOptions yönteminde GIDSignIn.sharedInstance.configure(completion:) yöntemini çağırın. Kullanıcı tarafından algılanan gecikmeyi en aza indirmek için bu yöntemi uygulamanızın yaşam döngüsünde mümkün olduğunca erken çağırmalısınız.

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

  // ...
}

Sonraki adımlar

Uygulama Denetimi kitaplığı uygulamanıza yüklendikten sonra güncellenen uygulamayı kullanıcılarınıza dağıtmaya başlayın.

Güncellenen istemci uygulaması, Google'ın kimlik doğrulama uç noktalarına yaptığı her istekle birlikte Uygulama Kontrolü jetonları göndermeye başlar ancak Firebase konsolunun Uygulama Kontrolü bölümünde zorunlu kılmayı etkinleştirmediğiniz sürece uç noktalar, jetonların geçerli olmasını gerektirmez.

Metrikleri izleme

Ancak zorunlu kılmayı etkinleştirmeden önce, bu işlemin mevcut meşru kullanıcılarınızın hizmetten yararlanmasını engellemeyeceğinden 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ı daha erken etkinleştirmek isteyebilirsiniz.

Bu kararı vermenize yardımcı olması için Google ile oturum açma için App Check metriklerine bakabilirsiniz.

Uygulama Kontrolü'nü zorunlu kılma

App Check'in kullanıcılarınızı nasıl etkileyeceğini anladığınızda ve devam etmeye hazır olduğunuzda App Check zorunluluğunu etkinleştirebilirsiniz.

Hata ayıklama ortamlarında App Check'i kullanma

Uygulamanızı Uygulama Kontrolü'ne kaydettikten sonra, uygulamanızı Uygulama Kontrolü'nün normalde geçerli olarak sınıflandırmayacağı bir ortamda (ör. geliştirme sırasında simülatörde veya sürekli entegrasyon (CI) ortamında) çalıştırmak istiyorsanız uygulamanızın App Attest yerine Uygulama Kontrolü hata ayıklama sağlayıcısını kullanan bir hata ayıklama sürümünü oluşturabilirsiniz.

Hata ayıklama sağlayıcısıyla App Check'i kullanma başlıklı makaleyi inceleyin.