Amazon Cognito ユーザープールを使用して SAML ID プロバイダーとして OneLogin を設定するにはどうすればよいですか?

最終更新日: 2019 年 2 月 14 日

Amazon Cognito ユーザープールを使用して、Security Assertion Markup Language 2.0 (SAML 2.0) ID プロバイダー (IdP) として OneLogin を使いたいです。セットアップ方法を教えてください。

簡単な説明

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

OneLogin を SAML IdP として設定するには、Amazon Cognito ユーザープールと、その上にアプリケーションを持つ OneLogin アカウントが必要です。

解決方法

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

詳細については、以下の記事を参照してください。

注: ユーザープールを作成する際、標準属性の [E メール]がデフォルトで選択されます。ユーザープール属性の詳細については、「ユーザープール属性の設定」をご参照ください。

OneLogin アカウントを作成する

詳細については、「OneLogin ウェブサイト」を参照したうえで、[無料トライアルを開始する] を選択してください。

アカウント作成ページの [OneLogin ドメイン] で、OneLogin が提供するドメインを確認します。

OneLogin アプリケーションを作成する

1.    OneLogin ポータルページ (https://your-new-domain.onelogin.com/portal/) で、[管理] を選択します。

2.    管理ページの上部にある [アプリ] にカーソルを合わせ、[アプリの追加] を選択します。

3.    検索バーの [アプリケーションの検索] で [saml] と入力し、[SAML Test Connector (IdP)] を選択して [SAML Test Connector (IdP)] ページ を開きます。

4.    (オプション) 次のいずれかを実行します。
[表示名] には、名前と説明を入力します。たとえば、Cognito Setup (IdP) です。
長方形のアイコンおよび正方形のアイコンには、ページの指定に従ってサムネイルアイコンをアップロードします。
[説明] には、簡単な説明を入力します。たとえば、Amazon Cognito ユーザープール用です。

5.    [保存] を選択します。

OneLogin アプリケーション設定を編集する

1.    [設定] を選択します。

2.    [設定] ページで、次の手順を実行します。
[RelayState] には、https://www.example.comのように有効な URL を入力します。
[対象者] には、 urn:amazon:cognito:sp:yourUserPoolId を入力します。
[受信者] は空白のままにします。
[ACS (Consumer) URL Validator] には、https://yourDomainPrefix.auth.region.amazoncognito.com/saml2/idpresponse を入力します。
[ACS (Consumer) URL] には、https://yourDomainPrefix.auth.region.amazoncognito.com/saml2/idpresponse を入力します。
Single Logout URL は空白のままにします。

注: 対象者では、yourUserPoolId を Amazon Cognito ユーザープール ID に置き換えます。ユーザープールの管理ページの [全般設定] タブで、Amazon Cognito コンソールの ID を見つけます。

[ACS (Consumer) URL Validator] および [ACS (Consumer) URL] では、yourDomainPrefix および region をユーザープールの値に置き換えます。ユーザープールの管理ページの [ドメイン名] タブの [Amazon Cognito console] でそれらが見つかります。

OneLogin アプリケーションのパラメータを編集する

1.    [パラメータ] を選択します。

注: 予想どおり、1 つのパラメータ (NameID (fka Email) ) がすでにリストされています。

2.    [パラメータを追加] を選択して、新しいカスタムパラメータを作成します。

3.    [新規フィールド] ダイアログで、フィールド名http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier を入力します。

4.    [フラグ] には、[SAML アサーションに含める] チェックボックスをオンにします。

5.    [保存] を選択します。

6.    [] には、リストから [E メール] を選択します。

7.    [保存] を選択します。

OneLogin アプリケーションの IdP メタデータをコピーする

1.    [SSO] を選択します。

2.    [発行者 URL] で、URL をクリップボードにコピーします。

3.    OneLogin アプリケーションへのすべての変更を保存するには、[保存] を選択します。

Amazon Cognito で OneLogin を SAML IdP として設定する

詳細については、「ユーザープール用の SAML ID プロバイダーの作成と管理 (AWS マネジメントコンソール) 」を参照してください。「ユーザープールに SAML 2.0 ID プロバイダーを設定するには」の手順に従ってください。

SAML IdP を作成するとき、メタデータドキュメントに、コピーした発行者 URL を貼り付けます。

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

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

属性マッピングの下に SAML 属性を追加するときは、SAML 属性に、http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier を入力します。ユーザープール属性には、リストから E メールを選択します。

Amazon Cognito のアプリクライアント設定を変更する

注: これはテスト目的の設定例です。実稼働環境では、アプリクライアント設定に認証コード付与 OAuth フローを使用することをお勧めします。このフローを使用すると、リダイレクト URL の認証後に認証コードを受け取ります。TOKEN エンドポイントにリクエストを出して、認証コードを JSON ウェブトークン (JWT) に交換する必要があります。

1.    ユーザープール用の Amazon Cognito コンソール管理ページのアプリケーションの統合で、[アプリクライアントの設定] を選択します。次に、以下の操作を実行します。
[有効な ID プロバイダー] で、[すべてを選択] チェックボックスをクリックします。
[Callback URL(s)] には、ログイン後にユーザーをリダイレクトする URL を入力します。[テスト] については、https://www.example.com など任意の有効な URL を入力します。
[サインアウト URL] にログアウト後にユーザーをリダイレクトする URL を入力します。[テスト] については、https://www.example.com など任意の有効な URL を入力します。
[Allowed OAuth Flows] では、 [Implicit grant] チェックボックスだけは必ずクリックしてください。
[Allowed OAuth Scopes] の下で、[E メール] と [openid] チェックボックスは必ずクリックします。

2.    [変更を保存] を選択します。

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

ログインエンドポイントをテストする

1.    ブラウザで、https://yourDomainPrefix.auth.region.amazoncognito.com/login?response_type=token&client_id=yourClientId&redirect_uri=redirectUrl を入力してください。

注: yourDomainPrefixリージョンをユーザープールの値に置き換えます。ユーザープールの管理ページの [ドメイン名] タブの [Amazon Cognito console] でそれらが見つかります。

アプリクライアントの ID で yourClientId を置き換えて、クライアントのコールバック URL で redirectUrl を置き換えます。ユーザープールの管理ページの [App client settings] タブの Amazon Cognito コンソールで表示されます。

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

2.    [OneLogin] を選択します。

注: アプリクライアントのコールバック URL にリダイレクトされた場合は、ブラウザで OneLogin アカウントにすでにログインしています。すべて正しく設定されています。

3.    [OneLogin] ページの [ユーザー名] に、OneLogin アカウントのユーザー名を入力します。

4.    [続行] を選択します。

5.    [パスワード] には、OneLogin アカウントのパスワードを入力します。

6.    [続行] を選択します。

アプリクライアントのコールバック URL にリダイレクトされれば、すべて正しく設定されています。