OneLogin を Amazon Cognito ユーザープールのセキュリティアサーションマークアップ言語 2.0 (SAML 2.0) ID プロバイダー (IdP) として使用したいと考えています。
簡単な説明
Amazon Cognito ユーザープールでは、サードパーティ (フェデレーション) を介してサインインできます。これには、OneLogin などの SAML IdP 経由も含まれます。詳細については、「サードパーティ経由のユーザープールサインインの追加」および「ユーザープールへの SAML ID プロバイダーの追加」を参照してください。OneLogin を SAML IdP としてセットアップするには、Amazon Cognito ユーザープールと、アプリケーションを含む OneLogin アカウントが必要です。
解決策
アプリクライアントとドメイン名を使用して Amazon Cognito ユーザープールを作成する
詳細については、以下を参照してください。
**注:**ユーザープールを作成すると、デフォルトで標準属性の E メールが選択されます。詳細については、「ユーザープール属性」を参照してください。
OneLogin アカウントを作成する
- OneLogin のウェブサイトを開き、[無料トライアル] を選択します。
- アカウント作成ページの [OneLogin ドメイン] で、OneLogin が提供するドメインをメモしておきます。
OneLogin アプリケーションを作成する
- OneLogin ポータルページ (https://your-new-domain.onelogin.com/portal/) で、[管理] を選択します。
- 管理ページで、[アプリ] にカーソルを合わせ、[アプリを追加] を選択します。
- [アプリケーションの検索] の検索バーに saml と入力し、SAML テストコネクタ (IdP) を選択します。[SAML テストコネクター (IdP) の追加] ページ。
- (オプション) [SAML テストコネクタ (IdP) の追加] ページで、以下のいずれかの手順を実行します。
[表示名] に、名前と説明を入力します。たとえば、Cognito セットアップ (IdP)。
長方形アイコンと正方形アイコンの場合は、ページの仕様に従ってサムネイルアイコンをアップロードします。
[説明] に、簡単な概要説明を入力します。たとえば、Amazon Cognito ユーザープールの場合などです。
- [保存] を選択します。
OneLogin アプリケーションの設定を編集する
- OneLogin ポータルページ (https://your-new-domain.onelogin.com/portal/) で、[設定] を選択します。
- [設定] ページで、次の手順を実行します。
[RelayState] には、https://www.example.com などの有効な URL を入力します。
[オーディエンス] には、urn:amazon:cognito:sp:yourUserPoolId と入力します。
[Recipient] に https://yourDomainPrefix.auth.region.amazoncognito.com/saml2/idpresponse と入力します。
[ACS (コンシューマー) URL 検証ツール] には、https://yourDomainPrefix.auth.region.amazoncognito.com/saml2/idpresponse と入力します。
[ACS (コンシューマー) URL] には、https://yourDomainPrefix.auth.region.amazoncognito.com/saml2/idpresponse と入力します。
[シングルログアウト URL] の場合は、フィールドを空白のままにしておきます。
注:[オーディエンス]** の場合は**、yourUserPoolId を Amazon Cognito ユーザープール ID に置き換えてください。ユーザープールの管理ページの [一般設定] タブにある Amazon Cognito コンソールで ID を探します。
[ACS (コンシューマー) URL 検証ツール] と [ ACS (コンシューマー) URL] の場合は、yourDomainPrefix とリージョンをユーザープールの値に置き換えてください。ユーザープールの管理ページの [ドメイン名] タブにある Amazon Cognito コンソールで値を確認します。
OneLogin アプリケーションのパラメータを編集する
- OneLogin ポータルページ (https://your-new-domain.onelogin.com/portal/) で、[パラメータ] を選択します。
注:****[パラメータ] ページには、デフォルトで NameID (fka Email) というパラメータが表示されます。
- 新しいカスタムパラメータを作成するには、[パラメータを追加] を選択します。
- [新しいフィールド] ダイアログボックスの [フィールド名] に http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier と入力します。
- [フラグ] では、[SAML アサーションに含める] のチェックボックスをオンにします。
- [保存] を選択します。
- [値] には、リストから**[E メール]** を選択します。
- [保存] を選択します。
OneLogin アプリケーションの IdP メタデータをコピーする
- OneLogin ポータルページ (https://your-new-domain.onelogin.com/portal/) で、[SSO] を選択します。
- [発行者 URL] に URL をコピーします。
- [保存] を選択します。
Amazon Cognito で OneLogin を SAML IdP として設定する
OneLogin を Amazon Cognito の SAML IdP として設定するには、「ユーザープールの SAML ID プロバイダーの作成と管理 (AWS マネジメントコンソール)」を参照してください。「ユーザープールで SAML 2.0 ID プロバイダーを設定するには」の手順に従います。SAML IdP を作成するときに、[メタデータドキュメント] に、コピーした発行者 URL を入力します。
IdP 属性からユーザープール属性への電子メールアドレスをマッピング
電子メールアドレスを IdP 属性からユーザープール属性にマッピングするには、「ユーザープールの ID プロバイダー属性マッピングの指定」を参照してください。「SAML プロバイダー属性マッピングを指定するには」の手順に従います。[属性マッピング] に SAML 属性を追加する場合、[SAML 属性] に http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier と入力します。[ユーザープール属性] には、リストから [E メール] を選択します。
Amazon Cognito のアプリケーションクライアント設定を変更する
注:これはテスト用の設定例です。プロダクション環境の設定では、アプリのクライアント設定に認証コード許可 OAuth フローを使用するのがベストプラクティスです。そのフローを使用すると、認証後にリダイレクト URL で認証コードを受け取ります。JSON Web トークン (JWT) の認証コードを交換するには、トークンエンドポイントにリクエストを行う必要があります。
- Amazon Cognito コンソールの [アプリ統合] で、[アプリクライアント設定] を選択します。次に、以下の操作を実行します。
[有効な ID プロバイダー] で、[すべて選択] チェックボックスをオンにします。
コールバック URL に、ログイン後にユーザーをリダイレクトする URL を入力します。テストするには、https://www.example.com などの有効な URL を入力します。
[サインアウト URL] に、ログアウト後にユーザーをリダイレクトする URL を入力します。テストするには、https://www.example.com などの有効な URL を入力します。
[許可された OAuth フロー] で、少なくとも [暗黙の許可] チェックボックスをオンにしてください。
[許可された OAuth スコープ] で、少なくとも [E メール] と [openid] のチェックボックスをオンにしてください。
- [変更を保存] を選択します。詳細については、「ユーザープールアプリケーションクライアントの更新 (AWS CLI および AWS API)」を参照してください。
ログインエンドポイントのテスト
- ブラウザに 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 を設定する方法を教えてください」と「ログインエンドポイント」を参照してください。
- **[OneLogin]**を選択します。
**注:**アプリクライアントのコールバック URL にリダイレクトされる場合は、ブラウザですでに OneLogin アカウントにログインしています。すべてが正しく設定されています。
- OneLogin ページの [ユーザー名] に OneLogin アカウントのユーザー名を入力します。
- [続行] を選択します。
- [パスワード] には、OneLogin アカウントのパスワードを入力します。
- [続行] を選択します。
関連情報
サードパーティーの SAML ID プロバイダーと Amazon Cognito ユーザープールの統合
SAML ユーザープール IdP 認証フロー