サードパーティ ID プロバイダー (IdP) を使用して Amazon Cognito ユーザープールの AWS IAM アイデンティティセンターを設定したいです。
解決策
アプリクライアントとドメイン名を使用して Amazon Cognito ユーザープールを作成する
注: アプリクライアントを含むユーザープールが存在する場合は、「IAM Identity Center を有効化してユーザーを追加する」セクションに進んでください。
次の手順を実行します。
- 新しいアプリケーションを作成します。
- Amazon Cognito のプレフィックスドメインを https://cognitoexample.auth.region.amazoncognito.com という形式で作成するか、カスタムドメインを作成します。詳細については、「ユーザープールドメインを構成する」を参照してください。
- (オプション) マネージドログインページにブランディングを適用します。
IAM Identity Center を有効化してユーザーを追加する
注: 稼働中の IAM Identity Center 環境が存在する場合は、「SAML アプリケーションを構成する」セクションに進んでください。
次の手順を実行します。
- IAM Identity Center の前提条件と考慮事項を確認してください。
- IAM Identity Center を有効にします。
注: インスタンスタイプには、AWS Organizations 管理アカウントで作成した IAM Identity Center の組織インスタンスを選択する必要があります。
- ID のソースを確認し、ユーザーを作成します。
SAML アプリケーションを構成する
次の手順を実行します。
- IAM Identity Center コンソールを開きます。
- ナビゲーションペインで [アプリケーション] を選択します。
- [アプリケーションの追加] を選択し、[セットアッププリファレンス] で [設定するアプリケーションがある] を選択します。
- [アプリケーションタイプ] で [SAML 2.0] を選択し、[次へ] を選択します。
- [アプリケーションの設定] ページで表示名と説明を入力します。
- IAM Identity Center の SAML メタデータファイルの URL を書き留めるか、[ダウンロード] ハイパーリンクを選択してファイルをダウンロードしてください。
- [アプリケーションメタデータ] で [メタデータ値を手動で入力] を選択します。次に、以下の値を入力します。
[Application Assertion Consumer Service (ACS) URL] に https://domain-prefix.auth.region.amazoncognito.com/saml2/idpresponse を入力します。
[Application SAML のオーディエンス] に urn:amazon:cognito:sp:userpool-id を入力します。
注: 実際のものでそれぞれ、domain-prefix をドメインのプレフィックスに、region を AWS リージョンに、userpool-id をユーザープール ID に置き換えてください。
- [送信] を選択します。
- アプリケーションの [詳細] ページで [アクション] ドロップダウンリストを選択します。
- [属性マッピングの編集] を選択し、次の属性を入力します。
[アプリケーションのユーザー属性] では、デフォルトのサブジェクトから変更しないでください。
[IAM Identity Center のこの文字列またはユーザー属性にマッピング] に ${user:subject} を入力します。
[形式] に Persistent を入力します。
[アプリケーションのユーザー属性] に email と入力します。
[IAM Identity Center のこの文字列またはユーザー属性にマッピング] に ${user:email} を入力します。
[形式] に Basic を入力します。
注: IAM Identity Center は、サインイン時に属性マッピングを Amazon Cognito に送信します。ユーザープールの必須属性をすべてマッピングしたことを確認してください。使用可能なマッピング属性の詳細については、「サポートされている外部 ID プロバイダー属性」を参照してください。
- [送信] を選択します。
- [割り当てられたユーザーとグループ] セクションで [ユーザーとグループの割り当て] を選択します。
- 該当するユーザーを見つけ、[割り当て] を選択します。
IAM Identity Center をユーザープールの SAML IdP として設定する
ユーザープールで SAML IdP を設定する方法については、「ユーザープールで SAML ID プロバイダーを追加、管理する」を参照してください。SAML プロバイダーの属性マッピングを指定する際は、[SAML 属性] フィールドに有効な電子メールを入力してください。[ユーザープール属性] で email を選択します。
プロバイダー名と識別子の詳細については、「SAML IDプロバイダー名と識別子」を参照してください。
ユーザープールのアプリクライアントを使用して ID プロバイダーを統合する
次の手順を実行します。
- Amazon Cognito コンソールを開きます。
- ナビゲーションペインで [ユーザープール] を選択します。
- [アプリケーション] で [アプリクライアント] を選択します。
- アプリクライアントを選択します。
- [ログインページ] セクションで [編集] を選択します。
- [ID プロバイダー] セクションで該当する IdP を選択します。
- [変更を保存] を選択します。
設定をテストする
サービスプロバイダー (SP) が開始したサインインをテストするには、次の手順を実行します。
- Amazon Cognito コンソールを開き、アプリクライアントの [ログインページ] タブで [ログインページを表示] を選択します。または、ログインエンドポイントの URL を作成します。次の命名パターン例を参考に、例示した値を実際の値に置き換えてください。
https://my-user-pool.auth.us-east-1.amazoncognito.com/login?response_type=code&client_id=a1b2c3d4e5f6g7h8i9j0k1l2m3&redirect_uri=https://example.com
[OAuth 2.0 付与タイプ] で [暗黙的付与] を選択します。次に、response_type をリクエスト URL のtoken に設定します。
- [ログインページ] タブで IAM Identity Center の IdP を選択します。
ブラウザにより、アプリクライアントのコールバック URL にリダイレクトされる場合は、ユーザーとして正常にログインできています。ユーザープールトークンは、ウェブブラウザのアドレスバー内の URL に表示されます。
注: このステップをスキップするには、次の命名パターンで Authorize エンドポイントの URL を作成してください。
https://yourDomainPrefix.auth.region.amazoncognito.com/oauth2/authorize?response_type=token&identity_provider=samlProviderName&client_id=yourClientId&redirect_uri=redirectUrl&scope=allowedOauthScopes
- ユーザー認証情報を入力し、[ログイン] を選択します。
Amazon Cognito により、コードまたはトークンを含むコールバック URL にリダイレクトされると、セットアップは完了します。
ID プロバイダー (IdP) が開始したサインインをテストするには、次の手順を実行します。
- Amazon Cognito コンソールを開きます。
- ナビゲーションペインで [ユーザープール] を選択し、該当するユーザープールを選択します。
- ナビゲーションペインで [ソーシャルプロバイダーと外部プロバイダー] を選択します。
- IdP を選択し、[ID プロバイダーの情報] セクションで [編集] を選択します。
- [IdP が開始した SAML サインイン] セクションで [SP および IdP が開始した SAML アサーションを受け入れる] を選択します。
注: IdP が開始したサインインで SAML プロバイダーを受け入れるアプリクライアントには、他の SAML プロバイダーを追加できます。他のソーシャルプロバイダーや OpenID Connect (OIDC) プロバイダー、あるいは Cognito ユーザープールディレクトリをアプリクライアントから削除します。
- [変更を保存] を選択します。
- IAM Identity Center コンソールを開き、SAML 2.0 アプリケーションを選択します。
- [アクション] ドロップダウンを選択し、[設定の編集] を選択します。
- [アプリケーションのプロパティ] に次のリレー状態値を追加します。
identity_provider=identity-provider-name&client_id=app-client-id&redirect_uri=callback-url&response_type=token&scope=openid+email
注: 例内の値を実際の値に置き換えてください。
- [送信] を選択します。
- ナビゲーションペインで [設定] を選択します。
- [ID のソース] セクションから AWS アクセスポータルの URL をコピーし、ブラウザで開きます。
- ユーザー認証情報を入力し、[ログイン] を選択します。
- Cognito アプリケーションを選択します。
Amazon Cognito により、コードまたはトークンを含むコールバック URL にリダイレクトされた場合は、セットアップは完了しています。
関連情報
Amazon Cognito ユーザープールにおけるフェデレーションサインインの動作
ユーザープールの JSON ウェブトークン (JWT) について