Ongoing service disruptions
For the most recent update on ongoing service disruptions affecting the AWS Middle East (UAE) Region (ME-CENTRAL-1), refer to the AWS Health Dashboard. For information on AWS Service migration, see How do I migrate my services to another region?
Amazon Cognito ユーザープールの OpenID Connect ID プロバイダーとして Okta をセットアップする方法を教えてください。
Amazon Cognito ユーザープールの SAML 2.0 アイデンティティプロバイダー (IdP) として Okta を使用したいと考えています。
簡単な説明
Amazon Cognito ユーザープールでは、Okta などの IdP を含むサードパーティ (フェデレーション) 経由でのサインインが可能です。詳細については、「サードパーティ経由のユーザープールへのサインインの追加」および「ユーザープールへの OIDC ID プロバイダーの追加」をご参照ください。
Okta と統合されたユーザープールにより、Okta アプリのユーザーは Amazon Cognito からユーザープールトークンを取得することができます。詳細については、「ユーザープールでのトークンの使用」をご参照ください。
解決策
アプリクライアントとドメイン名を使用して Amazon Cognito ユーザープールを作成する
- ユーザープールを作成します。
**注:**作成時には、標準属性の Eメール がデフォルトで選択されます。詳しくは、「ユーザープール属性の設定」をご参照ください。 - ユーザープールにアプリクライアントを作成します。詳細については、「Add an app to enable the hosted web UI」をご参照ください。
- ユーザープールのドメイン名を追加します。
Okta 開発者アカウントにサインアップ
**注:**Okta 開発者アカウントを既にお持ちの場合は、サインインしてください。
- Okta Developer のサインアップ Web ページで、必要な情報を入力し、[サインアップ] を選択します。Okta 開発者チームは、指定したメールアドレスに確認メールを送信します。
- 確認メールで、アカウントのログイン情報を確認してください。[有効にする] を選択してサインインし、アカウントの作成を完了します。
Okta アプリを作成する
- Okta 開発者コンソールを開きます。コンソールの詳細については、Okta 開発者ブログにある「Oktaの管理コンソールとダッシュボードが GA でも利用可能に!」をご参照ください。
- ナビゲーションメニューで [アプリケーション] ** を展開し、[アプリケーション] ** を選択します。これにより、アプリケーションコンソールが開きます。詳細については、Okta 開発者ウェブサイトの Okta 組織ページの管理者コンソールをご参照ください。
- [アプリインテグレーションの作成] を選択します。
- [新しいアプリ統合の作成] のページで [OpenID Connect]、[Web アプリケーション] を選択して、[次へ] を選択します。
Okta アプリの設定を行います。
- [新規 Web アプリ統合] ページの [一般設定] で、アプリの名前を入力します。たとえば、[テストアプリ] などです。
- **[付与タイプ] ** で [認証コード] チェックボックスが選択されているかどうかを確認します。ユーザープールはこのフローを使用してOkta OIDCと通信し、フェデレーションユーザーサインインを行います。
- サインインリダイレクト URI には、**https://myUserPoolDomain/oauth2/idpresponse と入力します。**ここに Okta が認証レスポンスと ID トークンを送信します。
**注:****myUserPoolDomain ** を Amazon Cognito ユーザープールドメインに置き換えてください。これらの値は、[Amazon Cognito コンソール] の [ユーザープール] の [ドメイン名] のページで確認可能です。 - [OPENID 接続の設定] の [ログインリダイレクト URI] に https://myUserPoolDomain/oauth2/idpresponse と入力します。ここに Okta が認証レスポンスと ID トークンを送信します。
**注:myUserPoolDomain ** を Amazon Cognito ユーザープールドメインに置き換えてください。これらの値は、[Amazon Cognito コンソール] の [ユーザープール] の[ドメイン名] ページで確認できます。 - [アクセス制御] ** で、希望するアクセス設定を選択し、[保存]** を選択します。
- [クライアント認証情報] で、[クライアントID] と [クライアントシークレット] をコピーします。Amazon Cognito ユーザープールで Okta を設定するには、これらの認証情報が必要です。
- [サインオン] を選択します。
- [サインオン] ページの [OpenID 接続 ID トークン] で、発行者 URL をメモします。この URL は、ユーザープールで Okta を設定するために必要です。
ユーザープールに OIDC IdP を追加
- [Amazon Cognito コンソール] で、[ユーザープールを管理] を選択し、次にユーザープールを選択します。
- 左側のナビゲーションペインの [フェデレーション] で、[ID プロバイダー] を選択します。
- [OpenID 接続] を選択します。
- 次の操作を行います。
[プロバイダー名] に、IdP の名前を入力します。この名前は Amazon Cognito でホストされたウェブ UI に表示されます。
注:プロバイダーを作成した後でこのフィールドを変更することはできません。このフィールドをアプリに組み込むか、Amazon Cognito がホストするウェブ UI を使用する場合は、アプリのユーザーに見やすい名前を使用してください。
[クライアント ID] に、さきほどOktaからメモした [クライアント ID] を貼り付けます。
[クライアントシークレット (オプション)] には、さきほど Okta からメモした[クライアントシークレット] を貼り付けます。
[属性のリクエストメソッド] は、設定を [入手] のままにします。
[承認範囲] には、承認する OIDC スコープの値をスペースで区切って入力します。詳細については、OpenID ウェブサイトの「OpenID Connect Basic Client Implementer's Guide 1.0」の「スコープ値」をご参照ください。
**重要:OIDC IDP には ** openid ** スコープが必要で、ユーザープールの設定に応じて他のスコープを追加できます。たとえば、ユーザープールの作成時に Eメール を必須属性として保持していた場合は、Eメール openid ** と入力して両方のスコープを含めます。このセットアップの後半で、Eメール 属性をユーザープールにマッピングすることができます。
[発行者] で、以前 Okta からコピーした発行者 URLを貼り付けます。
[識別子 (オプション) ] では、OIDC IdP の名前の代わりにエンドポイント URL で後から使用するカスタム文字列をオプションで入力できます。 - [検出を実行] を選択して、OktaのOIDC構成エンドポイントを取得します。
- [プロバイダーの作成] を選択します。
詳細については、「ユーザープールへの OIDC ID プロバイダーの追加」をご参照ください。
ユーザープールのアプリクライアント設定の変更
- [Amazon Cognito コンソール] で、[ユーザープールを管理] を選択し、次にユーザープールを選択します。
- 左側のナビゲーションペインで、[アプリ統合] の下にある [アプリクライアントの設定] を選択します。
- アプリクライアントページで、次の操作を行います。
[有効な ID プロバイダー]で、前に作成した IdP の OIDC プロバイダーチェックボックスを選択します。
(オプション)[Cognito ユーザープール] チェックボックスを選択します。
[コールバック URL] で、ログイン後にユーザーをリダイレクトする URL を入力します。テストでは、https://example.com/ などの有効な URL を入力します。
[ログアウト URL] で、ログアウト後にユーザーをリダイレクトする URL を入力します。テストでは、https://example.com/ などの有効な URL を入力します。
[許可された OAuth フロー] で、Cognito からの認証後にアプリケーションに受け取りをさせたい付与タイプに対応するフローを選択します。
**注:**有効にする許可された OAuth フローによって、エンドポイント URL の response_type パラメーターに使用できる値 (コードまたはトークン) が決まります。
[許可された OAuth スコープ] で、少なくとも [メール] と [openid] のチェックボックスをオンにしてください。 - [変更を保存] を選択します。
詳しくは、「アプリケーションクライアントの設定用語」をご参照ください。
メール属性をユーザープール属性にマップする
以前、Eメール OIDC スコープ値を承認した場合は、それをユーザープール属性にマップします。
- [Amazon Cognito コンソール] で、[ユーザープールを管理] を選択し、次にユーザープールを選択します。
- 左側のナビゲーションペインの [フェデレーション] で、[属性マッピング] を選択します。
- 属性マッピングページで、[OIDC] タブを選択します。
- ユーザープールに複数の OIDC プロバイダーがある場合は、ドロップダウンリストから新しいプロバイダーを選択します。
- OIDC 属性 sub がユーザープール属性 Username にマップされていることを確認します。
- [OIDC 属性を追加] を選択し、次の操作を行います。
[OIDC 属性] ** には、[メール]** を入力します。
[ユーザープール属性] では、[メール] を選択します。
詳細については、「ユーザープールの ID プロバイダー属性マッピングを指定する」をご参照ください。
ログインしてセットアップをテスト
Amazon Cognito でホストされたウェブ UI を使用して Okta で認証を行います。ログインに成功すると、アプリクライアントのコールバック URL にリダイレクトされます。認証コードまたはユーザープールトークンは、ウェブブラウザのアドレスバーの URL に表示されます。
詳細については、「Using the Amazon Cognito Hosted UI for sign-up and sign-in」をご参照ください。
関連情報
Amazon Cognito ユーザープールの SAML ID プロバイダーとして Okta をセットアップする方法を教えてください。
- 言語
- 日本語

関連するコンテンツ
- 質問済み 3年前