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

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

Uygulama Kontrolü, OAuth 2.0 isteklerinin gerçek uygulamanızdan geldiğini doğrulamak 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üme sahip olduğunuzdan 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

Uygulama Kontrolü, veya Firebase Konsolu'nda etkinleştirilebilir. Bu özelliği her iki yerde de etkinleştirmeniz gerekmez. Tek bir yerde etkinleştirmeniz yeterlidir.

iOS istemciniz için Uygulama Kontrolü'nü başarıyla etkinleştirmek üzere aşağıdaki koşulların karşılanması gerekir:
  • iOS istemciniz için bir ekip kimliği belirtmeniz gerekir.
  • Birden fazla uygulamaya yönlendirebileceği için paket kimliğinizde joker karakter kullanmamanız gerekir. Bu, paket kimliğinin yıldız (*) işareti içermemesi gerektiği anlamına gelir.
Uygulama Kontrolü'nü etkinleştirmek için iOS istemcinizi düzenleme görünümünde OAuth istemcinizi Firebase Uygulama Kontrolü ile kötüye kullanıma karşı koruyun açma/kapatma düğmesini açın.

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. Doğrulanmamış kaynaklardan gelen istekler, Uygulama Kontrolü'nü zorunlu kılana kadar engellenmez. Metrik izleme sayfasındaki bilgiler, yaptırımı ne zaman başlatacağınızı belirlemenize yardımcı olabilir.

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

  • Belirttiğiniz paket kimliğinin ve ekip kimliğinin geçerli olup olmadığını doğrulayın.
  • Paket kimliği için joker karakter kullanmadığınızdan emin olun.

Firebase Konsolu

  1. Google ile oturum açma özelliğiyle Uygulama Denetimi'ni kullanmak için bir Firebase projeniz olmalıdır.

    • Uygulamanız zaten Firebase kullanıyorsa aynı projeyi kullanın.

    • Uygulamanız Firebase'i değil Google ile oturum açma özelliğini kullanıyorsa zaten bir Google Cloud projeniz vardır. Firebase konsolunda yeni proje oluştururken Firebase'i seçerek Google Cloud projenize ekleyin.

      Ayrıca Firebase projeleri ile Google Cloud arasındaki ilişki başlıklı makaleyi inceleyin.

  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ıyla birlikte Uygulama Kontrolü'nü kullanacak şekilde kaydedin.

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

    Bağlantısını kaldırdığınız istemciler varsa Uygulama Kontrolü sayfasının iOS için Google Kimliği bölümünde "n ek kurulum gerektiren OAuth istemcilerinin bağlantısını kaldırdınız" mesajını görürsünüz.

    Ayrıca, bazı OAuth istemcilerini Uygulama Denetimi'nde ayarladıktan sonra sildiyseniz "neşleşen OAuth istemcisi olmayan nüstbilgileriniz var" mesajını görürsünüz. Bu geçersiz kılma işlemlerini silerek alanı güvenle temizleyebilirsiniz.

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

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

  1. Xcode projenizde Google ile oturum açma bağımlılığını 8.0.0 veya sonraki bir sürüme ayarlayın :

    googlesignin-ios öğesinin bağımlılık kuralını 8.0.0 veya sonraki bir sürüme ayarlayın.

    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 dosyasını çalıştırın ve oluşturulan .xcworkspace dosyasını açın.

  2. Xcode'da uygulamanıza Uygulama Onayı özelliğini ekleyin.

  3. Projenizin .entitlements dosyasında, uygulama doğrulama ortamını production olarak ayarlayın.

3. Uygulama Kontrolü'nü başlatma

Uygulama temsilcinizin didFinishLaunchingWithOptions yönteminde GIDSignIn.sharedInstance.configure(completion:) işlevini ç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ğırmanız gerekir.

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

Uygulamanızın App Check kitaplığı yüklendikten sonra güncellenmiş 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 yaptırımı etkinleştirene kadar uç noktalarda jetonların geçerli olması gerekmez.

Metrikleri izleme

Ancak yaptırımı etkinleştirmeden önce, bu işlemin mevcut meşru kullanıcılarınızın çalışması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 uygulama kontrolü metriklerini inceleyebilirsiniz.

Uygulama Kontrolü yaptırımını etkinleştirme

App Check'in kullanıcılarınızı nasıl etkileyeceğini anladıktan ve devam etmeye hazır olduğunuzda App Check yaptırımını 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 bir simülatör) 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 derlemesi oluşturabilirsiniz.

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