Amazon Cognito ユーザープールのフェデレーションと連携するように Amazon EC2 Windows インスタンスに AD FS を設定するにはどうすればよいですか?

最終更新日: 2020 年 8 月 31 日

Amazon Cognito ユーザープールでセキュリティアサーションマークアップ言語 2.0 (SAML 2.0) ID プロバイダー (IdP) として Active Directory Federation Services (AD FS) を使用したいと考えています。Amazon Elastic Compute Cloud (Amazon EC2) Windows インスタンスに AD FS を設定するにはどうすればよいですか?

簡単な説明

Server Manager を使用して、EC2 Windows インスタンスに AD FS サーバーとドメインコントローラーを設定します。

解決方法

始める前に、Amazon Cognito ユーザープールを使用して AD FS を SAML ID プロバイダーとして設定するにはどうすればよいですか? の指示を参照してください。 この記事の設定を完了するには、アプリクライアントを含む Amazon Cognito ユーザープールが必要です。

自身が所有するドメイン名も必要です。自身のドメインを所有していない場合は、Amazon Route 53 を使用して新しいドメインを登録するかまたは別のドメインネームシステム (DNS) サービスを登録することが可能です。

EC2 Windows インスタンスを設定して起動する

  1. [Amazon EC2 コンソール] を開きます。
  2. コンソールダッシュボードの [Launch Instance] (インスタンスを起動) を選択して、Launch Instance ウィザードを起動します。
  3. [Choose an Amazon Machine Image (AMI)] (Amazon マシンイメージ (AMI) の選択) ページで、Microsoft Windows Server 2016 Base AMI などの Windows Server 用の AMI を選択します。詳細については、Windows AMI の検索を参照してください。
  4. [Configure Security Group] (セキュリティグループの設定) ページで、インスタンスのセキュリティグループを作成し、次のルールをセキュリティグループに追加します。
    タイプ: RDP
    ソース: CIDR 表記の IP アドレス (a.b.c.d/z)、または CIDR ブロック
    注意: [Source] (ソース) で指定した IP アドレスまたはブロックについては、既知の許可された IP アドレスのセットを使用することをお勧めします。
    タイプ: HTTP
    ソース: Anywhere
    タイプ: HTTPS
    ソース: Anywhere
    詳細については、Windows インスタンス用 Amazon EC2 セキュリティグループおよびセキュリティグループへのルールの追加を参照してください。
  5. [Review Instance Launch] (インスタンス作成の確認) ページで、[Launch] (作成) を選択します。
  6. [Select an existing key pair or create a new key pair] (既存のキーペアを選択するか、新しいキーペアの作成) ダイアログで、指示に従って既存のキーペアを選択するか、新しいキーペアを作成します。詳細については、Amazon EC2 キーペアと Linux インスタンスを参照してください。
    重要: キーペアの秘密鍵 .pem ファイルを保存してください。EC2 Windows インスタンスに接続するためにそれを使用します。
  7. [インスタンスの起動] を選択します。

Elastic IP アドレスを EC2 Windows インスタンスに関連付ける

  1. まだ行っていない場合は、AWS アカウントに Elastic IP アドレスを割り当てます
  2. Elastic IP アドレスを EC2 Windows インスタンスに関連付けて、永続的なパブリック IP アドレスを取得します。

Elastic IP アドレスを使用してドメインのレコードを作成する

Active Directory Domain Services (AD DS) に使用するドメインには、値として Elastic IP アドレスを含む A (IPv4 アドレス) レコードが必要です。EC2 Windows インスタンスに関連付けられている Elastic IP アドレスを使用して、ドメイン用にこのレコードを作成します。

詳細については、Amazon Route 53 コンソールを使用してレコードを作成するを参照してください。

EC 2 Windows インスタンスに AD DS、ウェブサーバー (IIS)、および AD FS をインストールする

  1. EC2 Windows インスタンスに接続します
  2. Windows では、Server Manager を開き、Add Roles and Features Wizard を使用して以下のロールをインストールします。
    Active Directory Domain Services
    Active Directory Federation Services
    ウェブサーバー (IIS)

ウィザードの使用方法の詳細については、Microsoft Docs ウェブサイトの役割、役割サービス、または機能のインストールまたはアンインストールを参照してください。

EC2 Windows インスタンスに AD DS を設定する

  1. サーバーマネージャーで、Active Directory Domain Services Configuration Wizard を使用して AD DS を設定します。詳細については、Microsoft Docs ウェブサイトのサーバーマネージャーを使用して AD DS をインストールするを参照してください。サーバーマネージャーを使用して AD DS をインストールするにある指示に従い、ステップ 9 から開始してください。
    注意: ウィザードの [Deployment Configuration] (デプロイ設定) ページで、ドメインを入力します (例: example.com)。
  2. 設定のインストールが完了すると、サインアウトしようとしていることを Windows が通知してきます。これは想定されたとおりです。サーバーが再起動するまで数分待ってから、EC2 Windows インスタンスに再接続します。

IIS で http サイトバインディングを設定する

サーバーマネージャーで IIS を使用して、ウェブサイトの http サイトバインディングを編集します。詳細については、Microsoft Docs ウェブサイトのサイトにバインディング情報を追加する方法を参照してください。

重要: IIS で http バインディングを編集するときは、ホスト名にドメイン名を入力します (例: example.com)。ただし、IP アドレス (すべて未割り当て) ポート (80) は変更しないでください。

EC2 Windows インスタンスを設定してファイルのダウンロードを行えるようにする

詳細については、Internet Explorer を使用してファイルのダウンロードを許可するように EC2 Windows インスタンスを設定するにはどうすればよいですか? を参照してください。

ドメインのデジタル証明書をリクエストする

IIS ウェブサイトの HTTPS バインディングには SSL サーバー証明書が必要です。信頼できるサードパーティー証明書作成ツールをダウンロードし、それを使用してドメインのサードパーティー証明書をリクエストします。

詳細については、Microsoft Docs ウェブサイトの証明書の選択を参照してください。

(オプション) IIS で HTTPS サイトバインディングを設定する

使用した証明書作成ツールで IIS に https サイトバインディングが自動的に追加されない場合は、以前の http の場合と同様に、サイトバインディングを手動で追加します。

詳細については、Microsoft Docs ウェブサイトのSSL バインディングの作成を参照してください。

EC2 Windows インスタンスで AD FS を設定する

サーバーマネージャーで、AD FS Federation Server Configuration Wizard を使用して、EC2 Windows インスタンスをフェデレーションサーバーとして設定します。詳細については、Microsoft Docs ウェブサイトの Windows Server 2008 または 2008 R2 ドメインコントローラを参照してください。

注意: ウィザードの [Specify Service Account] (サービスアカウントを指定) ページで、[Select User or Service Account] (ユーザーまたはサービスアカウントを選択) ダイアログボックスが表示されたら、Administrator という名前のユーザーを選択します。そしてリモートデスクトップに使用したパスワードを入力して EC2 Windows インスタンスに接続します

Active Directory にユーザーを作成する

Active Directory ユーザーとコンピュータツールを使用して、Active Directory に新しいユーザーを作成します。新しいユーザーを Administrators グループに追加します。

詳細については、Microsoft Docs ウェブサイトのユーザーの作成およびグループへの追加を参照してください。

Active Directory ユーザーの電子メールアドレスを追加する

  1. 新しいユーザーを作成した後、Active Directory ユーザーとコンピュータツールで [Users] (ユーザー) をダブルクリックしてユーザーのリストを開きます。
  2. ユーザーの一覧で、作成したユーザーを探します。ユーザーを右クリックしてコンテキストメニューを開き、[Properties] (プロパティ) を選択します。
  3. ユーザー名の [Properties] (プロパティ) ウィンドウで、[E-mail] (E メール) に、そのユーザーの有効な電子メールアドレスを入力します。この電子メールアドレスは後で SAML アサーションに含まれます。

詳細については、Microsoft Docs ウェブサイトの「General Property Page」を参照してください。

AD FS にクレームベースの証明書利用者信頼を追加する

注意: この部分には、Amazon Cognito コンソールにある Amazon Cognito ユーザープールの情報が必要です。詳細については、ユーザープールへの SAML ID プロバイダーの追加を参照してください。

サーバーマネージャーで、Add Relying Party Trust Wizard を使用して、クレームベースの証明書利用者信頼を追加します。
ウィザードの [Configure URL] (URL の設定) ページで、[Enable support for the SAML 2.0 WebSSO protocol] (SAML 2.0 WebSSO プロトコルのサポートを有効にする) を選択します。[Relying party SAML 2.0 SSO service URL] (証明書利用者 SAML 2.0 SSO サービス URL) には、https://yourDomainPrefix.auth.region.amazoncognito.com/saml2/idpresponse のようにフォーマットされたアサーションコンシューマエンドポイントの URL を入力します。
注意: yourDomainPrefix は、Amazon Cognito ユーザープールのドメインプレフィックスに置き換えてください。リージョン をユーザープールの AWS リージョン (例えば、「us-east-1」) に置き換えます。

ウィザードの [Configure Identifiers] (ID の設定) ページで、証明書利用者信頼 ID に、次の URN を入力します。urn:amazon:cognito:sp:yourUserPoolID
注意: yourUserPoolID を Amazon Cognito ユーザープールの ID に置き換えます (たとえば、「us-east-1_g2zxiEbac」)。

詳細については、Microsoft Docs ウェブサイトの証明書利用者信頼を手動で作成するにはを参照してください。

AD FS でアプリケーションのクレーム発行ポリシーを編集する

LDAP 属性をクレームとして送信するために作成した信頼にルールを追加します。Add Relying Party Trust Wizard を使用してルールを追加します。[ルールの設定] ページで、次の手順を実行します。

  • [クレームルール名] には、E メールを入力します。
  • [属性ストア] では、Active Directory を選択します。
  • [LDAP 属性] では、電子メールアドレスを選択します。
  • [Outgoing Claim Type] (送信クレームタイプ) では、[E-Mail Address] (電子メールアドレス) を選択します。

詳細については、Microsoft Docs ウェブサイトのWindows Server 2016 での証明書利用者信頼のクレームとして LDAP 属性を送信するためのルールを作成するを参照してください。

注意: SAML レスポンスの SAML アサーションで、E メール ID と名前 ID の両方のクレームをユーザーの電子メールアドレスとして表示するには、Active Directory からの着信電子メールアドレスを発信の名前 ID クレームにマッピングしてください。この方法を使用する場合は、代わりに LDAP 属性をクレームとして送信するためのルールを作成してください。詳細については、Microsoft Docs ウェブサイトのWindows Server 2012 R2 のクレームとして LDAP 属性を送信するためのルールを作成するを参照してください。

サーバーの SAML IdP メタデータ URL をテストする

このメタデータドキュメントのエンドポイント URL をウェブブラウザに入力し、example.com をお使いのドメインに置き換えます。

https://example.com/federationmetadata/2007-06/federationmetadata.xml

ファイル federationmetadata.xml をダウンロードするように指示された場合は、すべてが正しく設定されています。ここで使用した URL を書き留めます。または、.xml ファイルをダウンロードします。Amazon Cognito コンソールで SAML を設定するには、URL またはファイルが必要です。詳細については、サードパーティーの SAML ID プロバイダーと Amazon Cognito ユーザープールを統合するを参照してください。

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

この記事のすべての手順を完了したら、Amazon Cognito コンソールでセットアップを続けます。詳細については、Amazon Cognito ユーザープールで AD FS を SAML ID プロバイダーとして設定するにはどうすればよいですか? を参照してください。