ドメインコントローラーの役割とは基礎から分かるActive Directory再入門(3)

Active Directory環境を構築する場合、必ず作成することになるのが「ドメインコントローラー」だ。今回は、ドメインコントローラーの役割を紹介する。

» 2014年05月26日 18時00分 公開
[国井傑(MVP for Directory Services)株式会社ソフィアネットワーク]
「基礎から分かるActive Directory再入門」のインデックス

連載目次

Active Directoryとドメイン、ドメインコントローラーの関係は?

 先日、某所で「Active Directoryとドメインコントローラーって、同じものですよね?」という会話を耳にした。筆者はその話をしている方と面識がなかったため、あいさつもしていないのに「いや、ドメインコントローラーというのはね……」と話に割り込むのも失礼かと思い、そのときは説明してあげることができなかった。

 本連載の読者にも、同様の疑問を感じている方がいるかもしれない。そこで今回は、まずドメインコントローラーとは何かを解明するところから始めよう。

 前回、Active Directoryはいわば“ブランド名”であり、その中の役割の1つとして「Active Directoryドメインサービス」という名前の機能があることを紹介した。そして、Active Directoryドメインサービスの役割を提供するサーバーが、「ドメインコントローラー」になる。

 サーバーにActive Directoryドメインサービスの役割をインストールすると、そのサーバーは自動的にドメインコントローラーとなる。そのため、「Active Directory=ドメインコントローラー」と勘違いしてしまうのかもしれない。繰り返しになるが、Active Directory、ドメイン、ドメインコントローラーの関係は次の通りである。

  • Active Directory:ドメインの機能を中心とするマイクロソフトが提供する機能群の名前(ブランド名)
  • ドメイン:会社にあるコンピューターやユーザーなどをまとめて管理するための仕組み
  • ドメインコントローラー:ドメインの機能を提供するサーバー

 慣例的にドメインはActive Directoryと同じ意味で使われたり、「Active Directoryドメイン」と呼んだりする場合もあるが、正しくは上記のような違いがあることを覚えておいてほしい。

 Active Directory、ドメイン、ドメインコントローラーの違いが理解できたところで、次はいよいよ「ドメインコントローラーとは何か?」「何をしてくれるのか?」「どんなメリットをもたらしてくれるのか?」を見ていこう。ドメインコントローラーが提供する役割は、大きく次の3つになる。

  • 1:ディレクトリデータベースとしての役割
  • 2:認証と承認の役割
  • 3:グループポリシーによるユーザー/コンピューターを制御する役割

1:ディレクトリデータベースとしての役割

 「ディレクトリデータベース」は、ドメインで利用する各種データを格納するデータベースである。より分かりやすく言えば、ユーザー名やパスワードの保存場所がディレクトリデータベースになる。

 Active Directoryで採用されているディレクトリデータベースは、マイクロソフトの独自規格ではなく、多くのディレクトリサービスで実装されている「LDAP」(Lightweight Directory Access Protocol)と呼ばれる規格に基づくデータベース構造だ(関連記事:@IT ネットワーク用語事典「LDAP」)。

 ディレクトリデータベースに保存されるデータは、「オブジェクト」と呼ばれる単位で格納される。そのため、ドメインにユーザーを作成すれば、それは「ユーザー」という種類のオブジェクトを作成したことになる。

 さらに、作成したユーザー(オブジェクト)には、そのユーザー(オブジェクト)に付随するさまざま項目を登録できるようになっている。この登録可能な項目を「プロパティ」または「属性」と呼ぶ(図1)。

図1 図1 ユーザーなどの情報は「オブジェクト」と「プロパティ」のセットでデータベースに保存される

 ここまでをまとめると、ディレクトリデータベースはLDAPと呼ばれる規格に基づき、データベース内ではオブジェクトと属性情報(プロパティ)の関係でユーザーなどを管理している、ということになる。

 ところで、本連載第1回目では、ディレクトリデータベースに格納されるオブジェクトには、簡単な人事情報を属性情報として登録できることを紹介した。このような話をすると、属性情報を登録するメリットが気になるだろう。ユーザー名とパスワードはログイン時に必要となるので登録するが、その他の属性情報を登録するメリットはあるのだろうか。

 2000年に登場した頃のActive Directoryでは、属性情報として人事情報を登録しても活用できる場面はほとんどなかった。しかし、現在は入力した属性情報を活用するためのさまざまな仕組みが提供されている。以下、属性情報の活用例を見ていこう。

●属性情報をベースにグループのメンバーを登録

 ドメイン環境でアクセス権を設定する場合は、ユーザーごとに個別に設定するのは面倒なので、ユーザーをまとめたグループに対してアクセス権を設定する。グループに含まれるユーザーに対して管理者が手動で設定してもよいのだが、これもまた面倒な作業だ。

 例えば、「営業部」という名前のグループを作成し、営業部のユーザー全員をこのグループのメンバーにする設定を考えてみよう。

 この場合、あらかじめユーザーの部署属性に「営業部」を設定しておき、部署属性に「営業部」が設定されているユーザーは自動的に「営業部グループ」のメンバーとなるようなスクリプトを作成しておけば、人事異動のたびに手動でグループのメンバーを再設定する手間を省くことができる(こうした便利なスクリプトの作成方法は、本連載で今後紹介していく予定だ)。

●ダイナミックアクセス制御

 Windows Server 2012のActive Directoryからサポートされた「ダイナミックアクセス制御」は、グループに対するアクセス権設定とは異なる、新しいアクセス権の設定方法だ。

 ダイナミックアクセス制御では、グループ単位ではなく、ユーザーの属性情報を基にアクセス権を定義することができる。例えば、「営業部」のユーザーにアクセス権を設定する場合、これまでのように「営業部」というグループを作成してアクセス権を設定するのではなく、「営業部という属性を持つユーザー」に対して直接アクセス権を設定できる。

●Webサーバーのアクセス制御

 Windows Server 2012 R2では、標準機能として「Webアプリケーションプロキシ」と呼ばれるリバースプロキシの機能が提供されている。

 例えば、外部から社内のWebサーバーにアクセスするような場合は、Webアプリケーションプロキシで事前に認証/承認を行ってから、社内のWebサーバーにアクセスさせるように制御することができる。

 このとき、Webアプリケーションプロキシの承認作業には「Active Directoryフェデレーションサービス」(ADFS)を組み合わせることが可能で、ADFSによる設定で部署属性が「営業部」のユーザーだけアクセスを許可するように構成することができる(画面1)。

画面1 画面1 ADFSにおけるアクセス制御の設定。画面左の設定では、順序1でドメインのデータベースから部署(役割)の情報を取得し、順序2(画面右)で所属部署(役割)が「営業部」の場合のみアクセスを許可している

 今回紹介した機能は、読者の方が所属しているドメインでは利用されていないかもしれない。しかし、属性情報の活用方法が増えている傾向を考えると、将来利用することも十分に考えられる。そうした場合に備えて、今から属性情報を設定しておくことをお勧めしたい。

2:認証と承認の役割

 ユーザー名に対するパスワードが正しいことを確認する作業を「認証」、ユーザーがアクセスできる共有フォルダーなどの範囲を確認する作業を「承認」と呼ぶ。Active Directoryドメインでは、この認証と承認の役割をドメイン内の「Kerberos」(ケルベロス)という機能が担当している。

 Kerberosはドメインコントローラーとクライアントコンピューターの通信によって、入力されたユーザー名とパスワードの組み合わせが正しいかどうかを確認する(認証作業の実施)と同時に、特定のサーバーへアクセスできることを確認する(承認作業の実施)。そのため、(一部の例外はあるが)認証と承認を行うためには、クライアントコンピューターはドメインコントローラーと通信できる状態でなければならない(図2)。

図2 図2 クライアントコンピューターは認証/承認に成功すると「チケット」と呼ばれる情報を受け取る。そして、そのチケットは必ずドメインコントローラーから受け取るようになっている

 これまで、Active Directoryの認証については「ユーザー名とパスワードを確認する作業」と紹介してきたが、実は、Active Directoryにはコンピューターの認証作業も存在する。コンピューターの認証では、コンピューターの名前とパスワードを送信して、正しいことを確認している。

 ところが、ユーザーの認証ではユーザーの名前と同時にパスワードを設定しているが、普段のActive Directoryの運用で「コンピューターのパスワード」を設定した経験がある方はいないと思う。

 コンピューターのパスワードは、クライアントコンピューターがドメインを利用する際の「ドメインに参加する」という最初の操作で設定され、以降、定期的に変更されて、ドメインコントローラーとクライアントコンピューターの間で同期されている。

 だからこそ、コンピューターのパスワードを意識しなくてもActive Directoryの運用が可能であり、また、クライアントコンピューターはドメインに参加するという設定が必要なのである(図3)。

図3 図3 ドメインに参加すると、コンピューターは自動的にドメインコントローラーとパスワードを同期する。そして、同期したパスワードをコンピューター認証のたびに送信して認証を行う

【コラム】Active Directoryの認証とクラウドサービスの認証

 Kerberosは、「ドメインの機能」として提供されるものである。そのため、Kerberosによる認証/承認を利用できるのは、基本的に“ドメインの中だけ”になる。

 クラウドサービスを利用する場合は、Kerberosとは異なる認証/承認システムを使うため、Active Directoryでの認証で使うユーザー名/パスワードとは別に、クラウドサービスにアクセスするためのユーザー名/パスワードが必要になる。

 そこで、一部のクラウドサービスでは「SAML」と呼ばれるプロトコルを使って、Kerberosで認証したユーザー(ID)をそのままクラウドサービスでも利用可能にする「ID連携」を(徐々にではあるが)サポートするようになってきている(【参考記事】強力なSSOを実現するXML認証・認可サービス(SAML))。

 今、会社で利用している(もしくはこれから利用する)クラウドサービスがID連携をサポートしているのであれば、会社のドメインにADFSを追加することで、ドメインでユーザーを認証し、そのままクラウドサービスにアクセスするための承認を行う、という手続きが可能になる(図A)。

図A 図A ドメインコントローラーから受け取ったKerberosのチケットを基に、SAMLプロトコルで利用可能なチケット(トークン)をADFSサーバーから受け取る

3:グループポリシーによるユーザー/コンピューターを制御する役割

 ドメインコントローラーに保存される情報で、もう1つ重要なものに「グループポリシー」がある。グループポリシーは、ドメインに参加するコンピューターやユーザーにさまざまな設定を適用する機能だ。

 本来、クライアントコンピューター1台1台に行う設定であっても、ドメインコントローラーで一度グループポリシーを設定するだけで、全てのクライアントコンピューターにその設定が自動的に割り当てられる。つまり、人海戦術で全てのクライアントコンピューターに手動で設定をして回らなくてもよくなるのだ。

 グループポリシーの設定はドメインコントローラーに保存されており、クライアントコンピューターは起動時やドメインへのログオン時に、その設定を受け取って適用する。そのため、グループポリシーで新しい設定を行った場合、クライアントコンピューターはドメインコントローラーに接続しないと、新しい設定を受け取れないことになる。


 ここまで、ドメインコントローラーが提供する機能とその必要性を確認してきた。ドメインコントローラーはドメインの備えるさまざまな機能を提供するだけでなく、ドメインに関するデータベースを持つサーバーでもあるため、システムの中でも不可欠な存在であることがお分かりいただけただろう。

 ドメインが提供する個々の機能の詳細は今後紹介していく予定だが、まずはドメインコントローラーの必要性を認識して、会社の中では何があっても絶対に守らなければならない、大事なサーバーであることを理解してほしい。

マイクロソフトが期間限定公開中 Active Directoryのスキルをブラッシュアップしよう!

 クラウドの登場により、Active Directoryに求められる役割も変化しつつあります。

 クラウドに対応させるためのActive Directoryの設計ポイントとはどにあるのか? iOSやAndroidは、Active Directoryにどう絡むのか? Azure Active Directoryとは何者か? 生産性を高めるためのセキュリティを実現するには、どのようなインフラが必要か?

 今こそ、Active Directoryの役割を再学習し、古い知識をリセットしましょう!


筆者紹介

国井 傑(くにい すぐる)

株式会社ソフィアネットワーク取締役。1997年よりマイクロソフト認定トレーナーとして、Active DirectoryやActive Directoryフェデレーションサービス(ADFS)など、ID管理を中心としたトレーニングを提供している。2007年よりMicrosoft MVP for Directory Servicesを連続して受賞。なお、テストで作成するユーザーアカウントには必ずサッカー選手の名前が登場するほどのサッカー好き。


Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。