翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Google を ID プール IdP としてセットアップする
Amazon Cognito は Google と統合して、モバイルアプリケーションユーザーにフェデレーションされた認証を提供します。このセクションでは、ID プロバイダーとして Google に対してアプリケーションを登録し、セットアップする方法について説明します。
Android
注記
アプリが Google を使用していて、複数のモバイルプラットフォームで利用可能になる場合は、OpenID Connect プロバイダーとして設定する必要があります。作成されたすべてのクライアントを追加オーディエンス値IDsとして追加して、統合を改善します。Google のクライアント間の ID モデルの詳細については、「クライアント間の ID
Google のセットアップ
Android 用 Google サインインを有効化するには、アプリケーション用の Google デベロッパーコンソールプロジェクトを作成する必要があります。
-
Google 開発者コンソール
に移動して、新しいプロジェクトを作成します。 -
APIs サービス を選択し、OAuth同意画面 を選択します。Google がプロフィールデータをアプリと共有するための同意を求められたときに、Google がユーザーに表示する情報をカスタマイズします。
-
[Credentials] (認証情報) を選択し、次に[Create credentials] (認証情報の作成) を選択します。OAuth クライアント ID を選択します。アプリケーションタイプとして [Android] を選択します。アプリを開発するプラットフォームごとに個別のクライアント ID を作成します。
-
[Credentials] (認証情報) で、[Manage service accounts] (サービスアカウントの管理) を選択します。[Create service account] (サービスアカウントの作成) を選択します。サービスアカウントの詳細を入力し、[Create and continue] (作成して続ける) を選択します。
-
サービスアカウントにプロジェクトへのアクセス権を付与します。アプリが必要とするサービスアカウントへのアクセス権をユーザーに付与します。
-
新しいサービスアカウントを選択し、[Keys] (キー)、および [Add key] (キーを追加する) を選択します。新しいJSONキーを作成してダウンロードします。
Google デベロッパーコンソールの使用方法の詳細については、Google Cloud ドキュメントの「プロジェクトの作成と管理
Google を Android アプリに統合する方法の詳細については、Google Identity ドキュメントの「Google でサインインしてユーザーを認証する
Google ID プロバイダー (IdP) を追加するには
-
Amazon Cognito コンソール
で [ID プールの管理] をクリックします。アイデンティティプールを選択します。 -
[ユーザーアクセス] タブを選択します。
-
[ID プロバイダーを追加] を選択します。
-
[Google] を選択します。
-
Google クラウドプラットフォーム で作成したOAuthプロジェクトのクライアント ID を入力します。 https://console.cloud.google.com/
詳細については、「Google クラウドプラットフォームコンソールOAuthのヘルプ」の「Setting up 2.0 」を参照してください。 -
Amazon Cognito がこのプロバイダーで認証されたユーザーに認証情報を発行するときにリクエストするロールを設定するには、[ロール設定] を設定します。
-
その IdP のユーザーに、認証済みロールを設定したときに設定したデフォルトロールを割り当てることも、ルール付きのロールを選択することもできます。
-
[ルールを使用してロールを選択する] を選択した場合、ユーザー認証からのソースクレーム、クレームを比較するオペレータ、このロール選択と一致する値、およびロール割り当てが一致したときに割り当てるロールを入力します。別の条件に基づいて追加のルールを作成するには、[別のものを追加] を選択します。
-
[ロールの解決] を選択します。ユーザーのクレームがルールに合わない場合は、認証情報を拒否するか、認証済みロールの認証情報を発行できます。
-
-
-
Amazon Cognito がこのプロバイダーで認証されたユーザーに認証情報を発行するときに割り当てるプリンシパルタグを変更するには、[アクセスコントロールの属性] を設定します。
-
プリンシパルタグを適用しない場合は、[非アクティブ] を選択します。
-
sub
およびaud
クレームに基づいてプリンシパルタグを適用するには、[デフォルトマッピングを使用] を選択します。 -
プリンシパルタグへの属性の独自のカスタムスキーマを作成するには、[カスタムマッピングを使用] を選択します。次に、タグに表示したい各クレームから取得するタグキーを入力します。
-
-
[変更を保存] を選択します。
Google の使用
アプリケーションで Google を使用したログインを有効にするには、Android に関する Google のドキュメント
次のサンプルコードは、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 プロバイダーとします。作成されたすべてのクライアントを追加オーディエンス値IDsとして追加して、統合を改善します。Google のクライアント間の ID モデルの詳細については、「クライアント間の ID
Google のセットアップ
iOS 用 Google サインインを有効にするには、アプリケーション用の Google デベロッパーコンソールプロジェクトを作成します。
-
Google 開発者コンソール
に移動して、新しいプロジェクトを作成します。 -
APIs サービス を選択し、OAuth同意画面 を選択します。Google がプロフィールデータをアプリと共有するための同意を求められたときに、Google がユーザーに表示する情報をカスタマイズします。
-
[Credentials] (認証情報) を選択し、次に[Create credentials] (認証情報の作成) を選択します。OAuth クライアント ID を選択します。アプリケーションタイプとして [iOS] を選択します。アプリを開発するプラットフォームごとに個別のクライアント ID を作成します。
-
[Credentials] (認証情報) で、[Manage service accounts] (サービスアカウントの管理) を選択します。[Create service account] (サービスアカウントの作成) を選択します。サービスアカウントの詳細を入力し、[Create and continue] (作成して続ける) を選択します。
-
サービスアカウントにプロジェクトへのアクセス権を付与します。アプリが必要とするサービスアカウントへのアクセス権をユーザーに付与します。
-
新しいサービスアカウントを選択します。[Keys] (キー) タブを選択し、[Add key] (キーを追加する) を選択します。新しいJSONキーを作成してダウンロードします。
Google デベロッパーコンソールの使用方法の詳細については、Google Cloud ドキュメントの「プロジェクトの作成と管理
iOS アプリへの Google の統合に関する詳細については、Google ID に関するドキュメント
Google ID プロバイダー (IdP) を追加するには
-
Amazon Cognito コンソール
で [ID プールの管理] をクリックします。アイデンティティプールを選択します。 -
[ユーザーアクセス] タブを選択します。
-
[ID プロバイダーを追加] を選択します。
-
[Google] を選択します。
-
Google クラウドプラットフォーム で作成したOAuthプロジェクトのクライアント ID を入力します。 https://console.cloud.google.com/
詳細については、「Google クラウドプラットフォームコンソールOAuthのヘルプ」の「Setting up 2.0 」を参照してください。 -
Amazon Cognito がこのプロバイダーで認証されたユーザーに認証情報を発行するときにリクエストするロールを設定するには、[ロール設定] を設定します。
-
その IdP のユーザーに、認証済みロールを設定したときに設定したデフォルトロールを割り当てることも、ルール付きのロールを選択することもできます。
-
[ルールを使用してロールを選択する] を選択した場合、ユーザー認証からのソースクレーム、クレームを比較するオペレータ、このロール選択と一致する値、およびロール割り当てが一致したときに割り当てるロールを入力します。別の条件に基づいて追加のルールを作成するには、[別のものを追加] を選択します。
-
[ロールの解決] を選択します。ユーザーのクレームがルールに合わない場合は、認証情報を拒否するか、認証済みロールの認証情報を発行できます。
-
-
-
Amazon Cognito がこのプロバイダーで認証されたユーザーに認証情報を発行するときに割り当てるプリンシパルタグを変更するには、[アクセスコントロールの属性] を設定します。
-
プリンシパルタグを適用しない場合は、[非アクティブ] を選択します。
-
sub
およびaud
クレームに基づいてプリンシパルタグを適用するには、[デフォルトマッピングを使用] を選択します。 -
プリンシパルタグへの属性の独自のカスタムスキーマを作成するには、[カスタムマッピングを使用] を選択します。次に、タグに表示したい各クレームから取得するタグキーを入力します。
-
-
[変更を保存] を選択します。
Google の使用
アプリケーションで Google を使用したログインを有効にするには、iOS に関する Google のドキュメント
認証に成功すると、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 プロバイダーとします。作成されたすべてのクライアントを追加オーディエンス値IDsとして追加して、統合を改善します。Google のクライアント間の ID モデルの詳細については、「クライアント間の ID
Google のセットアップ
iOS 用 Google サインインを有効にするには、アプリケーション用の Google デベロッパーコンソールプロジェクトを作成します。
-
Google 開発者コンソール
に移動して、新しいプロジェクトを作成します。 -
APIs サービス を選択し、OAuth同意画面 を選択します。Google がプロフィールデータをアプリと共有するための同意を求められたときに、Google がユーザーに表示する情報をカスタマイズします。
-
[Credentials] (認証情報) を選択し、次に[Create credentials] (認証情報の作成) を選択します。OAuth クライアント ID を選択します。アプリケーションタイプとして [iOS] を選択します。アプリを開発するプラットフォームごとに個別のクライアント ID を作成します。
-
[Credentials] (認証情報) で、[Manage service accounts] (サービスアカウントの管理) を選択します。[Create service account] (サービスアカウントの作成) を選択します。サービスアカウントの詳細を入力し、[Create and continue] (作成して続ける) を選択します。
-
サービスアカウントにプロジェクトへのアクセス権を付与します。アプリが必要とするサービスアカウントへのアクセス権をユーザーに付与します。
-
新しいサービスアカウントを選択し、[Keys] (キー)、および [Add key] (キーを追加する) を選択します。新しいJSONキーを作成してダウンロードします。
Google デベロッパーコンソールの使用方法の詳細については、Google Cloud ドキュメントの「プロジェクトの作成と管理
iOS アプリへの Google の統合に関する詳細については、Google ID に関するドキュメント
Amazon Cognito コンソールのホームページで [Manage Identity Pools]
Amazon Cognito コンソールで外部プロバイダーを設定する
-
外部プロバイダーとして Google を有効にする ID プールの名前を選択します。アイデンティティプールの [Dashboard] (ダッシュボード) ページが表示されます。
-
[ダッシュボード] ページの右上にある、[ID プールの編集] を選択します。[Edit identity pool] (ID プールの編集) ページが表示されます。
-
下にスクロールし、[Authentication providers] (認証プロバイダー) を選択してセクションを展開します。
-
[Google] タブを選択します。
-
[ロック解除] を選択します。
-
Google から入手した Google Client ID を入力し、[Save Changes] (変更の保存) を選択します。
Google の使用
アプリケーションで Google を使用したログインを有効にするには、iOS に関する Google のドキュメント
認証が成功すると、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 プロバイダーとして設定する必要があります。作成されたすべてのクライアントを追加オーディエンス値IDsとして追加して、統合を改善します。Google のクライアント間の ID モデルの詳細については、「クライアント間の ID
Google のセットアップ
JavaScript ウェブアプリケーションの Google サインインを有効にするには、アプリケーション用の Google Developers コンソールプロジェクトを作成します。
-
Google 開発者コンソール
に移動して、新しいプロジェクトを作成します。 -
APIs サービス を選択し、OAuth同意画面 を選択します。Google がプロフィールデータをアプリと共有するための同意を求められたときに、Google がユーザーに表示する情報をカスタマイズします。
-
[Credentials] (認証情報) を選択し、次に[Create credentials] (認証情報の作成) を選択します。OAuth クライアント ID を選択します。アプリケーションタイプとして [Web application] (ウェブアプリケーション) を選択します。アプリを開発するプラットフォームごとに個別のクライアント ID を作成します。
-
[Credentials] (認証情報) で、[Manage service accounts] (サービスアカウントの管理) を選択します。[Create service account] (サービスアカウントの作成) を選択します。サービスアカウントの詳細を入力し、[Create and continue] (作成して続ける) を選択します。
-
サービスアカウントにプロジェクトへのアクセス権を付与します。アプリが必要とするサービスアカウントへのアクセス権をユーザーに付与します。
-
新しいサービスアカウントを選択し、[Keys] (キー)、および [Add key] (キーを追加する) を選択します。新しいJSONキーを作成してダウンロードします。
Google デベロッパーコンソールの使用方法の詳細については、Google Cloud ドキュメントの「プロジェクトの作成と管理
Google をウェブアプリに統合する方法の詳細については、Google ID に関するドキュメントの「Google でサインインする
Amazon Cognito コンソールで外部プロバイダーを設定する
Google ID プロバイダー (IdP) を追加するには
-
Amazon Cognito コンソール
で [ID プールの管理] をクリックします。アイデンティティプールを選択します。 -
[ユーザーアクセス] タブを選択します。
-
[ID プロバイダーを追加] を選択します。
-
[Google] を選択します。
-
Google クラウドプラットフォーム で作成したOAuthプロジェクトのクライアント ID を入力します。 https://console.cloud.google.com/
詳細については、「Google クラウドプラットフォームコンソールOAuthのヘルプ」の「Setting up 2.0 」を参照してください。 -
Amazon Cognito がこのプロバイダーで認証されたユーザーに認証情報を発行するときにリクエストするロールを設定するには、[ロール設定] を設定します。
-
その IdP のユーザーに、認証済みロールを設定したときに設定したデフォルトロールを割り当てることも、ルール付きのロールを選択することもできます。
-
[ルールを使用してロールを選択する] を選択した場合、ユーザー認証からのソースクレーム、クレームを比較するオペレータ、このロール選択と一致する値、およびロール割り当てが一致したときに割り当てるロールを入力します。別の条件に基づいて追加のルールを作成するには、[別のものを追加] を選択します。
-
[ロールの解決] を選択します。ユーザーのクレームがルールに合わない場合は、認証情報を拒否するか、認証済みロールの認証情報を発行できます。
-
-
-
Amazon Cognito がこのプロバイダーで認証されたユーザーに認証情報を発行するときに割り当てるプリンシパルタグを変更するには、[アクセスコントロールの属性] を設定します。
-
プリンシパルタグを適用しない場合は、[非アクティブ] を選択します。
-
sub
およびaud
クレームに基づいてプリンシパルタグを適用するには、[デフォルトマッピングを使用] を選択します。 -
プリンシパルタグへの属性の独自のカスタムスキーマを作成するには、[カスタムマッピングを使用] を選択します。次に、タグに表示したい各クレームから取得するタグキーを入力します。
-
-
[変更を保存] を選択します。
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 デベロッパーコンソールプロジェクトを作成します。
-
Google 開発者コンソール
に移動して、新しいプロジェクトを作成します。 -
APIs サービス を選択し、OAuth同意画面 を選択します。Google がプロフィールデータをアプリと共有するための同意を求められたときに、Google がユーザーに表示する情報をカスタマイズします。
-
[Credentials] (認証情報) を選択し、次に[Create credentials] (認証情報の作成) を選択します。OAuth クライアント ID を選択します。アプリケーションタイプとして [Web application] (ウェブアプリケーション) を選択します。アプリを開発するプラットフォームごとに個別のクライアント ID を作成します。
-
Unity の場合は、Android の場合は追加のOAuthクライアント ID を作成し、iOS の場合は別のクライアント ID を作成します。
-
[Credentials] (認証情報) で、[Manage service accounts] (サービスアカウントの管理) を選択します。[Create service account] (サービスアカウントの作成) を選択します。サービスアカウントの詳細を入力し、[Create and continue] (作成して続ける) を選択します。
-
サービスアカウントにプロジェクトへのアクセス権を付与します。アプリが必要とするサービスアカウントへのアクセス権をユーザーに付与します。
-
新しいサービスアカウントを選択し、[Keys] (キー)、および [Add key] (キーを追加する) を選択します。新しいJSONキーを作成してダウンロードします。
Google デベロッパーコンソールの使用方法の詳細については、Google Cloud ドキュメントの「プロジェクトの作成と管理
IAMコンソールで OpenID プロバイダーを作成する
-
IAM コンソールで OpenID プロバイダーを作成します。OpenID プロバイダーをセットアップする方法の詳細については、「OpenID Connect ID プロバイダーの使用」を参照してください。
-
プロバイダー の入力を求められたらURL、 と入力します
"https://accounts.google.com"
。 -
対象者フィールドに値を入力するように求められたら、前のステップでIDs作成した 3 つのクライアントのいずれかを入力します。
-
プロバイダー名を選択し、他の 2 つのクライアント でさらに 2 人のオーディエンスを追加しますIDs。
Amazon Cognito コンソールで外部プロバイダーを設定する
Amazon Cognito コンソールのホームページで [Manage Identity Pools]
Google ID プロバイダー (IdP) を追加するには
-
Amazon Cognito コンソール
で [ID プールの管理] をクリックします。アイデンティティプールを選択します。 -
[ユーザーアクセス] タブを選択します。
-
[ID プロバイダーを追加] を選択します。
-
[Google] を選択します。
-
Google クラウドプラットフォーム で作成したOAuthプロジェクトのクライアント ID を入力します。 https://console.cloud.google.com/
詳細については、「Google Cloud Platform OAuth コンソールのヘルプ」の「Setting up 2.0 」を参照してください。 -
Amazon Cognito がこのプロバイダーで認証されたユーザーに認証情報を発行するときにリクエストするロールを設定するには、[ロール設定] を設定します。
-
その IdP のユーザーに、認証済みロールを設定したときに設定したデフォルトロールを割り当てることも、ルール付きのロールを選択することもできます。
-
[ルールを使用してロールを選択する] を選択した場合、ユーザー認証からのソースクレーム、クレームを比較するオペレータ、このロール選択と一致する値、およびロール割り当てが一致したときに割り当てるロールを入力します。別の条件に基づいて追加のルールを作成するには、[別のものを追加] を選択します。
-
[ロールの解決] を選択します。ユーザーのクレームがルールに合わない場合は、認証情報を拒否するか、認証済みロールの認証情報を発行できます。
-
-
-
Amazon Cognito がこのプロバイダーで認証されたユーザーに認証情報を発行するときに割り当てるプリンシパルタグを変更するには、[アクセスコントロールの属性] を設定します。
-
プリンシパルタグを適用しない場合は、[非アクティブ] を選択します。
-
sub
およびaud
クレームに基づいてプリンシパルタグを適用するには、[デフォルトマッピングを使用] を選択します。 -
プリンシパルタグへの属性の独自のカスタムスキーマを作成するには、[カスタムマッピングを使用] を選択します。次に、タグに表示したい各クレームから取得するタグキーを入力します。
-
-
[変更を保存] を選択します。
Unity Google プラグインのインストール
-
Unity プロジェクトに、Google Play Games plugin for Unity
を追加します。 -
Unity では、Windows メニューから、Android および iOS プラットフォームIDs用の 3 つの を使用してプラグインを設定します。
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 をネイティブにサポートしていません。現在、この統合では、ウェブビューを使用してブラウザのサインインの流れに従う必要があります。Google 統合が他の とどのように連携するかについてはSDKs、別のプラットフォームを選択してください。
アプリケーションで Google を使用したログインを有効にするには、ユーザーを認証し、ユーザーから OpenID Connect トークンを取得します。Amazon Cognito は、Amazon Cognito アイデンティティに関連付けられた一意のユーザー識別子を生成するためにこのトークンを使用します。残念ながら、Google SDK for Xamarin では OpenID Connect トークンを取得できないため、ウェブビューで代替クライアントまたはウェブフローを使用してください。
トークンを取得したら、CognitoAWSCredentials
で設定できます。
credentials.AddLogin("accounts.google.com", token);
注記
アプリが Google を使用していて、複数のモバイルプラットフォームで利用可能になる場合は、Google を OpenID Connect プロバイダーとして設定する必要があります。作成されたすべてのクライアントを追加オーディエンス値IDsとして追加して、統合を改善します。Google のクライアント間の ID モデルの詳細については、「クライアント間の ID