

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# シングルサインオン (SSO) 用の ID プロバイダーの設定
<a name="configure-id-federation"></a>

Research and Engineering Studio は、任意の SAML 2.0 ID プロバイダーと統合して、RES ポータルへのユーザーアクセスを認証します。これらのステップでは、選択した SAML 2.0 ID プロバイダーと統合する手順を示します。IAM Identity Center を使用する場合は、「」を参照してください[IAM Identity Center でのシングルサインオン (SSO) の設定](sso-idc.md)。

**注記**  
ユーザーの E メールは、IDP SAML アサーションと Active Directory で一致する必要があります。ID プロバイダーを Active Directory に接続し、定期的にユーザーを同期する必要があります。

**Topics**
+ [ID プロバイダーを設定する](#configure-id-federation_config-idp)
+ [ID プロバイダーを使用するように RES を設定する](#configure-id-federation_config-res)
+ [非本番環境での ID プロバイダーの設定](#configure-id-federation-demo-env)
+ [SAML IdP の問題のデバッグ](#configure-id-federation_debug)

## ID プロバイダーを設定する
<a name="configure-id-federation_config-idp"></a>

このセクションでは、RES Amazon Cognito ユーザープールからの情報を使用して ID プロバイダーを設定する手順について説明します。

1. RES は、RES ポータルとプロジェクトへのアクセスが許可されているユーザー ID を持つ AD (AWS マネージド AD またはセルフプロビジョニング AD) があることを前提としています。AD を ID サービスプロバイダーに接続し、ユーザー ID を同期します。AD を接続し、ユーザー ID を同期する方法については、ID プロバイダーのドキュメントを参照してください。例えば、「 *AWS IAM アイデンティティセンター ユーザーガイド*」の[「ID ソースとしての Active Directory の使用](https://docs.aws.amazon.com/singlesignon/latest/userguide/gs-ad.html)」を参照してください。

1. ID プロバイダー (IdP) で RES の SAML 2.0 アプリケーションを設定します。この設定には、次のパラメータが必要です。
   + **SAML リダイレクト URL** — IdP が SAML 2.0 レスポンスをサービスプロバイダーに送信するために使用する URL。
**注記**  
IdP によっては、SAML リダイレクト URL の名前が異なる場合があります。  
アプリケーション URL
アサーションコンシューマーサービス (ACS) URL
ACS POST バインディング URL

**URL を取得するには**

     1. **管理者**または **clusteradmin** として RES にサインインします。

     1. **環境管理** ⇒ **一般設定** ⇒ **ID プロバイダー**に移動します。

     1. **SAML リダイレクト URL** を選択します。
   + **SAML オーディエンス URI** — サービスプロバイダー側の SAML オーディエンスエンティティの一意の ID。
**注記**  
IdP によっては、SAML オーディエンス URI の名前が異なる場合があります。  
ClientID
アプリケーション SAML 対象者
SP エンティティ ID

     入力を次の形式で指定します。

     ```
     urn:amazon:cognito:sp:{{user-pool-id}}
     ```

**SAML 対象者 URI を検索するには**

     1. **管理者**または **clusteradmin** として RES にサインインします。

     1. **環境管理** ⇒ **一般設定** ⇒ **ID プロバイダー**に移動します。

     1. **ユーザープール ID **を選択します。

1. RES に投稿される SAML アサーションには、次のフィールド/クレームがユーザーの E メールアドレスに設定されている必要があります。
   + SAML Subject または NameID
   + SAML E メール

1. IdP は、設定に基づいて SAML アサーションにフィールド/クレームを追加します。RES にはこれらのフィールドが必要です。ほとんどのプロバイダーは、デフォルトでこれらのフィールドを自動的に入力します。設定する必要がある場合は、次のフィールド入力と値を参照してください。

   
   + **AudienceRestriction** — を に設定します`urn:amazon:cognito:sp:{{user-pool-id}}`。{{user-pool-id}} を Amazon Cognito ユーザープールの ID に置き換えます。

     ```
     <saml:AudienceRestriction>
         <saml:Audience> urn:amazon:cognito:sp:{{user-pool-id}}
     </saml:AudienceRestriction>
     ```
   + **レスポンス** — `InResponseTo`を に設定します`https://{{user-pool-domain}}/saml2/idpresponse`。{{user-pool-domain}} を Amazon Cognito ユーザープールのドメイン名に置き換えます。

     ```
     <saml2p:Response 
       Destination="https://{{user-pool-domain}}/saml2/idpresponse"
       ID="id123" 
       InResponseTo="_dd0a3436-bc64-4679-a0c2-cb4454f04184" 
       IssueInstant="Date-time stamp" 
       Version="2.0" 
       xmlns:saml2p="urn:oasis:names:tc:SAML:2.0:protocol" 
       xmlns:xs="http://www.w3.org/2001/XMLSchema">
     ```
   + **SubjectConfirmationData** — `Recipient` ユーザープール`saml2/idpresponse`エンドポイントと元の SAML リクエスト ID `InResponseTo`に設定します。

     ```
     <saml2:SubjectConfirmationData 
       InResponseTo="_dd0a3436-bc64-4679-a0c2-cb4454f04184" 
       NotOnOrAfter="Date-time stamp" 
       Recipient="https://{{user-pool-domain}}/saml2/idpresponse"/>
     ```
   + **AuthnStatement** — 次のように を設定します。

     ```
     <saml2:AuthnStatement AuthnInstant="2016-10-30T13:13:28.152TZ"
       SessionIndex="32413b2e54db89c764fb96ya2k" SessionNotOnOrAfter="2016-10-30T13:13:28">
         <saml2:SubjectLocality />
         <saml2:AuthnContext>
             <saml2:AuthnContextClassRef>urn:oasis:names:tc:SAML:2.0:ac:classes:Password</saml2:AuthnContextClassRef>
         </saml2:AuthnContext>
     </saml2:AuthnStatement>
     ```

1. SAML アプリケーションにログアウト URL フィールドがある場合は、 に設定します`{{<domain-url>}}/saml2/logout`。

**ドメイン URL を取得するには**

   1. **管理者**または **clusteradmin** として RES にサインインします。

   1. **環境管理** ⇒ **一般設定** ⇒ **ID プロバイダー**に移動します。

   1. **ドメイン URL** を選択します。

1. IdP が Amazon Cognito との信頼を確立するために署名証明書を受け入れる場合は、Amazon Cognito 署名証明書をダウンロードし、IdP にアップロードします。

**署名証明書を取得するには**

   1. [Amazon Cognito コンソール](https://console.aws.amazon.com/cognito/v2/idp/user-pools/)を開きます。

   1. ユーザープールを選択します。ユーザープールは である必要があります`res-{{<environment name>}}-user-pool`。

   1. **サインインエクスペリエンス**タブを選択します。

   1. **フェデレーティッド ID プロバイダーのサインイン**セクションで、**署名証明書の表示**を選択します。  
![選択したユーザープールのフェデレーティッド ID プロバイダーのサインインセクションの署名証明書の表示ボタンがある Amazon Cognito コンソール。](http://docs.aws.amazon.com/ja_jp/res/latest/ug/images/cognito-user-pool-signing-cert.png)

      この証明書を使用して、Active Directory IDP をセットアップし、 を追加し`relying party trust`、この証明書利用者に対して SAML サポートを有効にできます。
**注記**  
これは Keycloak と IDC には適用されません。

   1. アプリケーションのセットアップが完了したら、SAML 2.0 アプリケーションメタデータ XML または URL をダウンロードします。次のセクションで使用します。

## ID プロバイダーを使用するように RES を設定する
<a name="configure-id-federation_config-res"></a>

**RES のシングルサインオン設定を完了するには**

1. **管理者**または **clusteradmin** として RES にサインインします。

1. **環境管理** ⇒ **一般設定** ⇒ **ID プロバイダー**に移動します。  
![シングルサインオンのセクションを含む、RES の環境設定ユーザーインターフェイス。](http://docs.aws.amazon.com/ja_jp/res/latest/ug/images/environment-settings.png)

1. **Single Sign-On** で、ステータスインジケータの横にある編集アイコンを選択して Single **Sign-On Configuration **ページを開きます。  
![RES の Single Sign On Configuration ユーザーインターフェイス。](http://docs.aws.amazon.com/ja_jp/res/latest/ug/images/sso-config.png)

   1. **ID プロバイダー**で、**SAML** を選択します。

   1. **プロバイダー名**には、ID プロバイダーの一意の名前を入力します。
**注記**  
次の名前は使用できません。  
Cognito
IdentityCenter

   1. **メタデータドキュメントソース**で、適切なオプションを選択し、メタデータ XML ドキュメントをアップロードするか、ID プロバイダーから URL を指定します。

   1. **プロバイダー E メール属性**には、テキスト値 を入力します`email`。

   1. [**Submit**] を選択してください。

1. **環境設定**ページを再ロードします。設定が正しい場合、シングルサインオンが有効になります。

## 非本番環境での ID プロバイダーの設定
<a name="configure-id-federation-demo-env"></a>

提供された[外部リソース](prerequisites.md#external-resources)を使用して非本番環境の RES 環境を作成し、IAM Identity Center を ID プロバイダーとして設定した場合は、Okta などの別の ID プロバイダーを設定することをお勧めします。RES SSO 有効化フォームは、次の 3 つの設定パラメータを要求します。

1. プロバイダー名 — 変更できません

1. メタデータドキュメントまたは URL — 変更可能

1. プロバイダー E メール属性 — 変更可能

**メタデータドキュメントとプロバイダー E メール属性を変更するには、次の手順を実行します。**

1.  [Amazon Cognito コンソール](https://console.aws.amazon.com/cognito/home)に移動します。

1. ナビゲーションから、**ユーザープール**を選択します。

1. ユーザープールを選択すると、**ユーザープールの概要**が表示されます。

1. **サインインエクスペリエンス**タブから、**フェデレーティッド ID プロバイダーのサインインに移動**し、設定された ID プロバイダーを開きます。

1. 通常、メタデータを変更し、属性マッピングを変更しないだけで済みます。**属性マッピング**を更新するには、**編集** を選択します。**メタデータドキュメント**を更新するには、**メタデータの置き換え**を選択します。  
![Amazon CognitoUser プールの概要。](http://docs.aws.amazon.com/ja_jp/res/latest/ug/images/res-attributemetadata.png)

1. 属性マッピングを編集した場合は、DynamoDB で`<environment name>.cluster-settings`テーブルを更新する必要があります。

   1. DynamoDB コンソールを開き、ナビゲーションから**テーブル**を選択します。

   1. `<environment name>.cluster-settings` テーブルを検索して選択し、**アクション**メニューから**項目を探索**を選択します。

   1. **スキャンまたはクエリ項目**で、**フィルター**に移動し、次のパラメータを入力します。
      + **属性名** — `key`
      + **値** — `identity-provider.cognito.sso_idp_provider_email_attribute`

   1. **[Run]** (実行) を選択します。

1. **返された項目** で`identity-provider.cognito.sso_idp_provider_email_attribute`文字列を検索し、**編集** を選択して、Amazon Cognito の変更と一致するように文字列を変更します。  
![Amazon Cognito DynamoDB で返されるフィルタと項目を更新します。](http://docs.aws.amazon.com/ja_jp/res/latest/ug/images/res-scanqueryitems.png)

## SAML IdP の問題のデバッグ
<a name="configure-id-federation_debug"></a>

**SAML トレーサー** — Chrome ブラウザでこの拡張機能を使用して SAML リクエストを追跡し、SAML アサーション値を確認できます。詳細については、Chrome ウェブストアの[「SAML トレーサー](https://chromewebstore.google.com/detail/saml-tracer/mpdajninpobndbfcldcmbpnnbhibjmch?pli=1)」を参照してください。

**SAML 開発者ツール** — OneLogin には、SAML エンコードされた値をデコードし、SAML アサーションの必須フィールドをチェックするために使用できるツールが用意されています。詳細については、OneLogin ウェブサイトの[「Base 64 Decode \+ Inflate](https://www.samltool.com/decode.php)」を参照してください。

**Amazon CloudWatch Logs** — CloudWatch Logs で RES ログのエラーや警告を確認できます。ログは、 という名前のロググループにあります`/{{res-environment-name}}/cluster-manager`。

**Amazon Cognito ドキュメント** — Amazon Cognito との SAML 統合の詳細については、「Amazon *Amazon Cognito デベロッパーガイド*」の[「ユーザープールへの SAML ID プロバイダーの追加](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pools-saml-idp.html)」を参照してください。