Windows Server 2016 ADFSを利用したアクセス制御

皆さんこんにちは。国井です。

Windows Server 2016もリリースされてから時間も経過していますし、そろそろ既存のADFSもWindows Server 2016に切り替えたい、というニーズもボチボチ出てくるころではないかと思います。

私自身も直近では、お仕事の関係でADFSよりもAzure ADを扱うことのほうが多かったのですが、Windows Server 2016のADFSについて、お話を伺うことが出てくるようになってきたので、当ブログでも少しずつ扱っていきたいと思います。

今日はクレームルールに関するお話です。
クレームルールと言えば、今まではc:[xxxx]=>issue(xxx);みたいな言語を記述するという、とても敷居の高いものでした。
Windows Server 2016でも、以前のバージョンのADFSからアップグレードされてきたときには、ご覧のような形でクレームルールを引き続き利用することができます。(下の画面で、[アクセス制御ポリシーの使用]というリンクをクリックすると、クレームルール言語は使えなくなります)

image

ですが、Windows Server 2016ではクレームルール言語を使わなくてもアクセス制御のための条件が設定できるようになりました。
(受け付け変換規則と発行変換規則は、引き続きクレームルール言語とを使います)
Windows Server 2016からは発行承認規則のクレームルールは「アクセス制御ポリシー」と呼ばれるようになっており、あらかじめ[アクセス制御ポリシー]を作成しておき、作成したアクセス制御ポリシーを発行承認規則の中で選択する、というスタイルになっています。
ですので、今までのように発行承認規則のなかではルールは書けなくなりました。(下の画面のように選択するだけの画面に変わっています。)

image

アクセス制御ポリシーは、ADFS管理ツールの中に[アクセス制御ポリシー]という設定項目があり、[アクセス制御ポリシー]項目で集中管理しています。項目を見てみると、デフォルトでいくつかのポリシーが既に用意されていることがわかります。

image

もし、この中にない項目を作成したい場合には、新しくアクセス制御ポリシーを追加し、その中でルールを定義します。
例えば、xxxグループのメンバーだけがアクセスできるルールを作りたい、と言ったら、[アクセス制御ポリシーの追加]から[追加]をクリックして、[規則エディター]を開き、[規則エディター]の中でルールを作成します。
[規則エディター]を使えば、今までクレームルール言語で書いていた内容がGUIで実現できますが、x-ms-client-applicationクレームを使って条件を書きたい!みたいな画面の中にない要望がある場合は[特定要求が要求にある]という項目を使って設定してください。

image

[規則エディター]画面で、[OK]をクリックすると、下の画面のようにルールが追加されます。
なお、ルールは複数作ることができ、[規則エディター]でルールを複数作成すればAND条件、[アクセス制御ポリシーの追加]でルールを複数作成すればOR条件になります。

image

アクセス制御ポリシーを作成したら、後は証明書利用者信頼の中で作成したアクセス制御ポリシーを割り当てるだけ。
これができたら、実際にポリシー通りに動作するか確認してみましょう。
クライアントコンピューターで動作確認することももちろんですが、アクセス状況はADFSサーバーのログでも確認できます。
ADFSサーバーのログの設定方法については、MVPの渡辺さんが紹介してくれているので、それを参考にすることとして、
ここでは、イベントビューアのセキュリティログから結果を見てます。
すると、今までは、とんでもない数のログが生成されていましたが、Windows Server 2016で生成されるログは
イベントID 1200と1202のたった2つ!

しかも、今までだったら1つのログに書ききれないから2つのログに分割して記録する、みたいなアホなことももうしません。

image

ちなみに、Windows Server 2012 R2までの従来型のログで見たいという奇特な?人は

Set-AdfsProperties –AuditLevel verbose

と設定すれば、

image

従来型のログで内容を参照することもできます。

image

クレームルールとアクセス制御ポリシーはADFSを使ってアクセス制御を行う上で、とても重要な要素になります。今回は、基本的なところを紹介しましたが、実際には自分がやりたいことを実現するには、どのようなポリシーを書けばよいか?など、突き詰めると色々な課題にぶち当たることも予想されます。
そんなときは当ブログでいつも紹介しているADFS/Azure ADセミナーの活用もご検討いただければ幸いです。