Amazon Cognito ユーザープールの OpenID Connect ID プロバイダーとして Okta をセットアップする方法を教えてください。

所要時間3分
0

Amazon Cognito ユーザープールの SAML 2.0 アイデンティティプロバイダー (IdP) として Okta を使用したいと考えています。

簡単な説明

Amazon Cognito ユーザープールでは、Okta などの IdP を含むサードパーティ (フェデレーション) 経由でのサインインが可能です。詳細については、「サードパーティ経由のユーザープールへのサインインの追加」および「ユーザープールへの OIDC ID プロバイダーの追加」をご参照ください。

Okta と統合されたユーザープールにより、Okta アプリのユーザーは Amazon Cognito からユーザープールトークンを取得することができます。詳細については、「ユーザープールでのトークンの使用」をご参照ください。

解決策

アプリクライアントとドメイン名を使用して Amazon Cognito ユーザープールを作成する

  1. ユーザープールを作成します
    **注:**作成時には、標準属性の Eメール がデフォルトで選択されます。詳しくは、「ユーザープール属性の設定」をご参照ください。
  2. ユーザープールにアプリクライアントを作成します。詳細については、「Add an app to enable the hosted web UI」をご参照ください。
  3. ユーザープールのドメイン名を追加します

Okta 開発者アカウントにサインアップ

**注:**Okta 開発者アカウントを既にお持ちの場合は、サインインしてください。

  1. Okta Developer のサインアップ Web ページで、必要な情報を入力し、[サインアップ] を選択します。Okta 開発者チームは、指定したメールアドレスに確認メールを送信します。
  2. 確認メールで、アカウントのログイン情報を確認してください。[有効にする] を選択してサインインし、アカウントの作成を完了します。

Okta アプリを作成する

  1. Okta 開発者コンソールを開きます。コンソールの詳細については、Okta 開発者ブログにある「Oktaの管理コンソールとダッシュボードが GA でも利用可能に!」をご参照ください。
  2. ナビゲーションメニューで [アプリケーション] ** を展開し、[アプリケーション] ** を選択します。これにより、アプリケーションコンソールが開きます。詳細については、Okta 開発者ウェブサイトの Okta 組織ページの管理者コンソールをご参照ください。
  3. [アプリインテグレーションの作成] を選択します。
  4. [新しいアプリ統合の作成] のページで [OpenID Connect][Web アプリケーション] を選択して、[次へ] を選択します。

Okta アプリの設定を行います。

  1. [新規 Web アプリ統合] ページの [一般設定] で、アプリの名前を入力します。たとえば、[テストアプリ] などです。
  2. **[付与タイプ] ** で [認証コード] チェックボックスが選択されているかどうかを確認します。ユーザープールはこのフローを使用してOkta OIDCと通信し、フェデレーションユーザーサインインを行います。
  3. サインインリダイレクト URI には、**https://myUserPoolDomain/oauth2/idpresponse と入力します。**ここに Okta が認証レスポンスと ID トークンを送信します。
    **注:****myUserPoolDomain ** を Amazon Cognito ユーザープールドメインに置き換えてください。これらの値は、[Amazon Cognito コンソール] の [ユーザープール] の [ドメイン名] のページで確認可能です。
  4. [OPENID 接続の設定] の [ログインリダイレクト URI]https://myUserPoolDomain/oauth2/idpresponse と入力します。ここに Okta が認証レスポンスと ID トークンを送信します。
    **注:myUserPoolDomain ** を Amazon Cognito ユーザープールドメインに置き換えてください。これらの値は、[Amazon Cognito コンソール] の [ユーザープール] の[ドメイン名] ページで確認できます。
  5. [アクセス制御] ** で、希望するアクセス設定を選択し、[保存]** を選択します。
  6. [クライアント認証情報] で、[クライアントID][クライアントシークレット] をコピーします。Amazon Cognito ユーザープールで Okta を設定するには、これらの認証情報が必要です。
  7. [サインオン] を選択します。
  8. [サインオン] ページの [OpenID 接続 ID トークン] で、発行者 URL をメモします。この URL は、ユーザープールで Okta を設定するために必要です。

ユーザープールに OIDC IdP を追加

  1. [Amazon Cognito コンソール] で、[ユーザープールを管理] を選択し、次にユーザープールを選択します。
  2. 左側のナビゲーションペインの [フェデレーション] で、[ID プロバイダー] を選択します。
  3. [OpenID 接続] を選択します。
  4. 次の操作を行います。
    [プロバイダー名] に、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 で後から使用するカスタム文字列をオプションで入力できます。
  5. [検出を実行] を選択して、OktaのOIDC構成エンドポイントを取得します。
  6. [プロバイダーの作成] を選択します。

詳細については、「ユーザープールへの OIDC ID プロバイダーの追加」をご参照ください。

ユーザープールのアプリクライアント設定の変更

  1. [Amazon Cognito コンソール] で、[ユーザープールを管理] を選択し、次にユーザープールを選択します。
  2. 左側のナビゲーションペインで、[アプリ統合] の下にある [アプリクライアントの設定] を選択します。
  3. アプリクライアントページで、次の操作を行います。
    [有効な ID プロバイダー]で、前に作成した IdP の OIDC プロバイダーチェックボックスを選択します。
    (オプション)
    [Cognito ユーザープール]
    チェックボックスを選択します。
    [コールバック URL] で、ログイン後にユーザーをリダイレクトする URL を入力します。テストでは、https://example.com/ などの有効な URL を入力します。
    [ログアウト URL] で、ログアウト後にユーザーをリダイレクトする URL を入力します。テストでは、https://example.com/ などの有効な URL を入力します。
    [許可された OAuth フロー] で、Cognito からの認証後にアプリケーションに受け取りをさせたい付与タイプに対応するフローを選択します。
    **注:**有効にする許可された OAuth フローによって、エンドポイント URL の response_type パラメーターに使用できる値 (コードまたはトークン) が決まります。
    [許可された OAuth スコープ] で、少なくとも [メール][openid] のチェックボックスをオンにしてください。
  4. [変更を保存] を選択します。

詳しくは、「アプリケーションクライアントの設定用語」をご参照ください。

メール属性をユーザープール属性にマップする

以前、Eメール OIDC スコープ値を承認した場合は、それをユーザープール属性にマップします。

  1. [Amazon Cognito コンソール] で、[ユーザープールを管理] を選択し、次にユーザープールを選択します。
  2. 左側のナビゲーションペインの [フェデレーション] で、[属性マッピング] を選択します。
  3. 属性マッピングページで、[OIDC] タブを選択します。
  4. ユーザープールに複数の OIDC プロバイダーがある場合は、ドロップダウンリストから新しいプロバイダーを選択します。
  5. OIDC 属性 sub がユーザープール属性 Username にマップされていることを確認します。
  6. [OIDC 属性を追加] を選択し、次の操作を行います。
    [OIDC 属性] ** には、[メール]** を入力します。
    [ユーザープール属性] では、[メール] を選択します。

詳細については、「ユーザープールの ID プロバイダー属性マッピングを指定する」をご参照ください。

ログインしてセットアップをテスト

Amazon Cognito でホストされたウェブ UI を使用して Okta で認証を行います。ログインに成功すると、アプリクライアントのコールバック URL にリダイレクトされます。認証コードまたはユーザープールトークンは、ウェブブラウザのアドレスバーの URL に表示されます。

詳細については、「Using the Amazon Cognito Hosted UI for sign-up and sign-in」をご参照ください。

関連情報

OIDC ユーザープール IdP 認証フロー

Amazon Cognito ユーザープールの SAML ID プロバイダーとして Okta をセットアップする方法を教えてください。

AWS公式
AWS公式更新しました 9ヶ月前
コメントはありません

関連するコンテンツ