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 をセットアップする方法を教えてください。

関連するコンテンツ
- 質問済み 4年前lg...
- 質問済み 4ヶ月前lg...
- 質問済み 9ヶ月前lg...