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

所要時間3分
0

Okta を Amazon Cognito ユーザープールのセキュリティアサーションマークアップ言語 2.0 (SAML 2.0) ID プロバイダー (IdP) として使用したいと考えています。

簡単な説明

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

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

解決策

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

  1. ユーザープールを作成します
    **注:**作成時には、標準属性の Eメール がデフォルトで選択されます。詳細については、「ユーザープール属性」をご参照ください。
  2. ユーザープールにアプリクライアントを作成します。詳細については、「Add an app client and set up the hosted UI」をご参照ください。
    注:アプリクライアントを追加するときは、[クライアントシークレットの生成] チェックボックスをオフにします。承認コード付与フローやトークン更新フローなどの特定の承認フローでは、承認サーバーはアプリクライアントシークレットを使用して、クライアントにユーザーに代わってリクエストを行うことを許可します。この設定で使用される暗黙のグラントフローでは、アプリクライアントシークレットは必要ありません。
  3. ユーザープールのドメイン名を追加します

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

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

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

Okta で SAML アプリを作成する

  1. Okta 開発者コンソールを開きます。詳細については、Okta ウェブサイトの「Okta's Redesigned Admin Console and Dashboard」をご参照ください。
  2. ナビゲーションメニューで [アプリケーション] を展開し、[アプリケーション] を選択します。
  3. [アプリ統合の作成] を選択します。
  4. [新しいアプリ統合の作成] メニューで、ログイン方法として [SAML 2.0] を選択します。
  5. [次へ] を選択します。

詳細については、Okta Developer Webサイトのシングルサインオン (SSO) 統合構築ガイドの「SAML統合の準備」をご参照ください。

Okta アプリの SAML 統合の設定

  1. SAML 統合の作成ページの [一般設定] で、アプリの名前を入力します。
  2. (オプション) ロゴをアップロードし、アプリの表示設定を選択します。
  3. [次へ] を選択します。
  4. [一般][シングルサインオン URL]https://yourDomainPrefix.auth.region.amazoncognito.com/saml2/idpresponse と入力します。
    注:yourDomainPrefixregionregion をユーザープールの値に置き換えてください。これらの値は、Amazon Cognito コンソールの [ユーザープール] の[ドメイン名] ページで確認することができます。
  5. オーディエンス URI (SP エンティティ ID) には、urn:amazon:cognito:sp:yourUserPoolId と入力します。
    **注:**yourUserPoolId を Amazon Cognito ユーザープール ID に置き換えてください。この値は、ユーザープールの Amazon Cognito コンソールの [一般設定] ページにあります。
  6. [属性ステートメント (オプション)] で、次の情報を含むステートメントを追加します。
    [名前] に SAML 属性名 http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress を入力します。
    値にはuser.email と入力します。
  7. ページの他のすべての設定については、デフォルト値のままにするか、好みに応じて設定してください。
  8. [次へ] を選択します。
  9. Okta サポートへのフィードバック回答を選択してください。
  10. [完了] を選択します。

詳細については、Okta Developer Webサイトの「シングルサインオン (SSO) 統合構築」ガイドにある「インテグレーションの作成」をご参照ください。

Okta アプリケーションにユーザーを割り当てる

  1. Okta アプリの [割り当て] タブの [割り当てる] で、[ユーザーに割り当て] を選択します。
  2. 割り当てるユーザーの横にある [割り当てる] を選択します。
    **注:**新しいアカウントの場合、利用できる唯一のオプションは自分自身 (管理者) をユーザーとして選択することです。
  3. (オプション) [ユーザー名] にユーザー名を入力するか、必要に応じてユーザーのメールアドレスのままにします。
  4. [保存して戻る] を選択します。ユーザーが割り当てられます。
  5. [完了] を選択します。

詳細については、Okta Developer Webサイトの「シングルサインオン (SSO) 統合構築」ガイドの「ユーザーの割り当て」をご参照ください。

Okta アプリケーションの IdP メタデータを取得

Okta アプリケーションの [サインオン] タブで、[ID プロバイダーのメタデータ] のハイパーリンクを見つけます。ハイパーリンクを右クリックし、URL をコピーします。

詳細については、Okta Developer Webサイトの「シングルサインオン (SSO) 統合構築」ガイドの「統合設定の指定」をご参照ください。

ユーザープールで Okta を SAML IdP として設定する

  1. Amazon Cognito コンソールで、[ユーザープールの管理] を選択し、次にユーザープールを選択します。
  2. 左側のナビゲーションペインの [フェデレーション]で、[ID プロバイダー] を選択します。
  3. SAML を選択します。
  4. [メタデータドキュメント] に、コピーした ID プロバイダのメタデータ URL を貼り付けます。
  5. [プロバイダー名][Okta] と入力します。詳細については、「SAML IDプロバイダー名の選択」をご参照ください。
  6. (オプション) 任意の SAML 識別子 (識別子 (オプション)) を入力し、ユーザーがユーザープールからサインアウトしたときに IdP (Okta) からのサインアウトを有効にします。
  7. [プロバイダーの作成] を選択します。

詳細については、「ユーザープールの SAML IDプロバイダーの作成と管理 (AWS マネジメントコンソール)」をご参照ください。

IdP 属性からユーザープール属性へのメールアドレスをマッピング

  1. Amazon Cognito コンソールで、[ユーザープールの管理] を選択し、次にユーザープールを選択します。
  2. 左側のナビゲーションペインの [フェデレーション]で、[属性マッピング] を選択します。
  3. 属性マッピングページで、[SAML] タブを選択します。
  4. [SAML属性を追加] を選択します。
  5. SAML 属性には、SAML 属性名 http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress を入力します。
  6. [ユーザープール属性] には、一覧から [メール] を選択します。

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

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

  1. Amazon Cognito コンソールで、[ユーザープールの管理] を選択し、次にユーザープールを選択します。
  2. 左側のナビゲーションペインで、[アプリ統合] の下にある [アプリクライアントの設定] を選択します。
  3. アプリクライアントページで、次の操作を行います。
    [有効な ID プロバイダー] で、[Okta] と**[Cognito のユーザープール]** チェックボックスを選択します。
    [コールバック URL] に、ログイン後にユーザーをリダイレクトする URL を入力します。テストするには、https://www.example.com/ などの有効な URL を入力します。
    [サインアウト URL] に、ログアウト後にユーザーをリダイレクトする URL を入力します。テストするには、https://www.example.com/ などの有効な URL を入力します。
    [許可された OAuth フロー] で、少なくとも [暗黙の許可] チェックボックスをオンにしてください。
    [許可されている OAuth スコープ] で、少なくとも [メールアドレス][openid] のチェックボックスをオンにしてください。
  4. [変更の保存] を選択します。

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

エンドポイント URL の作成

ユーザープールの値を使用して、次のログインエンドポイント URL を作成します。https://yourDomainPrefix.auth.region.amazoncognito.com/login?response_type=token&client_id=yourClientId&redirect_uri=redirectUrl

必ず次のことを行ってください。

  • yourDomainPrefixregionregion をユーザープールの値に置き換えてください。これらの値は、Amazon Cognito コンソールの [ユーザープール] の**[ドメイン名]** ページで確認することができます。
  • ClientId をアプリクライアントの ID に置き換え、redirectUrl をアプリクライアントのコールバック URLに置き換えます。これらの値は、ユーザープールのアプリクライアントの設定ページの Amazon Cognito コンソールで確認できます。

詳細については、「How do I configure the hosted web UI for Amazon Cognito?」と「ログインエンドポイント」をご参照ください。

エンドポイント URL のテスト

  1. 作成したログインエンドポイント URL を ウェブブラウザに入力します。
  2. ログインエンドポイントのウェブページで、Okta を選択します。
    **注:**アプリクライアントのコールバックURLにリダイレクトされる場合は、ブラウザですでに Okta アカウントにログインしています。ユーザープールトークンは、Web ブラウザのアドレスバーの URL に表示されます。
  3. Okta [サインイン] ページで、アプリに割り当てたユーザーのユーザー名とパスワードを入力します。
  4. [サインイン] を選択します。

ログインすると、アプリクライアントのコールバック 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

必ず次のことを行ってください。

  • yourDomainPrefixregionregion をユーザープールの値に置き換えてください。これらの値は、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?」と「エンドポイントの認証」をご参照ください。

関連情報

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

Amazon Cognito ユーザープールを使用してサードパーティの SAML ID プロバイダーをセットアップする方法を教えてください。

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

コメントはありません

関連するコンテンツ