Active Directory Federation Services(AD FS)の環境が必要になったので、EC2インスタンス上に環境を作った。
手順を覚え書きしておく。

とりあえず動く環境を用意するのが目的だったので、AD FSの環境をパブリックサブネットに置いてたりするし、まったく良い方法ではない。
AWS上でのAD FS環境については下記のようなドキュメントがあるみたい。
AWS での Web アプリケーションプロキシおよび AD FS

EC2インスタンスを立てる

環境を、EC2インスタンス上に作る。
Microsoft Windows Server 2012 R2のAMIを使う。
インスタンスタイプは、リッチにm4.xlarge。

セキュリティグループは、手元からのRDPを開けつつ、HTTPSを開けとく。

ドキュメントとしては下記。
Amazon EC2 Windows インスタンスの開始方法

Active Directory Domain Services(AD DS)の環境を作る

『ひと目でわかる Active Directory Windows Server 2012版』という本がわかりやすくて参考にしまくった。

ネットワーク設定の確認

  1. PowerShellを開く。
  2. 下記のコマンドを叩く。
PS C:\Users\Administrator> ipconfig /all
  1. 実行結果のうち、下記の項目をメモっておく。

    • IPv4 Address
    • Subnet Mask
    • Default Gateway
    • DNS Servers

静的IPアドレスの設定

  1. [Server Manager]を開く
  2. 左メニューの[Dashboard]をクリック
  3. [Configure this local server]をクリック
  4. [PROPERTIES]の[Ethernet]の右側にある、[IPv4 address assigned by DHCP, IPv6 enabled]をクリック
  5. [Ethernet]を右クリック
  6. [Properties]をクリック
  7. [Internet Protocol Version 4]をダブルクリック
  8. [User the following IP address]のラジオボタンを選択
  9. ipconfigコマンドで取得しといた内容を埋める
  10. [OK] -> [OK]

AD DSの役割の追加

  1. [Server Manager]を開く
  2. 左メニューの[Dashboard]をクリック
  3. [Add roles and features]をクリック
  4. [Next]
  5. [Role-based or feature-based installation] -> [Next]
  6. [Select a server from the server pool] -> Server Poolから、設定した静的IPアドレスを持つものを選択 -> [Next]
  7. [Active Directory Domain Services]のチェックボックスをチェック -> [Add Features] -> [Next]
  8. [Next]
  9. [Next]
  10. [Install] -> [Close]

フォレストルートドメインをインストール

  1. [Server Manager]を開く
  2. 画面右上辺りの旗アイコンをクリック
  3. [Post-deployment Configuration]の項目の、[Promote this server to a domain controller]をクリック
  4. [Add a new forest]を選択
  5. ドメイン名を入力。とりあえず[domain.test]にしておく。.testはテスト用ドメイン。 -> [Next]
  6. パスワードを入力 -> [Next]
  7. [Next]
  8. [Next]
  9. [Next]
  10. [Next]
  11. [Install] -> [Close]

組織単位(OU)を作る

  1. [Server Manager]を開く
  2. 画面右上の[Tool]をクリック
  3. [Active Directory Administrative Center]をクリック
  4. 左メニューの[domain (local)]をクリック
  5. 画面右側の[Tasks]の、[domain (local)]の下にある[New]をクリック
  6. [Organizational Unit]をクリック
  7. [Name]を入力 -> [OK]

ユーザーを作る

  1. [Server Manager]を開く
  2. 画面右上の[Tool]をクリック
  3. [Active Directory Administrative Center]をクリック
  4. 左メニューの[domain (local)]をクリック
  5. 作ったOUをクリック
  6. 画面右側で、作ったOU名の下にある[New]をクリック
  7. [User]をクリック
  8. [Full name]、[User UPN logon]、[Password]を入力。[User SamAccountName lo…]は自動で埋められる。[Password options]で、[Other password options]を選択しておく。後でSAMLをテストする時のために、E-mailも適当に入れておく。 -> OK
  9. ([User UPN logon]はサインインで使うのでメモっておく)

Active Directory Federation Services(AD FS)の環境を作る

KDSルートキーを作成する

  1. PowerShellを開く。

  2. 下記のコマンドを叩く。

     PS C:\Users\Administrator> Add-KdsRootKey –EffectiveTime ((get-date).addhours(-10))
    

下記ページを参考にさせていただいた。
Windows Server 2012 R2によるADFS構築

SSL証明書を取得する

AD FSの環境とSSLで通信するための証明書が必要なので取得する。
下記のような手順でやった。

  1. ドメインをAmazon LinuxのEC2インスタンスに向ける

  2. Amazon Linuxのインスタンス上でLet’s Encryptを使って証明書を取得

     $ sudo yum install httpd -y
     $ sudo service httpd start
    
     $ sudo yum install git -y 
     $ sudo git clone https://github.com/certbot/certbot
     $ cd certbot/
    
     $ sudo vim /etc/httpd/conf/httpd.conf
     # 下記ページの手順を行う
     # https://freepc.jp/encrypt
    
     $ sudo ./letsencrypt-auto --debug
    
     # 下記ディレクトリに証明書が保存されている
     # /etc/letsencrypt/live/[ドメイン名]
    
  3. 作った証明書をもとに、openssl pkcs12でPFX形式の証明書を作る。下記のサイトを参考にさせていただいた。
    Let’s Encryptを使ってADFS用の証明書を発行 【Part 2】

     $ sudo su
     $ cd /etc/letsencrypt/live/[ドメイン名]
     $ openssl pkcs12 -export -in fullchain.pem -inkey privkey.pem -out adfs.pfx
     $ mv adfs.pfx /home/ec2-user/
    
  4. 作った証明書は手元に落として、AD FS環境のEC2インスタンスに転送する。

  5. ドメインを、ADFS環境に向ける。

AD FSの役割の追加

  1. [Server Manager]を開く
  2. 左メニューの[Dashboard]をクリック
  3. [Add roles and features]をクリック
  4. [Next]
  5. [Role-based or feature-based installation] -> [Next]
  6. [Select a server from the server pool] -> Server Poolから、設定した静的IPアドレスを持つものを選択 -> [Next]
  7. [Active Directory Federation Services]のチェックボックスをチェック -> [Next]
  8. [Next]
  9. [Next]
  10. [Install] -> [Close]

AD FSの役割の追加(Post-deployment Configuration)

  1. [Server Manager]を開く
  2. 画面右上辺りの旗アイコンをクリック
  3. [Post-deployment Configuration]の項目の、[Configure the federation service on this server]をクリック
  4. [Next]
  5. [Next]
  6. [Import]をクリックして、転送したPFX形式の証明書を選択 -> [Federation Service Display Name]を適当に入力 -> [Next]
  7. [Create a Group Managed Service Account]をチェック(KDSルートキーを作成する手順をしていないと指定できない) -> [Account Name]を入力 -> [Next]
  8. [Next]
  9. [Next]
  10. [Configure] -> [Close]

サインインできることを確認する

  1. ブラウザで下記URLにアクセスする。
    https://[ドメイン名]/adfs/ls/IdpInitiatedSignOn.aspx
  2. 表示される[サインイン]ボタンをクリック
  3. 作成したユーザーの[User UPN logon]と[Password]を入力
  4. [サインインしています。]と表示される。

補足: イベントログを見る

サインインでエラーが起きたりしたら、イベントログでエラー内容を確認できる。

  1. [Server Manager]を開く
  2. 画面右上の[Tool]をクリック
  3. [Event Viewer]をクリック
  4. 左のツリーの[Applications and Services Logs/AD FS/Admin/をクリック