Google Identity Toolkit から Google Cloud Identity Platform に移行する

Google Identity Toolkit の最新バージョンは、 Identity PlatformFirebase Authentication。 今後、Identity Toolkit での機能の開発は凍結する。すべて新規 Identity Platform と Firebase で機能開発を行います。 認証。Identity Toolkit のデベロッパーには、 開発する必要があると判断しました。

新機能

Identity Platform にはすでに、 Google Identity Toolkit:

  • 新しい管理コンソール

    Identity Platform には 新しいデベロッパー コンソール ユーザーを表示、変更、削除できます。これが役に立つかもしれません ログインと登録のフローをデバッグできますコンソールでは 認証方法の構成、メール テンプレートのカスタマイズを行います。

  • 新しい認証方法

    Identity Platform は、SAML や Cloud Identity などのエンタープライズ フェデレーション標準を OIDC。SaaS アプリとサービスをスケーリングできます。Identity Platform も は、GitHub、Microsoft、Yahoo などのプロバイダに対応しています。 匿名ログインを使用すると、ユーザー名を指定せずに一意のユーザー ID を作成できます。 ユーザーにログインまたは登録のプロセスを義務付けること。これにより、 通常のユーザーの場合と同じように、認証済みの API 呼び出しを行うことができます。日時 ユーザーがアカウント登録を決断した場合、すべてのアクティビティは 同じユーザー ID である必要があります。これは、サーバーサイド ショッピングのような場合に有用です。 送信前にユーザーに働きかけたい 登録フローを進めます

  • サービスレベル契約と Cloud サポートで信頼性の高いスケーリングを実現

    Identity Platform は信頼できる Google インフラストラクチャ上に構築されており、 サービスレベル契約 Google Cloud のサポートを受けられます。つまり、任意の量のサービスをスケールして、 実現できます。また、復元力、可用性、可用性は Google に スケーラビリティとスケーラビリティを 確保できます

  • Firebase のすべてにアクセス

    Firebase は、高品質のアプリケーションをすばやく開発できるモバイル プラットフォームです。 ユーザーベースを拡大して収益を増やすことができます。Firebase を構成するのは さまざまな組み合わせが用意されており、ニーズや 次のインフラストラクチャを含む: モバイル 分析 クラウド メッセージングRealtime Database の場合 ファイル ストレージ静的ホスティングリモート構成、 モバイル クラッシュ レポート Android のテスト

  • 更新された UI

    Google の最新の UX に基づいて UI フローを完全に再構築 あります。これには、パスワードの再設定、アカウントのリンク、新規/既存サービスが含まれる コーディングやプロセスに多大な時間を要することが多い 使用します。Smart Lock for Passwords と統合されている ログインや登録のコンバージョンを大幅に改善 をご利用ください。アプリをご利用いただけます。 アプリケーションに合わせてテーマを簡単に変更でき、 カスタマイズ性に優れているため、Android および iOS オープンソース化されています。

  • サーバー設定の簡素化

    Identity Toolkit を使用すると、多くのデベロッパーがこの API を メール復元フローが原因でユーザーが メールを復元できず パスワードを忘れた可能性があります。Identity Platform は 電子メールの確認、パスワードのリセット、パスワードの変更に関するメッセージを ユーザーとテキストを簡単にカスタマイズできる 提供しますまた、インフラストラクチャを UI ウィジェット: リダイレクトと パスワードの変更操作を完了できます。

  • 新しい SDK

    Identity Toolkit のすべてのサーバー API は、 クライアント ライブラリ(Android、iOS、ウェブ)デベロッパーは 新旧のユーザーのログイン、登録、ユーザー プロパティへのアクセス、リンク、更新、 アカウントを削除したり、パスワードをリセットしたりできます。固定の UI に縛られる必要はありません。 必要に応じて、独自のログインフロー全体を手動で構築し、 体験を提供できます

  • モバイルアプリのセッション管理

    Identity Toolkit を使用して、アプリは ID と認証情報に基づいて 初期認証イベントを記録します。Identity Platform は 認証から作成された更新トークンを受け取るバックエンド サービス そのトークンと引き換えに、Android、iOS、 使用できます。ユーザーがパスワードを変更しても、更新トークンは 新しいアクセス トークンを生成できなくなります。これにより、次の期間までアクセスが そのデバイスでユーザーが再認証を行います。

機能の違い

現在、Identity Toolkit では一部の Identity Toolkit 機能を使用できない 他の機能は再設計され、動作が異なります。 これらの機能が重要な業務である場合は、すぐには移行しないことをおすすめします 説明します。多くの場合、こうした機能はアプリや 簡単なフォールバックによって移行を進めることができます。

サーバーサイドの違い

Identity Toolkit のコアサービスとその基盤となる REST API は、 検証ロジック、プライマリ ユーザー データベースはマイナー アップデートのみ加えられました。 ただし、一部の機能と Identity Platform を統合する方法には 変更されたからです。

  • ID プロバイダ

    PayPal と AOL はサポートされていません。以下を持つユーザー アカウントは引き続き、 パスワードの再設定フローを確認し、アカウントのパスワードを設定します。

  • サーバー ライブラリ

    現在、次の Admin SDK があります。 Java、Node.js、Python、Go、C#で利用できます

  • アカウント管理メール

    パスワードの再設定、メール確認、メール変更メッセージは、 実行されていること、またはデベロッパーの 独自のメールサーバーです現在、メール テンプレートでご利用いただけるのは UI からカスタマイズすることもでき、 Admin SDK

  • メールアドレス変更の確認

    Identity Toolkit では、ユーザーがメールアドレスの変更を決定すると、 メールを継続するためのリンクが記載されたメールが新しいアドレスに送信されます アドレス変更フローを実行します

    Firebase は、取り消しメールを次のアドレスに送信してメールアドレスの変更を確認します。 変更を元に戻すためのリンクが記載された古いメールアドレス。

  • IdP のロールアウト

    Identity Toolkit にはログインに ID プロバイダを追加する機能があった テストできます。テストすることで、 サポート リクエストを受け付けています。この機能は Firebase Authentication で削除されました。

クライアントサイドの違い

Identity Platform では、Google Identity Toolkit によって提供される機能は、 次の 2 つに分けることができます。

  • クライアント SDK とサーバー SDK

    Identity Platform では、Identity Toolkit の REST API は、Android、iOS、App Engine で利用できるクライアント SDK にパッケージ化されています。 使用できます。SDK を使用して、ユーザーのログインと登録を行うことができます。アクセス ユーザー プロフィール情報アカウントのリンク、更新、削除パスワードを再設定 を介してバックエンド サービスと通信する代わりに、SDK を使用して REST 呼び出し。

  • UI ウィジェット

    ログイン、登録、パスワードの再設定、 アカウントのリンクは、Client SDK を使用して再構築され、 ログイン ウィジェットを使用します。これらのプロダクトは、オープンソース SDK として iOSAndroid ウェブ、 BigQuery では不可能な方法でフローを完全にカスタマイズできます。 説明します。

他にも次のような違いがあります。

  • セッションと移行

    Identity Toolkit と Identity ではセッションの管理方法が異なるため プラットフォーム、つまり既存のセッションは アップグレードが必要となり、ユーザーは再度ログインする必要があります。

始める前に

Identity Toolkit から Identity Platform に移行する前に、 要件:

  1. Cloud コンソールを開き、 できます。

  2. Marketplace で Identity Platform [Identity Platform を有効にする] を

  3. サービス アカウント] ページを開きます。ここには、作成したサービス アカウントが Identity Toolkit 用に構成されています

  4. サービス アカウントの横にある 件 >鍵の作成。次に、 [Create private key] ダイアログで [Key type] を [JSON] に設定して、 作成:サービス アカウントの認証情報を含む JSON ファイルは、 自動的にダウンロードされます。これは、次のステップで SDK を初期化する際に必要になります。

  5. Cloud コンソールに戻ります。 [プロバイダ] セクションの [メール/パスワード] 欄ログイン方法、 [メール テンプレート] ページを開きます。その後、アプリの 使用できます。

    Identity Toolkit では、ユーザーがパスワードの再設定、メールアドレスの変更、 メールアドレスが確認済みであった場合、 ユーザーにメールでコードを送信します。 Identity Platform は、構成したテンプレートに基づいてメールを 追加のアクションが必要です。

  6. 省略可: 使用しているサービスから Identity Platform サービスに Firebase SDK をインストールします。

    1. Node.js Admin SDK は、npm を使用してインストールできます。

      $ npm init
      $ npm install --save firebase-admin
      
    2. コード内で、次のコマンドを使用して Firebase にアクセスできます。

      var admin = require('firebase-admin');
      var app = admin.initializeApp({
        credential: admin.credential.cert('path/to/serviceAccountCredentials.json')
      });
      

次に、アプリのプラットフォーム(AndroidiOSウェブ

サーバーと JavaScript

主な変更点

Google 広告のウェブ実装には、この他にも多くの違いがあります。 Identity Platform から見ていきましょう。

  • ウェブ セッションの管理

    これまでは、ユーザーが Identity Toolkit ウィジェット ユーザーに設定された Cookie によって、 セッションをブートストラップする。 この Cookie の有効期間は 2 週間で、ユーザーが Cookie を使用して アカウント管理ウィジェットを使用して、パスワードやメールアドレスを変更できます。一部 サイトの他のすべてのページ リクエストを認証するために、サイトがこの Cookie を使用しています。 他のサイトでは、独自の Cookie を作成するために Cookie を使用しています Cookie 管理システムを使用して行われます。

    Identity Platform クライアント SDK は、 ID トークン Identity Platform のバックエンドと連携してセッションを最新の状態に保つ 重要なアカウントが変更されると、バックエンドはセッションを期限切れにする パスワードの変更など)が発生したとします。ID トークンは自動的には生成されません。 設定され、有効期間が 1 時間のみである。これを行わない場合、 セッションを 1 時間のみに制限したい場合は、ID トークンを すべてのページ リクエストを検証するための Cookie として使用されます。その代わりに、 リスナーをセットアップする必要があります。 ユーザーがログインしたときや ID トークンを取得する トークンを検証し、 フレームワークの Cookie 管理システム経由で独自の Cookie を作成できます。

    Cookie のセッション存続期間は、 セキュリティに関するニーズを満たすことができます。

  • ウェブログインフロー

    以前は、ログインしたときにユーザーが accountchooser.com にリダイレクトされていました。 ユーザーが使いたい識別子を学習しました。Identity Platform UI のフローは、ログイン方法のリスト(メールアドレスや電話番号など)から始まります。 このオプションでは、ウェブ用の accountchooser.com に移動し、 hintRequest API: Android。また、UI にメールアドレスは必要ありません。 これにより、匿名ユーザー、カスタム認証ユーザーのサポートが容易になります。 または、メールアドレスが不要なプロバイダからのユーザーです。

  • アカウント管理ウィジェット

    このウィジェットは、ユーザーがメールアドレスの変更、 アカウントと ID プロバイダとのリンクを解除できます。現在は 開発しています。

  • ログインボタン/ウィジェット

    ログインボタンやユーザーカードなどのウィジェットは提供されなくなりました。。 Firebase Authentication API を使用して非常に簡単に構築できます。

  • signOutUrl を使用しない

    firebase.auth.signOut() を呼び出してコールバックを処理する必要があります。

  • oobActionUrl がありません

    メールの送信は Identity Platform によって処理されるようになりました。また、 Firebase コンソール。

  • CSS のカスタマイズ

    UI ウィジェットは、マテリアル デザイン ライトのスタイル設定を使用しています。 マテリアル デザインのアニメーションが動的に追加されます。

ステップ 1: サーバーコードを変更する

  1. サーバーが Identity Toolkit トークン(2 週間有効)を使用していて、 管理するには、独自のユーザー セッションを使用するようにサーバーを変換し、 セッション Cookie です。

    1. エンドポイントを実装する ID トークンの検証 ユーザーのセッション Cookie を設定しますクライアント アプリが このエンドポイントへの Firebase ID トークン。
    2. 受信リクエストに独自のセッション Cookie が含まれている場合は、 ユーザーが認証済みと見なされます。それ以外の場合は、リクエストを 表示されます。
    3. どのユーザーも既存のログインを失わないようにしたい場合 2 週間待つ必要があります。また、すべての Identity Toolkit トークンが ウェブ アプリケーションのデュアル トークン検証も行う (ステップ 3 で説明します)
  2. 次に、ID トークンは Identity Toolkit とは異なるため、 トークン検証ロジックを更新する必要があります。 Admin SDK サーバーに送ります。Admin SDK でサポートされていない言語を使用している場合は、 JWT トークン検証ライブラリをダウンロードする 適切に管理し、 トークンを検証する

  3. 上記の更新を最初に行うとき、まだ構成されているコードパスが Identity Toolkit トークンを使用します。iOS アプリまたは Android アプリの場合 ユーザーが新しいアプリをリリースする前に、 新しいコードパスが機能しますユーザーに更新を強制したくない場合、 検証するサーバー検証ロジックをアプリに追加することで、 Firebase SDK と トークンを検証します。ウェブのみを使用する場合や 新しい認証リクエストはすべて Identity Platform で使用するため、ID トークンを 確認方法を指定します。

ウェブ API リファレンスをご覧ください。

ステップ 2: HTML を更新する

  1. 初期化コードをアプリに追加します。

    1. Google Chat でプロジェクトを開きます。 Cloud コンソール
    2. プロバイダ [アプリケーション設定の詳細] をクリックします。コード スニペットは、 Identity Platform が初期化されます。
    3. 初期化スニペットをコピーしてウェブページに貼り付けます。
  2. Authentication ウィジェットを追加する 追加します。

    <script src="https://www.gstatic.com/firebasejs/ui/live/0.4/firebase-ui-auth.js"></script>
    <link type="text/css" rel="stylesheet" href="https://www.gstatic.com/firebasejs/ui/live/0.4/firebase-ui-auth.css" />
    <!-- *******************************************************************************************
       * TODO(DEVELOPER): Paste the initialization snippet from:
       * Firebase Console > Overview > Add Firebase to your web app. *
       ***************************************************************************************** -->
    <script type="text/javascript">
      // FirebaseUI config.
      var uiConfig = {
        'signInSuccessUrl': '<url-to-redirect-to-on-success>',
        'signInOptions': [
          // Leave the lines as is for the providers you want to offer your users.
          firebase.auth.GoogleAuthProvider.PROVIDER_ID,
          firebase.auth.FacebookAuthProvider.PROVIDER_ID,
          firebase.auth.TwitterAuthProvider.PROVIDER_ID,
          firebase.auth.GithubAuthProvider.PROVIDER_ID,
          firebase.auth.EmailAuthProvider.PROVIDER_ID
        ],
        // Terms of service url.
        'tosUrl': '<your-tos-url>',
      };
    
      // Initialize the FirebaseUI Widget using Firebase.
      var ui = new firebaseui.auth.AuthUI(firebase.auth());
      // The start method will wait until the DOM is loaded.
      ui.start('#firebaseui-auth-container', uiConfig);
    </script>
    
  3. アプリから Identity Toolkit SDK を削除します。

  4. セッション管理に Identity Toolkit ID トークンを使用している場合は、 クライアントサイドで次の変更を行う必要があります。

    1. Identity Platform で正常にログインしたら、次の方法で ID トークンを取得します。 firebase.auth().currentUser.getToken() を呼び出しています。

    2. ID トークンをバックエンド サーバーに送信して検証し、発行する 使用するセッション Cookie です。

      機密情報を扱うときは、セッション Cookie のみに頼らないでください。 認証された編集リクエストをサーバーに送信することもできます。マイページ 追加のクロスサイト リクエスト フォージェリ(CSRF)の提供が必要 保護を強化します。

      フレームワークで CSRF の保護が提供されていない場合、 ログイン ユーザーの ID トークンを取得し getToken() で指定し、各リクエストにトークンを含めます( デフォルトで Cookie も送信されます)。次に、そのトークンを検証し、 セッション Cookie チェックのほか Admin SDK による 完了したジョブが表示されますこれにより ID トークンが保存されるのは 保存され、Cookie には記録されません。

    3. Identity Toolkit トークンは 2 週間有効です。必要に応じて 2 週間続くトークンを発行し続けるか、 アプリのセキュリティ要件に応じて長くしたり短くしたりできます。 ユーザーがログアウトしたら、セッション Cookie を削除します。

ステップ 3: IDP のリダイレクト URL を更新する

  1. Cloud コンソールで、次の操作を行います。 [プロバイダ] を開く できます。

  2. サポートするフェデレーション ログイン プロバイダごとに、次の操作を行います。

    1. ログイン プロバイダの名前をクリックします。
    2. OAuth リダイレクト URI をコピーします。
    3. ログイン プロバイダのデベロッパー コンソールで、OAuth リダイレクトを更新する URI です。

Android

ステップ 1: Firebase を使用してアプリに Identity Platform を追加する

  1. アプリ Cloud コンソール Identity Toolkit プロジェクトを選択します。

  2. [プロバイダ] ページで [アプリケーション設定の詳細] をクリックし、 [Android] タブに移動してから、[Firebase で始める] をクリックします。 [Add Firebase] ダイアログで、アプリのパッケージ名と署名を指定します。 [Add App] をクリックします。google-services.json コンピュータにダウンロードされます。

  3. 構成ファイルを Android アプリ モジュールのルート ディレクトリにコピーします。この 構成ファイルには、プロジェクトと Google OAuth クライアント情報が含まれています。

  4. プロジェクト レベルの build.gradle ファイル (<var>your-project</var>/build.gradle)を使用するには、アプリのパッケージ名を defaultConfig セクション:

    defaultConfig {
       …..
      applicationId "com.your-app"
    }
    
  5. また、プロジェクト レベルの build.gradle ファイルで、含める依存関係を追加します。 google-services プラグイン:

    buildscript {
     dependencies {
       // Add this line
       classpath 'com.google.gms:google-services:3.0.0'
     }
    }
    
  6. アプリのアプリレベルの build.gradle ファイル内 (<var>my-project</var>/<var>app-module</var>/build.gradle)、 Android Gradle プラグインの直後に、次の行を使用して google-services プラグイン:

    apply plugin: 'com.android.application'
    // Add this line
    apply plugin: 'com.google.gms.google-services'
    

    google-services プラグインは、google-services.json ファイルを使用して構成します。 アプリケーションを Firebase で使用できます。

  7. また、アプリレベルの build.gradle ファイルで、Firebase Authentication を追加します。 :

    compile 'com.google.firebase:firebase-auth:23.0.0'
    compile 'com.google.android.gms:play-services-auth:21.2.0'
    

ステップ 2: Identity Toolkit SDK を削除する

  1. AndroidManifest.xml から Identity Toolkit の構成を削除する 表示されます。この情報は google-service.json ファイルに含まれ、 google-services プラグインで読み込まれます。
  2. アプリから Identity Toolkit SDK を削除します。

ステップ 3: アプリに FirebaseUI を追加する

  1. FirebaseUI Auth を追加する 追加できます

  2. アプリで、Identity Toolkit SDK の呼び出しを次の呼び出しに置き換えます。 FirebaseUI

iOS

ステップ 1: Firebase をアプリに追加する

  1. 次のコマンドを実行して、クライアント SDK をアプリに追加します。

    $ cd your-project directory
    $ pod init
    $ pod 'Firebase'
    
  2. アプリ Cloud コンソール Identity Toolkit プロジェクトを選択します。

  3. [Providers] ページで [Application setup details] をクリックし、[iOS] を選択します。 [Firebase で始める] をクリックします。[Add Firebase] ダイアログで アプリのパッケージ名と署名証明書フィンガープリントを提供します。 [アプリを追加] をクリックします。google-services.json 構成ファイルは、 ダウンロードされます。[Add Firebase] ダイアログで、アプリの バンドル ID と App Store ID、[App を追加] をクリックします。 その後、GoogleService-Info.plist 構成ファイルがローカルにダウンロードされます。 できます。プロジェクトに複数のバンドル ID がある場合、それぞれのバンドル ID には、 Firebase コンソールで接続し、独自の ID を作成する GoogleService-Info.plist ファイル。

  4. 構成ファイルを Xcode プロジェクトのルートにコピーし、 あります。

ステップ 2: Identity Toolkit SDK を削除する

  1. アプリの Podfile から GoogleIdentityToolkit を削除します。
  2. pod install コマンドを実行します。

ステップ 3: アプリに FirebaseUI を追加する

  1. FirebaseUI Auth を追加する 追加できます

  2. アプリで、Identity Toolkit SDK の呼び出しを次の呼び出しに置き換えます。 FirebaseUI