Amazon Cognito ユーザープールの SAML ID プロバイダーとして Okta をセットアップする方法を教えてください。
Okta を Amazon Cognito ユーザープールのセキュリティアサーションマークアップ言語 2.0 (SAML 2.0) ID プロバイダー (IdP) として使用したいと考えています。
簡単な説明
Amazon Cognito ユーザープールでは、Okta などの IdP を含むサードパーティ (フェデレーション) 経由でのサインインが可能です。詳細については、「サードパーティ経由のユーザープールサインインの追加」 および「ユーザープールへの SAML ID プロバイダーの追加」をご参照ください。
Okta と統合されたユーザープールにより、Okta アプリのユーザーは Amazon Cognito からユーザープールトークンを取得できます。詳細については、「ユーザープールでのトークンの使用」をご参照ください。
解決策
アプリクライアントとドメイン名を使用して Amazon Cognito ユーザープールを作成する
- ユーザープールを作成します。
**注:**作成時には、標準属性の Eメール がデフォルトで選択されます。詳細については、「ユーザープール属性」をご参照ください。 - ユーザープールにアプリクライアントを作成します。詳細については、「Add an app client and set up the hosted UI」をご参照ください。
注:アプリクライアントを追加するときは、[クライアントシークレットの生成] チェックボックスをオフにします。承認コード付与フローやトークン更新フローなどの特定の承認フローでは、承認サーバーはアプリクライアントシークレットを使用して、クライアントにユーザーに代わってリクエストを行うことを許可します。この設定で使用される暗黙のグラントフローでは、アプリクライアントシークレットは必要ありません。 - ユーザープールのドメイン名を追加します。
Okta 開発者アカウントにサインアップ
**注:**Okta 開発者アカウントを既にお持ちの場合は、サインインしてください。
- Okta Developer のサインアップ Web ページで必要な情報を入力し、[サインアップ] を選択します。Okta 開発者チームは、指定したメールアドレスに確認メールを送信します。
- 確認メールで、アカウントのログイン情報を確認してください。[マイアカウントを有効にする] を選択してサインインし、アカウントの作成を完了します。
Okta で SAML アプリを作成する
- Okta 開発者コンソールを開きます。詳細については、Okta ウェブサイトの「Okta's Redesigned Admin Console and Dashboard」をご参照ください。
- ナビゲーションメニューで [アプリケーション] を展開し、[アプリケーション] を選択します。
- [アプリ統合の作成] を選択します。
- [新しいアプリ統合の作成] メニューで、ログイン方法として [SAML 2.0] を選択します。
- [次へ] を選択します。
詳細については、Okta Developer Webサイトのシングルサインオン (SSO) 統合構築ガイドの「SAML統合の準備」をご参照ください。
Okta アプリの SAML 統合の設定
- SAML 統合の作成ページの [一般設定] で、アプリの名前を入力します。
- (オプション) ロゴをアップロードし、アプリの表示設定を選択します。
- [次へ] を選択します。
- [一般] の [シングルサインオン URL] に https://yourDomainPrefix.auth.region.amazoncognito.com/saml2/idpresponse と入力します。
注:yourDomainPrefixregion と region をユーザープールの値に置き換えてください。これらの値は、Amazon Cognito コンソールの [ユーザープール] の[ドメイン名] ページで確認することができます。 - オーディエンス URI (SP エンティティ ID) には、urn:amazon:cognito:sp:yourUserPoolId と入力します。
**注:**yourUserPoolId を Amazon Cognito ユーザープール ID に置き換えてください。この値は、ユーザープールの Amazon Cognito コンソールの [一般設定] ページにあります。 - [属性ステートメント (オプション)] で、次の情報を含むステートメントを追加します。
[名前] に SAML 属性名 http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress を入力します。
値には、user.email と入力します。 - ページの他のすべての設定については、デフォルト値のままにするか、好みに応じて設定してください。
- [次へ] を選択します。
- Okta サポートへのフィードバック回答を選択してください。
- [完了] を選択します。
詳細については、Okta Developer Webサイトの「シングルサインオン (SSO) 統合構築」ガイドにある「インテグレーションの作成」をご参照ください。
Okta アプリケーションにユーザーを割り当てる
- Okta アプリの [割り当て] タブの [割り当てる] で、[ユーザーに割り当て] を選択します。
- 割り当てるユーザーの横にある [割り当てる] を選択します。
**注:**新しいアカウントの場合、利用できる唯一のオプションは自分自身 (管理者) をユーザーとして選択することです。 - (オプション) [ユーザー名] にユーザー名を入力するか、必要に応じてユーザーのメールアドレスのままにします。
- [保存して戻る] を選択します。ユーザーが割り当てられます。
- [完了] を選択します。
詳細については、Okta Developer Webサイトの「シングルサインオン (SSO) 統合構築」ガイドの「ユーザーの割り当て」をご参照ください。
Okta アプリケーションの IdP メタデータを取得
Okta アプリケーションの [サインオン] タブで、[ID プロバイダーのメタデータ] のハイパーリンクを見つけます。ハイパーリンクを右クリックし、URL をコピーします。
詳細については、Okta Developer Webサイトの「シングルサインオン (SSO) 統合構築」ガイドの「統合設定の指定」をご参照ください。
ユーザープールで Okta を SAML IdP として設定する
- Amazon Cognito コンソールで、[ユーザープールの管理] を選択し、次にユーザープールを選択します。
- 左側のナビゲーションペインの [フェデレーション]で、[ID プロバイダー] を選択します。
- SAML を選択します。
- [メタデータドキュメント] に、コピーした ID プロバイダのメタデータ URL を貼り付けます。
- [プロバイダー名] に [Okta] と入力します。詳細については、「SAML IDプロバイダー名の選択」をご参照ください。
- (オプション) 任意の SAML 識別子 (識別子 (オプション)) を入力し、ユーザーがユーザープールからサインアウトしたときに IdP (Okta) からのサインアウトを有効にします。
- [プロバイダーの作成] を選択します。
詳細については、「ユーザープールの SAML IDプロバイダーの作成と管理 (AWS マネジメントコンソール)」をご参照ください。
IdP 属性からユーザープール属性へのメールアドレスをマッピング
- Amazon Cognito コンソールで、[ユーザープールの管理] を選択し、次にユーザープールを選択します。
- 左側のナビゲーションペインの [フェデレーション]で、[属性マッピング] を選択します。
- 属性マッピングページで、[SAML] タブを選択します。
- [SAML属性を追加] を選択します。
- SAML 属性には、SAML 属性名 http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress を入力します。
- [ユーザープール属性] には、一覧から [メール] を選択します。
詳細については、「ユーザープールの IDプロバイダー属性マッピングの指定」をご参照ください。
ユーザープールのアプリクライアント設定の変更
- Amazon Cognito コンソールで、[ユーザープールの管理] を選択し、次にユーザープールを選択します。
- 左側のナビゲーションペインで、[アプリ統合] の下にある [アプリクライアントの設定] を選択します。
- アプリクライアントページで、次の操作を行います。
[有効な ID プロバイダー] で、[Okta] と**[Cognito のユーザープール]** チェックボックスを選択します。
[コールバック URL] に、ログイン後にユーザーをリダイレクトする URL を入力します。テストするには、https://www.example.com/ などの有効な URL を入力します。
[サインアウト URL] に、ログアウト後にユーザーをリダイレクトする URL を入力します。テストするには、https://www.example.com/ などの有効な URL を入力します。
[許可された OAuth フロー] で、少なくとも [暗黙の許可] チェックボックスをオンにしてください。
[許可されている OAuth スコープ] で、少なくとも [メールアドレス] と [openid] のチェックボックスをオンにしてください。 - [変更の保存] を選択します。
詳しくは、「アプリクライアント設定の用語」をご参照ください。
エンドポイント URL の作成
ユーザープールの値を使用して、次のログインエンドポイント URL を作成します。https://yourDomainPrefix.auth.region.amazoncognito.com/login?response_type=token&client_id=yourClientId&redirect_uri=redirectUrl
必ず次のことを行ってください。
- yourDomainPrefixregion と region をユーザープールの値に置き換えてください。これらの値は、Amazon Cognito コンソールの [ユーザープール] の**[ドメイン名]** ページで確認することができます。
- ClientId をアプリクライアントの ID に置き換え、redirectUrl をアプリクライアントのコールバック URLに置き換えます。これらの値は、ユーザープールのアプリクライアントの設定ページの Amazon Cognito コンソールで確認できます。
詳細については、「How do I configure the hosted web UI for Amazon Cognito?」と「ログインエンドポイント」をご参照ください。
エンドポイント URL のテスト
- 作成したログインエンドポイント URL を ウェブブラウザに入力します。
- ログインエンドポイントのウェブページで、Okta を選択します。
**注:**アプリクライアントのコールバックURLにリダイレクトされる場合は、ブラウザですでに Okta アカウントにログインしています。ユーザープールトークンは、Web ブラウザのアドレスバーの URL に表示されます。 - Okta [サインイン] ページで、アプリに割り当てたユーザーのユーザー名とパスワードを入力します。
- [サインイン] を選択します。
ログインすると、アプリクライアントのコールバック URL にリダイレクトされます。ユーザープールトークンは、Web ブラウザのアドレスバーの URL に表示されます。
(オプション) Amazon Cognito でホストされている UI をスキップする
ユーザーにアプリへのサインイン時に Amazon Cognito がホストするウェブ UI をスキップさせたい場合は、代わりに次のエンドポイント URL を使用してください:
https://yourDomainPrefix.auth.region.amazoncognito.com/oauth2/authorize?response_type=token&identity_provider=samlProviderName&client_id=yourClientId&redirect_uri=redirectUrl&scope=allowedOauthScopes
必ず次のことを行ってください。
- yourDomainPrefixregion と region をユーザープールの値に置き換えてください。これらの値は、Amazon Cognito コンソールの [ユーザープール] の**[ドメイン名]** ページで確認することができます。
- samlProviderName をユーザープール (Okta) 内の SAML プロバイダーの名前に置き換えてください。
- (オプション) 以前に識別子 (オプション) フィールドに SAML IdP の識別子を追加した場合は、identity_provider=samlProviderName ** を idp_identifier=idpIdentifier** に置き換え、idpIdentifier をカスタム識別子文字列に置き換えてください。
- ClientId をアプリクライアントの ID に置き換え、redirectUrl をアプリクライアントのコールバック URLに置き換えます。これらの値は、ユーザープールのアプリクライアントの設定ページの Amazon Cognito コンソールで確認できます。
- allowedOauthScopes を Amazon Cognito アプリケーションクライアントにリクエストさせたい特定のスコープに置き換えてください。たとえば、scope=email+openid です。
詳細については、「How do I configure the hosted web UI for Amazon Cognito?」と「エンドポイントの認証」をご参照ください。
関連情報
Amazon Cognito ユーザープールを使用してサードパーティの SAML ID プロバイダーをセットアップする方法を教えてください。
Amazon Cognito ユーザープールの OpenID Connect ID プロバイダーとして Okta をセットアップする方法を教えてください。
関連するコンテンツ
- 質問済み 2年前lg...
- 質問済み 9ヶ月前lg...