iOS で Google ログインの App Check を使ってみる

このページでは、iOS アプリで App Check を有効にする方法について説明します。アプリを有効にすると、 ご自身のアプリだけが Google の OAuth 2.0 にアクセスできるようにしてください エンドポイントを委任できます。この機能の概要をご覧ください。

App Check は App Attest を使用して、OAuth 2.0 本物のアプリから送信されているからです App Check では、不正行為のリスクを分析するために App Attest は使用されません。

始める前に

  1. Xcode 12.5 以降を使用していることを確認します。

  2. Google ログインを iOS アプリに統合するには、 Google ログイン ライブラリ

1. プロジェクトを設定する

  1. App Check を使用するには、Firebase プロジェクトが必要です Google ログイン。

    • アプリですでに Firebase を使用している場合は、同じプロジェクトを使用してください。

    • アプリで Google ログインを使用しているが Firebase を使用していない場合、 Google Cloud プロジェクトですGoogle Cloud プロジェクトに Firebase を追加する Google Cloud コンソールで新しいプロジェクトを作成するときに Firebase コンソール

    関連項目: Firebase プロジェクトと Google Cloud の関係

  2. iOS アプリを Firebase プロジェクトに追加します(まだ行っていない場合)。 Firebase コンソールの [プロジェクトの設定] ページ。

  3. 次の場所で App Attest プロバイダで App Check を使用するようにアプリを登録します。 Firebase コンソールの [App Check] セクション。

  4. プロジェクトのすべての OAuth クライアントがアプリにリンクされていることを確認します。

    クライアントのリンクを解除した場合は、Google Identity and Access Management [App Check] ページの [iOS の場合: n 個のリンクされていない OAuth クライアント(追加設定が必要です)。

    また、OAuth クライアントを設定後に一部のみ削除した場合も、 App Check で、[n OAuth クライアントが存在しない場合のオーバーライドをご覧ください。次のコマンドで安全にクリーンアップできます。 オーバーライドを削除できます

    リンクされていないクライアントは、 Firebase コンソールの [OAuth クライアント] ページ。

2. ベータ版の Google ログイン ライブラリをアプリに追加する

  1. Xcode プロジェクトで、Google ログインの依存関係を version に設定します。 7.1.0-fac-beta-1.1.0:

    SPM

    googlesignin-ios の依存関係ルールを正確なバージョンに設定します。 7.1.0-fac-beta-1.1.0

    CocoaPods

    Podfile を更新します。

    source 'https://github.com/CocoaPods/Specs.git'
    source 'https://github.com/firebase/SpecsDev.git'
    
    target 'YourAppName' do
      use_frameworks!
    
      pod 'GoogleSignIn',
          :git => 'https://github.com/google/GoogleSignIn-iOS.git',
          :tag => '7.1.0-fac-beta-1.1.0'
      pod 'GoogleSignInSwiftSupport'  # If you use SwiftUI.
    end
    

    次に、pod install を実行し、作成された .xcworkspace ファイルを開きます。

  2. Xcode で、アプリに App Attest 機能を追加します。

  3. プロジェクトの .entitlements ファイルで、App Attest 環境を次のように設定します。 production

3. App Check を初期化する

アプリのデリゲートの didFinishLaunchingWithOptions メソッドで、次を呼び出します。 GIDSignIn.sharedInstance.configure(completion:)。このメソッドを呼び出して、 ユーザーが認識するレイテンシを最小限に抑えるために、できる限り早い段階で実装することをおすすめします。

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

  // ...
}

次のステップ

App Check ライブラリがアプリにインストールされたら、アプリの配布を開始します。 ユーザーに配布できます。

更新されたクライアント アプリは、アップデートが行われるたびに App Check トークンと 発行されますが、エンドポイントは認証されません。 App Check で適用を有効にするまで、トークンは有効である必要があります セクションに移動できます。

指標をモニタリングする

ただし、適用を有効にする前に、適用を有効にしても、適用を有効にすることが 既存の正規ユーザーを妨害します一方で アプリリソースの不審な使用に気づいた場合は、違反措置の適用を できます。

これを決定するには Google ログインの App Check の指標

App Check の適用を有効にする

App Check がユーザーに与える影響を理解し、 App Check の適用を有効にします。

デバッグ環境で App Check を使用する

App Check にアプリを登録した後で、そのアプリを実行したい場合 App Check で通常は有効と分類されない環境 継続的インテグレーション(CI)環境から実行することも、 App Check デバッグ プロバイダを使用するアプリのデバッグビルドを作成できます。 使用します

デバッグ プロバイダで App Check を使用するをご覧ください。