Amazon Cognito ユーザープールで Okta を SAML ID プロバイダーとして設定するにはどうしたらいいですか?

最終更新日: 2019 年 12 月 31 日

Amazon Cognito ユーザープールで、Security Assertion Markup Language 2.0 (SAML 2.0) ID プロバイダー (IdP) として Okta を使いたいです。セットアップするにはどうすればよいですか?

簡単な説明

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

Okta と一体化したユーザープールにより、Okta アプリのユーザーは、Amazon Cognito からユーザープールトークンを取得することが可能です。詳細については、「ユーザープールのトークンの使用」を参照してください。

解決方法

アプリクライアントおよびドメイン名を持つ Amazon Cognito ユーザープールを作成する

  1. ユーザープールを作成します
    注意: 作成時には、標準属性として E メール がデフォルトで選択されます。詳細については、「ユーザープールの属性の設定」を参照してください。
  2. ユーザープールでアプリクライアントを作成します。詳細については、アプリケーションを追加して、ホストされたウェブの UI を有効にするを参照してください。
    注: アプリクライアントを追加する場合、クライアントシークレットの生成チェックボックスをオフにします。認証コードの付与フローやトークン更新フローなどの特定の認証フローでは、認証サーバーはアプリクライアントシークレットを使用して、ユーザーに代わってリクエストを行うことをクライアントに許可します。この設定で使用されている黙示的な付与フローでは、アプリクライアントシークレットは必要ありません。
  3. ユーザープールのドメイン名を追加します

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

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

  1. [Okta Developer signup webpage] で、個人情報を入力し、 [GET STARTED] を選択します。Okta 開発者チームから、指定された E メールアドレスに確認メールが送信されます。
  2. 確認 E メールで、アカウントのサインイン情報を確認します。ACTIVATE MY ACCOUNT を選択してサインインし、アカウントの作成を完了します。

Okta で SAML アプリを作成する

  1. Okta 開発者コンソールを開きます。コンソールの詳細については、Okta 開発者ブログの「The Okta Developer Console: All New, All You」を参照してください。
  2. 左上隅の開発者コンソールで、[Classic UI] を選択します。管理コンソールが開きます。詳細については、Okta 開発者ウェブサイトの Okta 組織ページの管理者コンソールを参照してください。
    重要: SAML アプリを作成するには、管理コンソール (クラシック UI) を使用する必要があります。
  3. ショートカットで、アプリケーションを追加を選択します。または [Applications]、[Add Application] の順に選択します。
  4. [Add Application] ページで、[Create New App] を選択します。
  5. 新しいアプリケーション統合を作成するのダイアログで、プラットフォームウェブに設定されていることを確認します。
  6. サインオン方法では、SAML 2.0 を選択します。
  7. 作成を選択します。

詳細については、Okta 開発者ウェブサイトから Okta で SAML アプリケーションをセットアップするガイドの一般的なアプリ情報を追加を参照してください。

Okta アプリの SAML Integration を設定する

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

詳細については、Okta 開発者ウェブサイトから Okta で SAML アプリケーションをセットアップするガイドの Okta で SAML を構成するを参照してください。

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

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

詳細については、Okta 開発者ウェブサイトから Okta で SAML アプリケーションをセットアップするガイドのユーザーをアプリに割り当てるを参照してください。

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

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

詳細については、Okta 開発者ウェブサイトから Okta で SAML アプリケーションをセットアップするガイドのアプリで SAML を構成するを参照してください。

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

  1. Amazon Cognito コンソールで、ユーザープールを管理を選択し、ユーザープールを選択します。
  2. 左のナビゲーションペインのフェデレーションの下で、プロバイダーを特定を選択します。
  3. SAML を選択します。
  4. メタデータドキュメントに、コピーした ID プロバイダーメタデータの URL を貼り付けます。
  5. プロバイダー名Okta と入力します。詳細については、SAML ID プロバイダー名の選択を参照してください。
  6. (オプション) ユーザーがユーザープールからサインアウトするときに、SAML ID (Identifiers (Optional)) を入力し、IdP (Okta) からのサインアウトを有効にします (IdP サインアウトフローを有効にする)。
  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. ユーザープール属性には、リストから E メールを選択します。

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

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

  1. [Amazon Cognito コンソール] で、[Manage user pools] を選択し、ユーザープールを選択します。
  2. 左側のナビゲーションペインで、[App integration] の下にある [App client settings] を選択します。
  3. アプリクライアントページで、次の操作を行います。
    有効な ID プロバイダーで、OktaCognito ユーザープール のチェックボックスをオンにします。
    コールバック URL には、ログイン後にユーザーをリダイレクトする URL を入力します。テストを行う場合には、https://www.example.com/ のような、任意の有効な URL を入力してください。
    サインアウト URL には、ログアウト後にユーザーをリダイレクトする URL を入力します。テストを行う場合には、https://www.example.com/ のような、任意の有効な URL を入力してください。
    OAuth フローを許可で必ず暗黙的な付与チェックボックスをオンにします。
    [Allowed OAuth Scopes] で必ず [email] および [openid] チェックボックスをオンにしてください。
  4. [Save changes] を選択します。

詳細については、「アプリクライアント設定の概要」を参照してください。

エンドポイント URL を作成する

ユーザープールの値を使用して、次のログインエンドポイント URL を作成します。

https://yourDomainPrefix.auth.region.amazoncognito.com/login?response_type=token&client_id=yourClientId&redirect_uri=redirectUrl

必ず以下を実行してください。

  • yourDomainPrefix]と リージョン をユーザープールの値に置き換えます。それらの値は、ドメイン名ページの Amazon Cognito コンソールで確認できます。
  • yourClientId をアプリケーションクライアントの ID に置き換え、redirectUrl をアプリケーションクライアントのコールバック URL に置き換えます。これらの値は、ユーザープールのアプリクライアントの設定ページにある Amazon Cognito コンソールで確認できます。

詳細については、「Amazon Cognito のホストされたウェブ UI 設定」および 「ログインエンドポイント」を参照してください。

エンドポイント URL をテストする

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

ログイン後、アプリクライアントのコールバック URL にリダイレクトされます。ウェブブラウザのアドレスバーの URL にユーザープールトークンが表示されます。

(オプション) Amazon Cognito がホストする UI をスキップする

アプリにサインインするときにユーザーに Amazon Cognito がホストするウェブ UI をスキップさせたい場合は、代わりに次の URL をエンドポイント URL として使用します。

https://yourDomainPrefix.auth.region.amazoncognito.com/oauth2/authorize?response_type=token&identity_provider=samlProviderName&client_id=yourClientId&redirect_uri=redirectUrl&scope=allowedOauthScopes

必ず以下を実行してください。

  • yourDomainPrefix]と リージョン をユーザープールの値に置き換えます。それらの値は、ドメイン名ページの Amazon Cognito コンソールで確認できます。
  • samlProviderName を、ユーザープールの SAML プロバイダー名 (Okta) に置き換えます。
  • (オプション) 識別子 (オプション) フィールドで SAML IdP の識別子を追加した場合は、identity_provider=samlProviderNameidp_identifier=idpIdentifier に置き換え、idpIdentifier をカスタムの識別子文字列に置き換えることができます。
  • yourClientId をアプリケーションクライアントの ID に置き換え、redirectUrl をアプリケーションクライアントのコールバック URL に置き換えます。これらの値は、ユーザープールのアプリクライアントの設定ページにある Amazon Cognito コンソールで確認できます。
  • allowedOauthScopes を、Amazon Cognito アプリクライアントにリクエストさせたい特定のスコープに置き換えます。たとえば、scope=email+openid です。

詳細については、Amazon Cognito のホストされたウェブ UI を設定する方法を教えてくださいおよび認証エンドポイントを参照してください。