Google (ID プール) - Amazon Cognito

Google (ID プール)

Amazon Cognito は Google と統合して、モバイルアプリケーションユーザーにフェデレーションされた認証を提供します。このセクションでは、ID プロバイダーとして Google に対してアプリケーションを登録し、セットアップする方法について説明します。

Android

注記

アプリが Google を使用していて、複数のモバイルプラットフォームで利用可能になる場合は、OpenID Connect プロバイダーとして設定する必要があります。作成されたすべてのクライアント ID を追加オーディエンス値として追加することで、統合が向上します。Google のクライアント間の ID モデルの詳細については、「クライアント間の ID」を参照してください。

Google のセットアップ

Android 用 Google サインインを有効化するには、アプリケーション用の Google デベロッパーコンソールプロジェクトを作成する必要があります。

  1. Google 開発者コンソールに移動して、新しいプロジェクトを作成します。

  2. [APIs & Services] (API とサービス) を選択し、次に [OAuth consent screen] (OAuth 同意画面) を選択します。Google がプロフィールデータをアプリと共有するための同意を求められたときに、Google がユーザーに表示する情報をカスタマイズします。

  3. [Credentials] (認証情報) を選択し、次に[Create credentials] (認証情報の作成) を選択します。[OAuth client ID] (OAuth クライアント ID) を選択します。アプリケーションタイプとして [Android] を選択します。アプリを開発するプラットフォームごとに個別のクライアント ID を作成します。

  4. [Credentials] (認証情報) で、[Manage service accounts] (サービスアカウントの管理) を選択します。[Create service account] (サービスアカウントの作成) を選択します。サービスアカウントの詳細を入力し、[Create and continue] (作成して続ける) を選択します。

  5. サービスアカウントにプロジェクトへのアクセス権を付与します。アプリが必要とするサービスアカウントへのアクセス権をユーザーに付与します。

  6. 新しいサービスアカウントを選択し、[Keys] (キー)、および [Add key] (キーを追加する) を選択します。新しい JSON キーを作成してダウンロードします。

Google デベロッパーコンソールの使用方法の詳細については、Google Cloud ドキュメントの「プロジェクトの作成と管理」を参照してください。

Android アプリへの Google の統合に関する詳細については、Google ID ドキュメントの「Android 用 Google サインイン」を参照してください。

Amazon Cognito コンソールで外部プロバイダーを設定する

Amazon Cognito コンソールのホームページ[Manage Identity Pools] (ID プールの管理) をクリックします。

  1. 外部プロバイダーとして Google を有効化する ID プールの名前を選択します。ID プールの [Dashboard] (ダッシュボード) ページが表示されます。

  2. [ダッシュボード] ページの右上にある、[ID プールの編集] を選択します。[Edit identity pool] (ID プールの編集) ページが表示されます。

  3. 下にスクロールし、[Authentication providers] (認証プロバイダー) を選択します。[Edit identity pool] (ID プールの編集) ページが展開され、追加の認証プロバイダーオプションが表示されます。

  4. [Google] タブを選択します。

  5. [ロック解除] を選択します。

  6. Google Cloud コンソールで作成した Google Client ID を入力し、[Save Changes] (変更の保存) を選択します。

Google の使用

アプリケーションで Google を使用したログインを有効にするには、Android に関する Google のドキュメントに従います。ユーザーがサインインすると、Google に OpenID Connect 認証トークンを要求します。Amazon Cognito はこのトークンを使用してユーザーを認証し、一意の ID を生成します。

次のサンプルコードは、Google Play サービスから認証トークンを取得する方法を示しています。

GooglePlayServicesUtil.isGooglePlayServicesAvailable(getApplicationContext()); AccountManager am = AccountManager.get(this); Account[] accounts = am.getAccountsByType(GoogleAuthUtil.GOOGLE_ACCOUNT_TYPE); String token = GoogleAuthUtil.getToken(getApplicationContext(), accounts[0].name, "audience:server:client_id:YOUR_GOOGLE_CLIENT_ID"); Map<String, String> logins = new HashMap<String, String>(); logins.put("accounts.google.com", token); credentialsProvider.setLogins(logins);

iOS - Objective-C

注記

アプリが Google を使用していて、複数のモバイルプラットフォームで利用可能になる場合は、Google を OpenID Connect プロバイダーとします。作成されたすべてのクライアント ID を追加オーディエンス値として追加することで、統合が向上します。Google のクライアント間の ID モデルの詳細については、「クライアント間の ID」を参照してください。

Google のセットアップ

iOS 用 Google サインインを有効にするには、アプリケーション用の Google デベロッパーコンソールプロジェクトを作成します。

  1. Google 開発者コンソールに移動して、新しいプロジェクトを作成します。

  2. [APIs & Services] (API とサービス) を選択し、次に [OAuth consent screen] (OAuth 同意画面) を選択します。Google がプロフィールデータをアプリと共有するための同意を求められたときに、Google がユーザーに表示する情報をカスタマイズします。

  3. [Credentials] (認証情報) を選択し、次に[Create credentials] (認証情報の作成) を選択します。[OAuth client ID] (OAuth クライアント ID) を選択します。アプリケーションタイプとして [iOS] を選択します。アプリを開発するプラットフォームごとに個別のクライアント ID を作成します。

  4. [Credentials] (認証情報) で、[Manage service accounts] (サービスアカウントの管理) を選択します。[Create service account] (サービスアカウントの作成) を選択します。サービスアカウントの詳細を入力し、[Create and continue] (作成して続ける) を選択します。

  5. サービスアカウントにプロジェクトへのアクセス権を付与します。アプリが必要とするサービスアカウントへのアクセス権をユーザーに付与します。

  6. 新しいサービスアカウントを選択します。[Keys] (キー) タブを選択し、[Add key] (キーを追加する) を選択します。新しい JSON キーを作成してダウンロードします。

Google デベロッパーコンソールの使用方法の詳細については、Google Cloud ドキュメントの「プロジェクトの作成と管理」を参照してください。

iOS アプリへの Google の統合に関する詳細については、Google ID に関するドキュメントの「iOS 用 Google サインイン」を参照してください。

Amazon Cognito コンソールのホームページ[Manage Identity Pools] (ID プールの管理) をクリックします。

Amazon Cognito コンソールで外部プロバイダーを設定する

  1. 外部プロバイダーとして Google を有効にする ID プールの名前を選択します。ID プールの [Dashboard] (ダッシュボード) ページが表示されます。

  2. [ダッシュボード] ページの右上にある、[ID プールの編集] を選択します。[Edit identity pool] (ID プールの編集) ページが表示されます。

  3. 下にスクロールし、[Authentication providers] (認証プロバイダー) を選択してセクションを展開します。

  4. [Google] タブを選択します。

  5. [ロック解除] を選択します。

  6. Google から入手した Google Client ID を入力し、[Save Changes] (変更の保存) を選択します。

Google の使用

アプリケーションで Google を使用したログインを有効にするには、iOS に関する Google のドキュメントに従います。認証に成功すると、OpenID Connect 認証トークンが取得されます。Amazon Cognito はこのトークンを使用してユーザーを認証し、固有識別子を生成します。

認証に成功すると、id_token が含まれる GTMOAuth2Authentication オブジェクトが取得されます。Amazon Cognito はこのオブジェクトを使用してユーザーを認証し、固有識別子を生成します。

- (void)finishedWithAuth: (GTMOAuth2Authentication *)auth error: (NSError *) error { NSString *idToken = [auth.parameters objectForKey:@"id_token"]; credentialsProvider.logins = @{ @(AWSCognitoLoginProviderKeyGoogle): idToken }; }

iOS - Swift

注記

アプリが Google を使用していて、複数のモバイルプラットフォームで利用可能になる場合は、Google を OpenID Connect プロバイダーとします。作成されたすべてのクライアント ID を追加オーディエンス値として追加することで、統合が向上します。Google のクライアント間の ID モデルの詳細については、「クライアント間の ID」を参照してください。

Google のセットアップ

iOS 用 Google サインインを有効にするには、アプリケーション用の Google デベロッパーコンソールプロジェクトを作成します。

  1. Google 開発者コンソールに移動して、新しいプロジェクトを作成します。

  2. [APIs & Services] (API とサービス) を選択し、次に [OAuth consent screen] (OAuth 同意画面) を選択します。Google がプロフィールデータをアプリと共有するための同意を求められたときに、Google がユーザーに表示する情報をカスタマイズします。

  3. [Credentials] (認証情報) を選択し、次に[Create credentials] (認証情報の作成) を選択します。[OAuth client ID] (OAuth クライアント ID) を選択します。アプリケーションタイプとして [iOS] を選択します。アプリを開発するプラットフォームごとに個別のクライアント ID を作成します。

  4. [Credentials] (認証情報) で、[Manage service accounts] (サービスアカウントの管理) を選択します。[Create service account] (サービスアカウントの作成) を選択します。サービスアカウントの詳細を入力し、[Create and continue] (作成して続ける) を選択します。

  5. サービスアカウントにプロジェクトへのアクセス権を付与します。アプリが必要とするサービスアカウントへのアクセス権をユーザーに付与します。

  6. 新しいサービスアカウントを選択し、[Keys] (キー)、および [Add key] (キーを追加する) を選択します。新しい JSON キーを作成してダウンロードします。

Google デベロッパーコンソールの使用方法の詳細については、Google Cloud ドキュメントの「プロジェクトの作成と管理」を参照してください。

iOS アプリへの Google の統合に関する詳細については、Google ID に関するドキュメントの「iOS 用 Google サインイン」を参照してください。

Amazon Cognito コンソールのホームページ[Manage Identity Pools] (ID プールの管理) をクリックします。

Amazon Cognito コンソールで外部プロバイダーを設定する

  1. 外部プロバイダーとして Google を有効にする ID プールの名前を選択します。ID プールの [Dashboard] (ダッシュボード) ページが表示されます。

  2. [ダッシュボード] ページの右上にある、[ID プールの編集] を選択します。[Edit identity pool] (ID プールの編集) ページが表示されます。

  3. 下にスクロールし、[Authentication providers] (認証プロバイダー) を選択してセクションを展開します。

  4. [Google] タブを選択します。

  5. [ロック解除] を選択します。

  6. Google から入手した Google Client ID を入力し、[Save Changes] (変更の保存) を選択します。

Google の使用

アプリケーションで Google を使用したログインを有効にするには、iOS に関する Google のドキュメントに従います。認証に成功すると、OpenID Connect 認証トークンが取得されます。Amazon Cognito はこのトークンを使用してユーザーを認証し、一意の識別子を生成します。

認証が成功すると、id_token を含む GTMOAuth2Authentication オブジェクトが生成されます。Amazon Cognito はこのトークンを使用してユーザーを認証し、一意の ID を生成します。

func finishedWithAuth(auth: GTMOAuth2Authentication!, error: NSError!) { if error != nil { print(error.localizedDescription) } else { let idToken = auth.parameters.objectForKey("id_token") credentialsProvider.logins = [AWSCognitoLoginProviderKey.Google.rawValue: idToken!] } }

JavaScript

注記

アプリが Google を使用していて、複数のモバイルプラットフォームで利用可能になる場合は、Google を OpenID Connect プロバイダーとして設定する必要があります。作成されたすべてのクライアント ID を追加オーディエンス値として追加することで、統合が向上します。Google のクライアント間の ID モデルの詳細については、「クライアント間の ID」を参照してください。

Google のセットアップ

JavaScript ウェブアプリ用 Google サインインを有効にするには、アプリケーション用の Google デベロッパーコンソールプロジェクトを作成します。

  1. Google 開発者コンソールに移動して、新しいプロジェクトを作成します。

  2. [APIs & Services] (API とサービス) を選択し、次に [OAuth consent screen] (OAuth 同意画面) を選択します。Google がプロフィールデータをアプリと共有するための同意を求められたときに、Google がユーザーに表示する情報をカスタマイズします。

  3. [Credentials] (認証情報) を選択し、次に[Create credentials] (認証情報の作成) を選択します。[OAuth client ID] (OAuth クライアント ID) を選択します。アプリケーションタイプとして [Web application] (ウェブアプリケーション) を選択します。アプリを開発するプラットフォームごとに個別のクライアント ID を作成します。

  4. [Credentials] (認証情報) で、[Manage service accounts] (サービスアカウントの管理) を選択します。[Create service account] (サービスアカウントの作成) を選択します。サービスアカウントの詳細を入力し、[Create and continue] (作成して続ける) を選択します。

  5. サービスアカウントにプロジェクトへのアクセス権を付与します。アプリが必要とするサービスアカウントへのアクセス権をユーザーに付与します。

  6. 新しいサービスアカウントを選択し、[Keys] (キー)、および [Add key] (キーを追加する) を選択します。新しい JSON キーを作成してダウンロードします。

Google デベロッパーコンソールの使用方法の詳細については、Google Cloud ドキュメントの「プロジェクトの作成と管理」を参照してください。

Google をウェブアプリに統合する方法の詳細については、Google ID に関するドキュメントの「Google でサインインする」を参照してください。

Amazon Cognito コンソールで外部プロバイダーを設定する

Amazon Cognito コンソールのホームページ[Manage Identity Pools] (ID プールの管理) をクリックします。

  1. 外部プロバイダーとして Google を有効にする ID プールの名前を選択します。ID プールの [Dashboard] (ダッシュボード) ページが表示されます。

  2. [ダッシュボード] ページの右上にある、[ID プールの編集] を選択します。[Edit identity pool] (ID プールの編集) ページが表示されます。

  3. 下にスクロールし、[Authentication providers] (認証プロバイダー) を選択してセクションを展開します。

  4. [Google] タブを選択します。

  5. [ロック解除] を選択します。

  6. Google から入手した Google Client ID を入力し、[Save Changes] を選択します。

Google の使用

アプリケーションで Google を使用したログインを有効にするには、「ウェブに関する Google のドキュメント」に従います。

認証に成功すると、id_token が含まれるレスポンスオブジェクトが取得されます。Amazon Cognito はこのオブジェクトを使用してユーザーを認証し、固有識別子を生成します。

function signinCallback(authResult) { if (authResult['status']['signed_in']) { // Add the Google access token to the Amazon Cognito credentials login map. AWS.config.credentials = new AWS.CognitoIdentityCredentials({ IdentityPoolId: 'IDENTITY_POOL_ID', Logins: { 'accounts.google.com': authResult['id_token'] } }); // Obtain AWS credentials AWS.config.credentials.get(function(){ // Access AWS resources here. }); } }

Unity

Google のセットアップ

Unity アプリ用 Google サインインを有効にするには、アプリケーション用の Google デベロッパーコンソールプロジェクトを作成します。

  1. Google 開発者コンソールに移動して、新しいプロジェクトを作成します。

  2. [APIs & Services] (API とサービス) を選択し、次に [OAuth consent screen] (OAuth 同意画面) を選択します。Google がプロフィールデータをアプリと共有するための同意を求められたときに、Google がユーザーに表示する情報をカスタマイズします。

  3. [Credentials] (認証情報) を選択し、次に[Create credentials] (認証情報の作成) を選択します。[OAuth client ID] (OAuth クライアント ID) を選択します。アプリケーションタイプとして [Web application] (ウェブアプリケーション) を選択します。アプリを開発するプラットフォームごとに個別のクライアント ID を作成します。

  4. Unity の場合は、Android 用に追加の OAuth クライアント ID を作成し、iOS 用には別の OAuth クライアント ID を作成します。

  5. [Credentials] (認証情報) で、[Manage service accounts] (サービスアカウントの管理) を選択します。[Create service account] (サービスアカウントの作成) を選択します。サービスアカウントの詳細を入力し、[Create and continue] (作成して続ける) を選択します。

  6. サービスアカウントにプロジェクトへのアクセス権を付与します。アプリが必要とするサービスアカウントへのアクセス権をユーザーに付与します。

  7. 新しいサービスアカウントを選択し、[Keys] (キー)、および [Add key] (キーを追加する) を選択します。新しい JSON キーを作成してダウンロードします。

Google デベロッパーコンソールの使用方法の詳細については、Google Cloud ドキュメントの「プロジェクトの作成と管理」を参照してください。

IAM コンソールでの OpenID プロバイダーの作成

  1. IAM コンソールでの OpenID プロバイダーの作成 OpenID プロバイダーをセットアップする方法の詳細については、「OpenID Connect ID プロバイダーの使用」を参照してください。

  2. プロバイダー URL の入力を求められたら、「"https://accounts.google.com"」と入力します。

  3. [Audience (対象者)] フィールドに値を入力するよう求められたら、前のステップで作成した 3 つのクライアント ID のいずれかを入力します。

  4. プロバイダー名を選択し、2 名の対象ユーザーを追加して、他の 2 つのクライアント ID を追加します。

Amazon Cognito コンソールで外部プロバイダーを設定する

Amazon Cognito コンソールのホームページ[Manage Identity Pools] (ID プールの管理) をクリックします。

  1. 外部プロバイダーとして Google を有効にする ID プールの名前を選択します。ID プールの [Dashboard] (ダッシュボード) ページが表示されます。

  2. [ダッシュボード] ページの右上にある、[ID プールの編集] を選択します。[Edit identity pool] (ID プールの編集) ページが表示されます。

  3. 下にスクロールし、[Authentication providers] (認証プロバイダー) を選択してセクションを展開します。

  4. [Google] タブを選択します。

  5. [ロック解除] を選択します。

  6. Google から入手した Google Client ID を入力し、[Save Changes] を選択します。

Unity Google プラグインのインストール

  1. Unity プロジェクトに、Google Play Games plugin for Unity を追加します。

  2. Unity で、[Windows] メニューから Android と iOS プラットフォーム用の 3 つの ID を使用してプラグインを設定します。

Google の使用

次のサンプルコードは、Google Play サービスから認証トークンを取得する方法を示しています。

void Start() { PlayGamesClientConfiguration config = new PlayGamesClientConfiguration.Builder().Build(); PlayGamesPlatform.InitializeInstance(config); PlayGamesPlatform.DebugLogEnabled = true; PlayGamesPlatform.Activate(); Social.localUser.Authenticate(GoogleLoginCallback); } void GoogleLoginCallback(bool success) { if (success) { string token = PlayGamesPlatform.Instance.GetIdToken(); credentials.AddLogin("accounts.google.com", token); } else { Debug.LogError("Google login failed. If you are not running in an actual Android/iOS device, this is expected."); } }

Xamarin

注記

Amazon Cognito は、Xamarin プラットフォームで Google をネイティブにサポートしていません。現在、この統合では、ウェブビューを使用してブラウザのサインインの流れに従う必要があります。他の SDK での Google の統合の詳細については、他のプラットフォームを選択してください。

アプリケーションで Google を使用したログインを有効にするには、ユーザーを認証し、ユーザーから OpenID Connect トークンを取得します。Amazon Cognito は、Amazon Cognito アイデンティティに関連付けられた一意のユーザー識別子を生成するためにこのトークンを使用します。残念ながら、Xamarin 用の Google SDK では OpenID Connect トークンを取得することができないため、代替クライアントまたはウェブビューのウェブフローを使用します。

トークンを取得したら、CognitoAWSCredentials で設定できます。

credentials.AddLogin("accounts.google.com", token);
注記

アプリが Google を使用していて、複数のモバイルプラットフォームで利用可能になる場合は、Google を OpenID Connect プロバイダーとして設定する必要があります。作成されたすべてのクライアント ID を追加オーディエンス値として追加することで、統合が向上します。Google のクライアント間の ID モデルの詳細については、「クライアント間の ID」を参照してください。