メニュー
Amazon Cognito
開発者ガイド (Version 最終更新日: 2016 年 7 月 28 日)

Google

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] > [Credentials] > [OAuth consent screen] で、アプリがプライベートデータへのアクセスをリクエストしたときにユーザーに表示するダイアログを作成します。

  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 コンソールのホームページから、次の操作を行います。

  1. 外部プロバイダーとして Amazon を有効にする ID プールの名前をクリックします。ID プールの [Dashboard] ページが表示されます。

  2. [Dashboard] ページの右上にある、[Edit identity pool] をクリックします。[Edit identity pool] ページが表示されます。

  3. 下にスクロールし、[Authentication providers] をクリックして展開します。

  4. [Google] タブをクリックします。

  5. [Unlock] をクリックします。

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

Google の使用

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

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

Copy
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] > [Credentials] > [OAuth consent screen] で、アプリがプライベートデータへのアクセスをリクエストしたときにユーザーに表示するダイアログを作成します。

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

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

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

iOS アプリへの Google+ の統合に関するその他の手順については、iOS に関する Google のドキュメントを参照してください。

Amazon Cognito コンソールのホームページから、次の操作を行います。

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

  1. 外部プロバイダーとして Amazon を有効にする ID プールの名前をクリックします。ID プールの [Dashboard] ページが表示されます。

  2. [Dashboard] ページの右上にある、[Edit identity pool] をクリックします。[Edit identity pool] ページが表示されます。

  3. 下にスクロールし、[Authentication providers] をクリックして展開します。

  4. [Google] タブをクリックします。

  5. [Unlock] をクリックします。

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

Google の使用

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

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

Copy
- (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] > [Credentials] > [OAuth consent screen] で、アプリがプライベートデータへのアクセスをリクエストしたときにユーザーに表示するダイアログを作成します。

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

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

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

iOS アプリへの Google+ の統合に関するその他の手順については、iOS に関する Google のドキュメントを参照してください。

Amazon Cognito コンソールのホームページから、次の操作を行います。

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

  1. 外部プロバイダーとして Amazon を有効にする ID プールの名前をクリックします。ID プールの [Dashboard] ページが表示されます。

  2. [Dashboard] ページの右上にある、[Edit identity pool] をクリックします。[Edit identity pool] ページが表示されます。

  3. 下にスクロールし、[Authentication providers] をクリックして展開します。

  4. [Google] タブをクリックします。

  5. [Unlock] をクリックします。

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

Google の使用

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

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

Copy
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+ サインインを有効にするには、アプリケーション用の Google 開発者コンソールプロジェクトを作成する必要があります。

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

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

  3. [APIs and auth] > [Credentials] > [OAuth consent screen] で、アプリがプライベートデータへのアクセスをリクエストしたときにユーザーに表示するダイアログを作成します。

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

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

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

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

Amazon Cognito コンソールのホームページから、次の操作を行います。

  1. 外部プロバイダーとして Amazon を有効にする ID プールの名前をクリックします。ID プールの [Dashboard] ページが表示されます。

  2. [Dashboard] ページの右上にある、[Edit identity pool] をクリックします。[Edit identity pool] ページが表示されます。

  3. 下にスクロールし、[Authentication providers] をクリックして展開します。

  4. [Google] タブをクリックします。

  5. [Unlock] をクリックします。

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

Google の使用

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

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

Copy
function signinCallback(authResult) { if (authResult['status']['signed_in']) { // Add the Google access token to the 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] > [Credentials] > [OAuth consent screen] で、アプリがプライベートデータへのアクセスをリクエストしたときにユーザーに表示するダイアログを作成します。

  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 コンソールのホームページから、次の操作を行います。

  1. 外部プロバイダーとして Amazon を有効にする ID プールの名前をクリックします。ID プールの [Dashboard] ページが表示されます。

  2. [Dashboard] ページの右上にある、[Edit identity pool] をクリックします。[Edit identity pool] ページが表示されます。

  3. 下にスクロールし、[Authentication providers] をクリックして展開します。

  4. [Google] タブをクリックします。

  5. [Unlock] をクリックします。

  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 Service から認証トークンを取得する方法を示しています。

Copy
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 へのログインを有効にするには、ユーザーを認証し、ユーザーから OpenID Connect トークンを取得する必要があります。Amazon Cognito はこのトークンを使用して、Cognito ID に関連付けられている一意のユーザー ID を生成します。残念ながら、Xamarin 用の Google SDK では OpenID Connect トークンを取得することができないため、代替クライアントまたはウェブビューのウェブフローを使用する必要があります。

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

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