Amazon Cognito ユーザープールの SAML ID プロバイダーとして Okta をセットアップする方法を教えてください。
Okta をユーザープールの SAML 2.0 ID プロバイダー (IdP) として設定して、アプリユーザーが Amazon Cognito からトークンを取得できるようにしたいと考えています。
簡単な説明
Okta SAML IdP を Amazon Cognito と統合するには、両方のプラットフォームで設定が必要です。まず、Okta で SAML アプリ統合を作成し、設定します。次に、Okta を Amazon Cognito ユーザープールに IdP として追加し、Okta 認証を許可するようにアプリクライアント設定を構成します。セットアップ後、認証フローをテストして、ユーザーが Okta 経由でサインインした後に Amazon Cognito からトークンを受け取ることを確認するのがベストプラクティスです。
解決策
Okta を SAML IdP として設定する前に、次の操作を実行します。
(オプション) Okta デベロッパーアカウントにサインアップする
注: Okta デベロッパーアカウントを既にお持ちの場合は、サインインしてください。
次の手順を実行します。
- Okta Developer のウェブサイトにある Okta デベロッパー登録ページを開きます。
- 必要な情報を入力し、[Sign up] を選択します。指定したメールアドレスに Okta から確認メールが送信されます。
- 確認メールで、アカウントのログイン情報を確認してください。
- [Activate account] を選択し、サインインしてアカウントの作成を完了します。
SAML アプリを作成し、Okta アプリの SAML 統合を設定します
次の手順を実行します。
- Okta Developer コンソールを開きます。
- ナビゲーションペインで、[Applications] を展開し、[Applications] を選択します。
- [Create app integration] を選択します。
- [Create a new app integration] メニューで、[Sign-in method] として [SAML 2.0] を選択します。
- [Next] を選択します。
- Create SAML Integration ページの [General Settings] で、アプリの名前を入力します。
- (オプション) ロゴをアップロードし、アプリの表示設定を選択します。
- [Next] を選択します。
- [SAML Settings] の [Single sign on URL] に https://yourDomainPrefix.auth.region.amazoncognito.com/saml2/idpresponse と入力します。
注: yourDomainPrefix と region を実際のユーザープールの値に置き換えます。これらの値を確認するには、Amazon Cognito コンソールを開き、[ブランディング] セクションから [ドメイン] を選択します。 - オーディエンス URI (SP エンティティ ID) には、urn:amazon:cognito:sp:yourUserPoolId と入力します。
注: yourUserPoolId は、実際の Cognito ユーザープール ID に置き換えます。ユーザープール ID を確認するには、Amazon Cognito コンソールの [概要] セクションを確認してください。 - [属性ステートメント (オプション)] にステートメントを追加し、次の情報を使用します。
[名前] に、SAML 属性名 http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress を入力します。
[値] には、user.email と入力します。
このページのその他の設定については、デフォルト値を使用するか、要件に応じて調整してください。 - [次へ] を選択します。
- フィードバックを求められたら、アプリの設定体験に関する回答を選択します。
注: これは、ユーザー体験のフィードバックを収集するための Okta の標準的なアプリケーション作成プロセスの一部です。 - [完了] を選択します。
Okta アプリケーションにユーザーを割り当てる
次の手順を実行します。
- Okta アプリの [Assignments] タブの [Assign] で、[Assign to People] を選択します。
- 割り当てるユーザーの横にある [Assign] を選択します。
注: 新しいアカウントの場合、ユーザーとして選択できるのは自分自身だけです。 - (オプション) [User Name] に、ユーザー名を入力します。指定しない場合、Okta はユーザーのメールアドレスをユーザー名として使用します。
- [Save and Go Back] を選択して、ユーザー割り当てを完了します。
- [Done] を選択します。
Okta アプリケーションの IdP メタデータを取得
Okta アプリの [Sign On] タブの [Metadata details] で、[Metadata URL] をコピーします。
ユーザープールで Okta を SAML IdP として設定する
次の手順を実行します。
- Amazon Cognito コンソールを開きます。
- 該当するユーザープールを選択します。
- ナビゲーションペインの [認証] で、[ソーシャルプロバイダーと外部プロバイダー] を選択します。
- [ID プロバイダーの追加] を選択し、次に [SAML] を選択します。
- [アプリを SAML プロバイダーに登録する] の [プロバイダー名] に Okta と入力します。
- (オプション) サインインとサインアウトのリクエストを Okta にルーティングするための SAML 識別子を追加します。
- (オプション) シングルログアウトを有効にすると、ユーザーがユーザープールからサインアウトしたときに Okta からもサインアウトされます。
- [メタデータドキュメントソース] で [メタデータドキュメントのエンドポイント URL を入力] を選択し、Okta の [Sign On] タブからコピーした Metadata URL を貼り付けます。
- [SAML プロバイダーとユーザープール間の属性のマッピング] で、[SAML 属性] に email を指定します。
- [ID プロバイダーを追加] を選択します。
詳細については、「Adding and managing SAML identity providers in a user pool」を参照してください。
ユーザープールのアプリクライアント設定を変更する
次の手順を実行します。
- Amazon Cognito コンソールの [アプリクライアント] で、ユーザープールを選択します。
- ナビゲーションペインの [アプリケーション] で [アプリクライアント] を選択します。
- アプリクライアントページで、[ログインページ] セクションに移動します。次に、[マネージドログインページの設定] で [編集] を選択します。
- [ID プロバイダー] ドロップダウンリストから、[Okta] と [Cognito ユーザープール] を選択します。
[コールバック URL] に、ログインに成功した後のユーザーの宛先 URL を指定します。
[サインアウト URL] に、ログアウト後のユーザーの宛先 URL を指定します。
注: 統合をテストする場合は、https://www.example.com/ などのプレースホルダー URL を使用してください。このプレースホルダーは後でアプリケーションの URL で更新できます。
[許可されている OAuth フロー] で [暗黙的な付与] を選択します。
[許可されている OAuth スコープ] には、[email] と [OpenID] を選択します。 - [変更を保存] を選択します。
詳細については、「App client terms」を参照してください。
ログインページにアクセスして SAML 認証フローをテストする
Amazon Cognito コンソールからログインページにアクセスするか、ログインエンドポイント URL を作成できます。
- Amazon Cognito コンソールの [アプリクライアント] で、ユーザープールを選択します。
- [ログインページ] タブを選択し、[ログインページを表示] を選択します。
または、
ログインエンドポイントの URL を作成します。ログインエンドポイントを作成するには、次の命名パターンを使用します。
https://yourDomainPrefix.auth.region.amazoncognito.com/login?response_type=token&client_id=yourClientId&redirect_uri=redirectUrl
注: yourDomainPrefix と region を実際のユーザープールの値に置き換えます。Amazon Cognito コンソールでこれらの値を確認するには、[ドメイン名] ページを選択します。 - ログインエンドポイントのウェブページで、[Okta] を選択します。
注: システムによってアプリクライアントのコールバック URL にリダイレクトされた場合は、すでに Okta アカウントにログインしています。ステップ 5 に進みます。 - Okta の [Sign In] ページで、アプリに割り当てたユーザーのユーザー名とパスワードを入力します。
- [サインイン] を選択します。
- ブラウザのアドレスバーでユーザープールのトークンを探します。
(オプション) Amazon Cognito でホストされている UI をバイパスする
Amazon Cognito がホストしているウェブ UI をバイパスして、ユーザーを直接 Okta に送ってサインインさせるには、次の /oauth2/authorize エンドポイントの URL を使用します。
https://yourDomainPrefix.auth.region.amazoncognito.com/oauth2/authorize?response_type=token&identity_provider=samlProviderName&client_id=yourClientId&redirect_uri=redirectUrl&scope=allowedOauthScopes
**注:**yourDomainPrefix、region、samlProviderName、yourClientId、redirectUrl、allowedOauthScopes をそれぞれ実際の値に置き換えてください。yourDomainPrefix と region を検索するには、Amazon Cognito コンソールの [ブランディング] セクションから [ドメイン] を選択します。yourClientId と redirectUrl を検索するには、Amazon Cognito コンソールで [アプリクライアント] 設定ページを選択します。
(オプション) SAML 識別子を追加した場合は、プレースホルダーの identity_provider=samlProviderName を idp_identifier=idpIdentifier に置き換えてください。idpIdentifier をカスタム識別子の文字列に置き換えます。
関連情報
SAML session initiation in Amazon Cognito user pools
Amazon Cognito ユーザープールを使用してサードパーティの SAML ID プロバイダーをセットアップする方法を教えてください
Amazon Cognito ユーザープールの OpenID Connect ID プロバイダーとして Okta をセットアップする方法を教えてください
- 言語
- 日本語
