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 and auth] > [APIs] > [Social APIs] で、Google API を有効にします。

  3. [APIs and auth (API および auth)] > [Credentials (認証情報)] > [OAuth consent screen (OAuth 同意画面)] で、アプリがプライベートデータへのアクセスをリクエストしたときにユーザーに表示するダイアログを作成します。

  4. [Credentials (認証情報)] > [Add Credentials (認証情報の追加)] で、Android 向け OAuth 2.0 クライアント ID を作成します。開発対象のプラットフォーム (ウェブ、iOS、Android など) ごとに、クライアント ID が必要です。

  5. [Credentials] > [Add Credentials] で、サービスアカウントを作成します。コンソールで、新しいパブリック/プライベートキーが作成されたことが警告されます。

Google デベロッパーコンソールの使用に関するその他の手順については、「デベロッパーコンソールでのプロジェクトの管理」を参照してください。

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

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

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

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

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

  3. 下にスクロールし、[認証プロバイダー] を選択して展開します。

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

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

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

Google の使用

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

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

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

Google をセットアップする

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

  2. [APIs and auth] > [APIs] > [Social APIs] で、Google API を有効にします。

  3. [APIs and auth (API および auth)] > [Credentials (認証情報)] > [OAuth consent screen (OAuth 同意画面)] で、アプリがプライベートデータへのアクセスをリクエストしたときにユーザーに表示するダイアログを作成します。

  4. [Credentials (認証情報)] > [Add Credentials (認証情報の追加)] で、iOS 向け OAuth 2.0 クライアント ID を作成します。開発対象のプラットフォーム (ウェブ、iOS、Android など) ごとに、クライアント ID が必要です。

  5. [Credentials] > [Add Credentials] で、サービスアカウントを作成します。コンソールで、新しいパブリック/プライベートキーが作成されたことが警告されます。

Google デベロッパーコンソールの使用に関するその他の手順については、「デベロッパーコンソールでのプロジェクトの管理」を参照してください。

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

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

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

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

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

  3. 下にスクロールし、[認証プロバイダー] を選択して展開します。

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

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

Google をセットアップする

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

  2. [APIs and auth] > [APIs] > [Social APIs] で、Google API を有効にします。

  3. [APIs and auth (API および auth)] > [Credentials (認証情報)] > [OAuth consent screen (OAuth 同意画面)] で、アプリがプライベートデータへのアクセスをリクエストしたときにユーザーに表示するダイアログを作成します。

  4. [Credentials (認証情報)] > [Add Credentials (認証情報の追加)] で、iOS 向け OAuth 2.0 クライアント ID を作成します。開発対象のプラットフォーム (ウェブ、iOS、Android など) ごとに、クライアント ID が必要です。

  5. [Credentials] > [Add Credentials] で、サービスアカウントを作成します。コンソールで、新しいパブリック/プライベートキーが作成されたことが警告されます。

Google デベロッパーコンソールの使用に関するその他の手順については、「デベロッパーコンソールでのプロジェクトの管理」を参照してください。

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

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

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

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

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

  3. 下にスクロールし、[認証プロバイダー] を選択して展開します。

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

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

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

Google の使用

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

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

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

Google をセットアップする

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

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

  2. [APIs and auth] > [APIs] > [Social APIs] で、Google API を有効にします。

  3. [APIs and auth (API および auth)] > [Credentials (認証情報)] > [OAuth consent screen (OAuth 同意画面)] で、アプリがプライベートデータへのアクセスをリクエストしたときにユーザーに表示するダイアログを作成します。

  4. [Credentials (認証情報)] > [Add Credentials (認証情報の追加)] で、ウェブアプリケーション用の OAuth 2.0 クライアント ID を作成します。開発対象のプラットフォーム (ウェブ、iOS、Android など) ごとに、クライアント ID が必要です。

  5. [Credentials] > [Add Credentials] で、サービスアカウントを作成します。コンソールで、新しいパブリック/プライベートキーが作成されたことが警告されます。

Google デベロッパーコンソールの使用に関するその他の手順については、「デベロッパーコンソールでのプロジェクトの管理」を参照してください。

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

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

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

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

  3. 下にスクロールし、[認証プロバイダー] を選択して展開します。

  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 をセットアップする

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

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

  2. [APIs and auth] > [APIs] > [Social APIs] で、Google API を有効にします。

  3. [APIs and auth (API および auth)] > [Credentials (認証情報)] > [OAuth consent screen (OAuth 同意画面)] で、アプリがプライベートデータへのアクセスをリクエストしたときにユーザーに表示するダイアログを作成します。

  4. [Unity] については、合計 3 つの ID を作成する必要があります。2 つは Android 用で、1 つは iOS 用です。[Credentials (認証情報)] > [Add Credentials (認証情報の追加)] で、次の操作を行います。

    • Android: Android 用の OAuth 2.0 クライアント ID と、ウェブアプリケーション用の OAuth 2.0 クライアント ID を作成します。

    • iOS: iOS 用の OAuth 2.0 クライアント ID を作成します。

  5. [Credentials] > [Add Credentials] で、サービスアカウントを作成します。コンソールで、新しいパブリック/プライベートキーが作成されたことが警告されます。

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. 下にスクロールし、[認証プロバイダー] を選択して展開します。

  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

注記

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

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

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

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

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