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

最終更新日: 2021 年 9 月 27 日

Amazon Cognito ユーザープールで Security Assertion Markup Language 2.0 (SAML 2.0) アイデンティティプロバイダー (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. [Launch Instances] (インスタンスを起動) を選択します。

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 フェデレーションサービス
    ウェブサーバー (IIS)

ウィザードの使用方法の詳細については、Microsoft ウェブサイトの Install or uninstall roles, role services, or features を参照してください。

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

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

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

Server Manager で IIS を使用して、ウェブサイト用の http サイトバインディングを編集します。詳細については、Microsoft ウェブサイトの How to add binding information to a site を参照してください。

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

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

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

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

詳細については、Microsoft ウェブサイトの Choosing a certificate を参照してください。

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

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

詳細については、Microsoft ウェブサイトの Create an SSL binding を参照してください。

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

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

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

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

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

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

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

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

詳細については、Microsoft ウェブサイトの 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 ウェブサイトの To create a claims aware relying party trust manually を参照してください。

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

LDAP 属性をクレームとして送信するために作成した信頼にルールを追加します。証明書利用者信頼の追加ウィザードを使用してルールを追加します。[ルールの設定] ページで、次の手順を実行します。

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

詳細については、Microsoft ウェブサイトの To create a rule to send LDAP attributes as claims for a relying party trust in Windows Server 2016 を参照してください。

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

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

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

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

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

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

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