翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
アイデンティティプール IdP として Apple でサインインを設定する
Amazon Cognito は「Apple でサインイン」と統合して、モバイルアプリケーションとウェブアプリケーションのユーザーにフェデレートされた認証を提供します。このセクションでは、ID プロバイダー (IdP) として「Apple でサインイン」を使用してアプリケーションを登録し、セットアップする方法について説明します。
認証プロバイダーとして「Apple でサインイン」を ID プールに追加するには、2 つのステップが必要です。まず、アプリケーションで「Apple でサインイン」を統合し、次に ID プールで「Apple でサインイン」を設定します。「Apple でサインイン」の設定 up-to-date の詳細については、Apple デベロッパードキュメントの「Apple でサインインするための環境の設定」を参照してください。 https://developer.apple.com/documentation/sign_in_with_apple/configuring_your_environment_for_sign_in_with_apple
「Apple でサインイン」を設定する
IdP として「Apple でサインイン」を設定するには、クライアント ID を受け取るためにアプリケーションを Apple に登録する必要があります。
-
Apple の開発者アカウント
を作成します。 -
Apple 認証情報を使用してサインイン
します。 -
左側のナビゲーションペインで、証明書、IDsおよびプロファイル を選択します。
-
左のナビゲーションペインで、[Identifiers (識別子)] を選択します。
-
[Identifiers (識別子)] ページで、[+] アイコンを選択します。
-
「新しい識別子の登録」ページで「アプリIDs」を選択し、「続行」を選択します。
-
[Register an App ID] ページで、次の操作を行います。
-
[説明] に、説明を入力します。
-
[Bundle ID (バンドル ID)] に、識別子を入力します。このバンドル ID を書き留めておきます。Apple を ID プールのプロバイダーとして設定するには、この値が必要になります。
-
[Capabilities] (機能) で、[Sign In with Apple] (Apple でサインイン) を選択してから [Edit] (編集) を選択します。
-
[Sign in with Apple: App ID Configuration] (Apple でサインイン: アプリ ID の設定) ページで、アプリの適切な設定を選択します。次に、[Save] (保存) を選択します。
-
[Continue] (続行) をクリックします。
-
-
[Confirm your App ID] ページで、[登録] を選択します。
-
「Apple でサインイン」をネイティブ iOS アプリケーションと統合する場合は、ステップ 10 に進みます。ステップ 11 は、「Apple JS でサインイン」と統合するアプリケーション用です。
-
識別子ページで、アプリIDsメニュー、サービスを選択しますIDs。[+] アイコンを選択します。
-
「新しい識別子の登録」ページで「サービスIDs」を選択し、「続行」を選択します。
-
[Register a Services ID] ページで、次の操作を行います。
-
[説明] に、説明を入力します。
-
[Identifier] に、識別子を入力します。このサービス ID を書き留めておきます。Apple を ID プールのプロバイダーとして設定するには、この値が必要になります。
-
[Apple でサインイン] を選択後、[Configure (設定)] を選択します。
-
[Web Authentication Configuration] ページで、[Primary App ID] を選択します。ウェブサイト URLsで、+ アイコンを選択します。[Domains and Subdomains (ドメインとサブドメイン)] で、アプリのドメイン名を入力します。Return にURLs、Apple でサインインで認証した後に認証URLによってユーザーをリダイレクトするコールバックを入力します。
-
[次へ] をクリックします。
-
[Continue] (続行) を選択し、[Register] (登録) を選択します。
-
-
左のナビゲーションペインで [Keys (キー)] を選択します。
-
[Keys (キー)] ページで、[+] アイコンを選択します。
-
[Register a New Key] ページで、次の操作を行います。
-
[Key Name] に、キー名を入力します。
-
[Sign In with Apple] (Apple でサインイン) を選択後、[Configure] (設定) を選択します。
-
[Configure Key (キーの設定)] ページで、[Primary App ID (プライマリアプリ ID)]、[Save (保存)] の順に選択します。
-
[Continue] (続行) を選択し、[Register] (登録) を選択します。
-
注記
Apple でサインインをネイティブ iOS アプリケーションに統合するには、「Apple でサインインしてユーザー認証を実装する
ネイティブ iOS 以外のプラットフォームで「Apple でサインイン」を統合する方法については、「Apple JS でサインイン
Amazon Cognito フェデレーティッド ID コンソールで外部プロバイダーを設定する
以下の手順を使用して、外部プロバイダーを設定します。
Apple ID プロバイダー (IdP) を使ってサインインを追加するには
-
Amazon Cognito コンソール
で [ID プールの管理] をクリックします。アイデンティティプールを選択します。 -
[ユーザーアクセス] タブを選択します。
-
[ID プロバイダーを追加] を選択します。
-
[Apple でサインイン] を選択します。
-
Apple Developer で作成したOAuthプロジェクトのサービス ID を入力します。 https://developer.apple.com
詳細については、Apple でサインインのドキュメントの「Apple でサインインを使用してユーザーを認証する 」を参照してください。 -
Amazon Cognito がこのプロバイダーで認証されたユーザーに認証情報を発行するときにリクエストするロールを設定するには、[ロール設定] を設定します。
-
その IdP のユーザーに、認証済みロールを設定したときに設定したデフォルトロールを割り当てることも、ルール付きのロールを選択することもできます。
-
[ルールを使用してロールを選択する] を選択した場合、ユーザー認証からのソースクレーム、クレームを比較するオペレータ、このロール選択と一致する値、およびロール割り当てが一致したときに割り当てるロールを入力します。別の条件に基づいて追加のルールを作成するには、[別のものを追加] を選択します。
-
[ロールの解決] を選択します。ユーザーのクレームがルールに合わない場合は、認証情報を拒否するか、認証済みロールの認証情報を発行できます。
-
-
-
Amazon Cognito がこのプロバイダーで認証されたユーザーに認証情報を発行するときに割り当てるプリンシパルタグを変更するには、[アクセスコントロールの属性] を設定します。
-
プリンシパルタグを適用しない場合は、[非アクティブ] を選択します。
-
sub
およびaud
クレームに基づいてプリンシパルタグを適用するには、[デフォルトマッピングを使用] を選択します。 -
プリンシパルタグへの属性の独自のカスタムスキーマを作成するには、[カスタムマッピングを使用] を選択します。次に、タグに表示したい各クレームから取得するタグキーを入力します。
-
-
[変更を保存] を選択します。
Amazon Cognito フェデレーティッド ID CLIの例のプロバイダーとして Apple でサインインする
この例では、IdP として Apple でサインインする MyIdentityPool
という名前の ID プールを作成します。
aws cognito-identity create-identity-pool --identity-pool-name MyIdentityPool
--supported-login-providers appleid.apple.com="sameple.apple.clientid"
詳細については、「ID プールの作成」を参照してください。
Amazon Cognito アイデンティティ ID を生成する
この例では、Amazon Cognito ID を生成 (または取得) します。これはパブリックAPIであるため、この を呼び出すための認証情報は必要ありませんAPI。
aws cognito-identity get-id --identity-pool-id SampleIdentityPoolId --logins
appleid.apple.com="SignInWithAppleIdToken"
詳細については、「get-id」を参照してください。
Amazon Cognito アイデンティティ ID の認証情報を取得する
この例では、指定された ID および 「Apple でサインイン」のログインの認証情報を返します。これはパブリックAPIであるため、この を呼び出すための認証情報は必要ありませんAPI。
aws cognito-identity get-credentials-for-identity --identity-id SampleIdentityId
--logins appleid.apple.com="SignInWithAppleIdToken"
詳細については、「」を参照してください。 get-credentials-for-identity
Apple でサインインを使用する: Android
Apple は、Android 用 Apple でサインインSDKをサポートする を提供していません。代わりにウェブビューでウェブフローを使用できます。
-
アプリケーションで「Apple でサインイン」を設定するには、Apple のドキュメントの「「Apple でサインイン」するためのウェブページの設定
」を参照してください。 -
Android ユーザーインターフェイスに [Apple でサインイン] ボタンを追加するには、Apple のドキュメントの「「Apple でサインイン」ボタンの表示と設定
」に従ってください。 -
「Apple でサインイン」を使用してユーザーを安全に認証するには、Apple のドキュメントの「Apple でサインインするためのウェブページの設定
」を参照してください。
「Apple でサインイン」は、その状態の追跡にセッションオブジェクトを使用します。Amazon Cognito は、このセッションオブジェクトの ID トークンを使用してユーザーを認証し、一意の識別子を生成し、必要に応じてユーザーに他の AWS リソースへのアクセスを許可します。
@Override public void onSuccess(Bundle response) { String token = response.getString("id_token"); Map<String, String> logins = new HashMap<String, String>(); logins.put("appleid.apple.com", token); credentialsProvider.setLogins(logins); }
「Apple でサインインを使用する」: iOS-Objective-C
Apple は、ネイティブ iOS アプリケーションで「Apple でサインインSDK」のサポートを提供しました。ネイティブ iOS デバイスで「Apple でサインイン」を使用してユーザー認証を実装するには、Apple のドキュメントで「「Apple でサインイン」を使用したユーザー認証の実装
Amazon Cognito は、ID トークンを使用してユーザーを認証し、一意の識別子を生成し、必要に応じてユーザーに他の AWS リソースへのアクセスを許可します。
(void)finishedWithAuth: (ASAuthorizationAppleIDCredential *)auth error: (NSError *) error { NSString *idToken = [ASAuthorizationAppleIDCredential objectForKey:@"identityToken"]; credentialsProvider.logins = @{ "appleid.apple.com": idToken }; }
「Apple でサインイン」: iOS - Swift
Apple は、ネイティブ iOS アプリケーションで「Apple でサインインSDK」のサポートを提供しました。ネイティブ iOS デバイスで「Apple でサインイン」を使用してユーザー認証を実装するには、Apple のドキュメントで「「Apple でサインイン」を使用したユーザー認証の実装
Amazon Cognito は、ID トークンを使用してユーザーを認証し、一意の識別子を生成し、必要に応じてユーザーに他の AWS リソースへのアクセスを許可します。
iOS で「Apple でサインイン」を設定する方法についての詳細は、「Apple でサインインを設定する
func finishedWithAuth(auth: ASAuthorizationAppleIDCredential!, error: NSError!) { if error != nil { print(error.localizedDescription) } else { let idToken = auth.identityToken, credentialsProvider.logins = ["appleid.apple.com": idToken!] } }
「Apple でサインイン」を使用します。 JavaScript
Apple は、 の「Apple でサインインSDK」をサポートする を提供していません JavaScript。代わりにウェブビューでウェブフローを使用できます。
-
アプリケーションで「Apple でサインイン」を設定するには、Apple のドキュメントの「「Apple でサインイン」するためのウェブページの設定
」を参照してください。 -
JavaScript ユーザーインターフェイスに「Apple でサインイン」ボタンを追加するには、Apple ドキュメントの「Apple でサインイン」ボタンの表示と設定
を参照してください。 -
「Apple でサインイン」を介してユーザーを安全に認証するには、Apple のドキュメントの「「Apple でサインイン」するためのウェブページの設定
」を参照してください。
「Apple でサインイン」は、その状態の追跡にセッションオブジェクトを使用します。Amazon Cognito は、このセッションオブジェクトの ID トークンを使用してユーザーを認証し、一意の識別子を生成し、必要に応じてユーザーに他の AWS リソースへのアクセスを許可します。
function signinCallback(authResult) { // Add the apple's id token to the Amazon Cognito credentials login map. AWS.config.credentials = new AWS.CognitoIdentityCredentials({ IdentityPoolId: 'IDENTITY_POOL_ID', Logins: { 'appleid.apple.com': authResult['id_token'] } }); // Obtain AWS credentials AWS.config.credentials.get(function(){ // Access AWS resources here. }); }
「Apple でサインイン」を使用する: Xamarin
Apple for Xamarin でサインインSDKをサポートする はありません。代わりにウェブビューでウェブフローを使用できます。
-
アプリケーションで「Apple でサインイン」を設定するには、Apple のドキュメントの「「Apple でサインイン」するためのウェブページの設定
」を参照してください。 -
Xamarin ユーザーインターフェイスに [Apple でサインイン] ボタンを追加するには、Apple のドキュメントの「「Apple でサインイン」ボタンの表示と設定
」に従ってください。 -
「Apple でサインイン」を介してユーザーを安全に認証するには、Apple のドキュメントの「「Apple でサインイン」するためのウェブページの設定
」を参照してください。
「Apple でサインイン」は、その状態の追跡にセッションオブジェクトを使用します。Amazon Cognito は、このセッションオブジェクトの ID トークンを使用してユーザーを認証し、一意の識別子を生成し、必要に応じてユーザーに他の AWS リソースへのアクセスを許可します。
トークンを取得したら、CognitoAWSCredentials
で設定できます。
credentials.AddLogin("appleid.apple.com", token);