はじめに
今回は、AD FS検証環境の構築に関しての記事を書かせていただきます。
AD FS(Active Directory Federation Service)とは、Windows Serverの機能としてインストール可能なサービスです。その環境下ではSSO等を提供することができるようになります。
しかし、一般的な構築手順は複雑で工数もかかるものでした。そのため検証になかなか着手できなかった方もいらっしゃるかもしれません。
ここではAzure AD ConnectのオプションとしてAD FSのインストールを選択すれば簡単に環境構築ができることをご紹介します。
事前準備と構成
今回のAD FS環境は、Azure 上のIaaSとしてWindows Server 2019 を4台で構成しています。
独自ドメイン名としてフリーのダイナミックDNSを採用し、外部公開用のAレコードを設定しています。
また、構築に必要なSSL証明書の発行元としてAD CS(証明書サービス)を利用しました。
検証に利用可能な公的SSL証明書があれば、証明書を作成する手順は省略可能となります。
- AD(Active Directory) 用のDC(ドメインコントローラ) 1台
- AD CS サーバー (エンタープライズCAとして設定)1台
- AD JoinしたWindows Server 2台
- 接続テスト用Windows 10端末 1台
構成イメージ
手順
AD Join したサーバーを含めすべてのサーバーでFirewallを無効化してください。
その後の手順概要としては、以下となります。
1.SSL証明書の発行とエクスポート(公的のSSL証明書が使える場合は省略してください。)
2.Azure AD Connect のインストールおよび設定
3.接続テスト端末で動作確認
1.SSL証明書の発行とエクスポート
AD CS 上で作業を行います。
(1) スタートメニューの「証明機関」から「証明書テンプレート」の右クリックメニュー >「管理」をクリック
「証明書テンプレートコンソール」で「Webサーバー」を選択し右クリックメニュー >「テンプレートの複製」をクリックし、以下の各タブで項目を編集
「全般」タブ>テンプレート表示名:SSL Certificate(テンプレート名は自動入力)
「要求処理」タブ>「秘密キーのエクスポートを許可する」にチェック
「セキュリティ」タブ>追加>「オブジェクトの種類」で「コンピューター」を選択
4台のサーバーを追加し各サーバーの「アクセス許可」に「登録」を追加
設定後、「証明書テンプレート」を閉じる。
(2) 「証明機関」に戻り「証明書テンプレート」の右クリックメニュー >「新規作成」>「発行する証明書テンプレート」をクリック
「SSL Certificate」を選択し「OK」
(3) 「コマンドプロンプト」を管理者で実行し「Certlm」と入力し「証明書スナップイン」を起動
「個人」>「証明書」の右クリックメニュー >「すべてのタスク」>「新しい証明書の要求」をクリック
「証明書の登録」ウィザードを実行し「Active Directory 登録ポリシー」を選択し「次へ」
「SSL Certificate」にチェック>「この証明書を登録するには情報が・・」をクリック
「サブジェクト」タブのみ、以下の項目を追加
サブジェクト名の種類>「共通名」を選択、値にAD FSの公開名「例:adfs.sbcs50xxxx.jp」を「追加」
別名の種類>「DNS」を選択、値にAD FSの公開名「例:adfs.sbcs50xxxx.jp」を「追加」
(4) 「証明書スナップイン」で「個人」>「証明書」>作った証明書「例:adfs.sbcs50xxx.jp」を選択
右クリックメニュー >「すべてのタスク」>「エクスポート」をクリック
「証明書エクスポートウィザード」>「開始」>「はい、秘密キーをエクスポートします」を選択しパスワード付きでエクスポートを実行
このファイルは、DCにコピーしておいて下さい。
(5) 「証明書スナップイン」で「信頼されたルート証明機関」>「証明書」
AD CSの発行したルート証明書(通常サーバー名が含まれています)を選択し右クリックメニュー >「すべてのタスク」>「エクスポート」をクリックし、ウィザードに従ってエクスポートを実行
このファイルは、接続テスト用端末にコピーしておいて下さい。
2.Azure AD Connect のインストールおよび設定
DC上で作業
以下の作業は、すべてDC上で行います。(コピーしたSSL証明書を利用します。)
(1) Azure Portal から「Azure AD Connectをダウンロード」をクリック
(2) ダウンロードしたAzure AD Connectのインストールを実行
「必須コンポーネント」で何もチェックをせずに、「インストール」をクリック
ユーザーサインインで、「AD FSとのフェデレーション」を選択し「次へ」
(3) 「Azure ADに接続」でAzure ADのグローバル管理者の資格情報を入力し「次へ」
「ディレクトリの接続」で、ADのフォレスト名(AD名)を入力し、「ディレクトリの追加」をクリック
(4) 「ADフォレストアカウント」では「新しいADアカウント」を選択後、ADの管理者情報を入力し「OK」
構成済みディレクトリに追加されたことを確認し「次へ」
「Azure AD サインイン」の構成で「一部のUPN サフィックスが・・」にチェック
(5) 「ドメインとOUのフィルタリング」ではそのまま「次へ」
「ユーザーの識別」もそのまま「次へ」
「フィルタリング」もそのまま「次へ」
「オプション機能」では「パスワードハッシュ同期」と「パスワードの書き戻し」にチェックを入れて「次へ」
「ドメイン管理者の資格情報」でADの管理者情報を入力し「次へ」
(6) 「AD FSファーム」で、「新しいAD FSファームを構成する」を選択し、準備したSSL証明書を選択しパスワードを入力
(7) 「AD FSサーバー」を指定して「次へ」
「Web アプリケーションサーバー」を指定して「次へ」
(8) 「AD FSサービスアカウント」で「マネージドサービスアカウントグループを作成します」を選択し「エンタープライズ管理者ユーザー名」と「パスワード」を入力し「次へ」
「Azure ADドメイン」で、フェデレーションする「ドメイン」を選択して「次へ」
(9) 「構成の準備完了」で「インストール」をクリック
以上で、設定は完了です。
(10) 外部DNSと内部DNSの設定完了している場合は、2つにチェックを入れて確認することが可能
(IPv6の警告は無視してかまいません)
3.接続テスト端末で動作確認
AD CSでSSL証明書を発行した場合は、接続元端末にルート証明書をインストールします。(コピーしたルート証明書を利用します)
接続テストのサイトとしてhttps://portal.azure.com を使います。AD連携されたユーザーでサインインして、AD FSにリダイレクト後に認証が通れば、フェデレーションの動作確認は完了です。
まとめ
AD CSによるSSL証明書の作成の手順が長かったので、簡単さが薄れているように感じています。
しかし、Azure AD Connectを使えば、AD FSやWAPの機能を各サーバーにサインインすることなく簡単にインストールから設定まで可能となります。
今回は冗長化なしの簡易的な構成でしたが、冗長化環境にも対応しているようなので試して頂くことも面白いと思います。
ここで、Azure AD Connectのインストールの気づきも記載させていただきます。ウィザードの途中でAD DSの管理者の入力例が「CONTOS.COM\ユーザー名」(UPNサフィックスを使用)となっています。ここを「CONTOSO\ユーザー名」(NETBIOSドメイン名を利用)の形式の入力だとエラー、UPNサフィックスの形式に書き直せば解決、ということが何度かありました。もし同様なエラーに遭遇されたならば、一度試して頂くこともよいかもしれません。
最後にですが、AVD(旧WVD)においてAD FSによるSSOがGAされています。こちらの動作確認が取れれば、続きとしてご紹介させて頂きたいと考えております。
他のおすすめ記事はこちら
著者紹介
SB C&S株式会社
ICT事業本部 技術本部 第1技術部 4課
光永 正明