Active Directory Federation Service
ADFSとよく略されます。
ADFSはActive Directoryの機能の一つであり、Active Directory上のユーザー情報で外部サービスを横断的に利用可能にするためのシングルサインオン機能を提供するサービスです。
外部(インターネット上)でホスティングされている様々なサービスとあらかじめ証明書の交換などの設定を済ませておくことで、Active Directoryにログインした時点で、そのサービスを利用できる状態にすることができます。
このような機能を一般的に、IDフェデレーションといい、ADFSではこのIDフェデレーション機能を適用するIDP(Identity Provider)として機能します。
ここでは、ADFSのインストールについてまとめます。
詳細な設定方法などは別途まとめたいと思います。
グループサービスアカウントを作成
グループ管理サービスアカウントはgMSAと呼ばれます。
ドメイン内の特定サーバーのみで利用可能なサービスアカウントになります。
gMSAを利用せずに、サービス用ユーザーを作成することでも構築できますが、パスワード管理が存在しない分セキュアな管理方法となります。
Powershellを起動し、下記コマンドを実行します。
このコマンドでは、KDSルートキーを生成します。
1 |
Add-KdsRootKey -EffectiveTime ((Get-Date).addhours(-10)) |
KDSルートキーが生成されたことを確認します。
1 |
Get-KdsRootKey |
続いて、gMSAを作成します。
この際、-DNSHostNameにこのサービスアカウントを利用するホスト名を指定します。
1 |
New-ADServiceAccount -Name 'adfs-service' -DNSHostName 'WIN-CI91DGA985J' |
コンソールを見るとサービスアカウントが生成されていることが分かります。
SSL証明書の作成
下記コマンドでは、自己証明書を作成しています。
インターネットに公開する場合は、公的な認証機関から発行される証明書が望ましいです。
または、システム内の認証局が発行するものでも、構成することはできますが、クライアントマシンにCA証明書をインストールする手間が出てきます。
SubjectとDnsName、両方のプロパティを指定していますが、ADFSではDnsNameプロパティがないと組み込むことができないため、付与しています。
1 2 3 4 5 6 7 8 9 10 11 |
$params = @{ Subject = 'adfs.vamdemic.local' DnsName = 'adfs.vamdemic.local' CertStoreLocation = 'cert:\LocalMachine\My' KeyAlgorithm = 'RSA' KeyLength = 2048 KeyExportPolicy = 'Exportable' NotAfter = (Get-Date).AddYears(5) } $cert = New-SelfSignedCertificate @params $cert |
証明書ストア – ローカルコンピューター – 個人 を確認すると、生成した証明書が登録されていることが分かります。
「信頼されていません。」と表示されているのは、この証明書が「信頼されたルート証明機関」にインストールされていないためです。
ADFSサービスのインストール
サーバーマネージャー – 役割と機能の追加 を選択します。
ウィザードが表示されるので、「次へ」を選択します。
「役割ベースまたは機能ベースのインストール」が選択された状態で、「次へ」を選択します。
「サーバープールからサーバーを選択」が選択された状態で、「次へ」を選択します。
「Active Directory Federation Service」を選択し、「次へ」を選択します。
機能は何も選択せずに、「次へ」を選択します。
ADFSについての確認画面が表示されるので、そのまま「次へ」を選択します。
「必要に応じて対象サーバを自動的に再起動する」にチェックを入れ、「インストール」を選択します。
インストールが開始されます。
無事、インストールが完了しました。
ADFS構成の設定
上記手順から続いて、「このサーバーにフェデレーションサービスを構成します」を選択します。
最初に構成するので、「フェデレーションサーバーファームに最初のフェデレーションサーバーを作成します」にチェックが入った状態で、「次へ」を選択します。
ドメイン管理者権限を持っているユーザーを指定します。
Administratorのままでも問題ありません。
以下の通りで設定します。
SSL証明書:上記手順で生成した証明書
フェデレーションサービス名:証明書を選択すると自動的に指定される
フェデレーションサービスの表示名:任意の表示名(サインイン画面のタイトルに表示されます)
最初の手順で作成した、ドメインサービスアカウントを指定して、「次へ」を選択します。
このウィザードで作成することもできますが、KDSルートキーはあらかじめ作成しておく必要があります。
「Windows Internal Databaseを使用してサーバーにデータベースを作成します」にチェックが入った状態で、「次へ」を選択します。
オプションの確認画面が表示されるので、「次へ」を選択します。
前提条件の確認画面が表示されるので、問題がなければ「構成」を選択します。
KDSルートキーの警告メッセージが表示されていますが、最初にキー作成で指定した時間が10時間前なためです。
特段問題はないので、そのまま次へ進んで大丈夫です。
「このサーバーは正常に構成されました」と表示されれば、無事構成完了です。