読み取り専用ドメイン コントローラ (RODC)

最終更新日時:2011/06/02 03:52:27
Windows Server 2008 で追加された、読み取り専用コントローラ(RODC)の機能について説明します。

はじめに

今までの Active Directory では、一部の機能 (FSMO) を除いて、全てのドメインコントローラがマスタとなるマルチマスタとなります。そのため、ドメインコントローラを分散配置することで、クライアントからの認証情報を WAN を介さずに処理したり,拠点ごとにユーザ管理を実施する、といったことが可能となります。

ただし、ドメインコントローラはドメイン内の全アカウントのパスワード情報など重要なデータを保持しているにも関わらず、居室の片隅などセキュリティ上問題がある場所に設置しているといった場合もあります。また、専門のシステム管理者が不在のため、居室にいるユーザにサーバ管理の一部を実施してもらう際に、ドメイン内の情報を誤って変更してしまうといった可能性がありました。

こういった状況に対して、Windows Server 2008 では図10のような形で読み取り専用ドメイン コントローラ (以下RODC) の機能が追加されました。RODC では、読み取り専用の Active Directory サービス、パスワード情報のキャッシュ、管理者の役割の分離といった機能が提供されます。

読み取り専用の Active Directory サービス

パスワードなどの機密情報に関連する情報を除くドメイン内の全情報(グローバルカタログサーバの機能を担っている場合は、他のドメイン内の一部の情報)を通常のドメインコントローラと同様に Active Directory サービスを提供します。

読み取り専用であるため、誤ってActive Directory 内のデータを変更してしまう、といった問題が発生しなくなります。ただし、Active Directory に対する更新要求については、書き込み可能なドメインコントローラに更新内容を転送され、更新された内容は Active Directory の複製機能により RODC に複製されるため、タイムラグが発生します。緊急で更新した内容を反映したい場合は Active Directory の管理ツールや Repadmin /syncall といったコマンドを用いて複製させる必要がある場合があるので、業務アプリケーション等から RODC に接続する場合には注意してください。

なお、RODC へ複製されない属性情報および追加方法の詳細、業務アプリケーションの考慮点については、『RODC の機能』、『アプリケーションと RODC の互換性』 を参照してください。

パスワード情報のキャッシュ

パスワードの情報を RODC に保持しない場合、ユーザログオン時に常にパスワード情報を保持しているドメインコントローラと通信する必要があるため、ドメインコントローラを分散配置している効果が薄れてしまいます。そのため、RODC にはパスワードのキャッシュ機能が提供されています。既定では、「Allowed RODC Password Replication Group」のメンバに所属するユーザは、 ログオン時に RODC を経由してパスワード情報を保持している他のドメインコントローラで認証処理を行います。RODC はユーザに認証結果を返すとともにそのユーザのパスワード情報をキャッシュし、次回以降の認証を RODC のみで実施することができるようになります。

このパスワードをキャッシュの許可設定は「Active Directory ユーザーとコンピュータ」の管理ツールで、対象の RODC のドメインコントローラのプロパティの「パスワード レプリケーション ポリシー」タブで RODC 毎に図11のように設定することができます。(※RODC に昇格するときに設定することも可能です)

図11 RODC のパスワード レプリケーション ポリシー

なお、パスワードの情報は事前に RODC に配布することも可能で、図11の「詳細設定」から起動されるダイアログにおいて「パスワードの事前配布」から実施することもできます。

パスワード情報をキャッシュする場合、注意すべき点として一度キャッシュした情報は個別に削除することができません。そのため、キャッシュしたパスワード情報を削除したい場合は、対象ユーザのパスワードをリセットもしくは変更し、その情報が RODC に複製された時点でキャッシュから削除されます。
次に、RODC のサーバが紛失したりディスク情報を何らかの理由に外部に流出してしまったような場合、キャッシュされたアカウントの情報を把握するとともに、RODC のコンピュータアカウントの削除といった作業が必要となります。

対象のアカウントは先ほどと同様「Active Directory ユーザとコンピュータ」の対象 RODC のプロパティから一覧へのエクスポートが可能ですので、実運用においてはそれらの一覧化および対処等をについて手順として取りまとめておき、有事の際に迅速に対応できるように準備しておくのが望ましいと思います。

なお、キャッシュを許可、拒否、一覧化の作成といった操作は repadmin /prp というコマンドを利用することでコマンドからも制御できますので、バッチ化等を検討する場合は、このコマンドについても参考にしておくのがよいでしょう。

管理者の役割の分離

RODC は専門のシステム管理者が操作できないことがあり、ユーザに管理を依頼することがあります。今までの読み書き可能なドメインコントローラの場合、ユーザがドメインコントローラにログオンできてしまうと、誤操作などにより Active Directory 全体に問題が起こってしまう可能性がありした。しかし、RODC のサーバでは、管理者権限は与えるが Active Directory に対する管理者権限を与えない、といった制御を実施することが可能になります。

RODC に対する管理者の設定方法は、「Active Directory ユーザーとコンピュータ」から対象の RODC のプロパティを開き、「管理者」タブの名前にグループやユーザを指定でも可能ですが、 dsmgmt コマンドの local roles のコマンドを利用することで、よりきめ細かな指定もできます。

その他注意事項

RODC を導入するには、フォレストの機能が Windows Server 2003 または Windows Server 2008 となっている必要があります。つまり。Windows Server 2003 のドメインコントローラが共存している状態でも RODC を導入することが可能となるため、いくつか考慮すべき点があります。

まず、RODC の複製元となるドメインコントローラは Windows Server 2008 が必要という点です。必要な理由としては、Active Directory 内のドメインパーティションの更新情報の複製は同一ドメインの Windows Server 2008 のドメインコントローラからのみ複製が可能です。

それ以外にも、例えば、複数のActive Directory サイトが存在する環境において、一部の Windows Server 2003 のドメインコントローラを Windows Server 2008 にアップグレードし RODC に置き換える運用が想定されます。その際に、RODC と同一のサイトに存在するクライアントが RODC を利用せずに別サイトの Windows Server 2003 のドメインコントローラを利用してしまう場合があります。

その理由はとしては、 Windows Server 2003 では RODC を想定した実装がされていないためRODC のみが存在するサイトにはドメインコントローラが存在しないものと判断し、対象サイトに対して自身の SRV レコードを登録(自動サイト カバレージ)してしまうことがあるためです。この回避策としては、自動サイト カバレージを無効にする、サイトリンクのコストを考慮する、SRV レコードの重み付けを変更するなどがありますが、どのような回避策を検討するのかは環境によって異なってきます。

これ以外にも複製トラフィックに関する注意点等があります。詳細については、Windows Server 2003 ドメインでの 『RODC の配置に関する考慮事項』 を参照してください。

(ソフトウェアデザイン2008年7月号掲載記事元ネタ)

INDEX

▲このページのトップへ