ADは「会社の人・PC・ルールをまとめて管理する仕組み」です
Active Directory Domain Services(AD DS)は、Windows Serverの「役割」(サーバーに追加できる機能のまとまり)の一つです。まず利用者やPCを登録します。そのうえで、本人確認とアクセス権、共通設定を、部署などの組織単位でまとめて管理します。たとえば「社員Aが会社PCへサインインし、許可された共有フォルダーだけを使える」状態を支えます。
名簿
ユーザー、PC、グループなどの「オブジェクト」を登録します。
案内
DNS(名前とIPアドレスを結び付ける仕組み)が、ドメインコントローラー(DC)の場所を案内します。
規則
OU(利用者やPCを入れる区分)とGPO(配る設定のまとまり)で、対象ごとにPCの設定を配ります。
認証
主にKerberosで本人を確認します。
同期
複数DCが変更を複製します。
運用
DNS、時刻、複製、ログ、直前変更を順に確認します。
1. ADの基本構造
Active Directory / AD DS
Active Directoryは関連技術の総称としても使われます。AD DSは、ドメインのユーザー・PC・グループと認証情報を管理する中核のサーバー役割です。
ドメイン(Domain)
同じデータベースと管理方針を共有する基本単位です。例は corp.example.com。DNS名と関係しますが、WebサイトのURLそのものではありません。
ドメインコントローラー(DC)
AD DSを実行し、ログオン認証、検索、複製を行うサーバーです。可用性のため通常は複数台を設計します。
ツリー / フォレスト
ツリーは、名前が続きでつながったドメインの集まりです。フォレストは、同じスキーマ(設計図)と構成を共有する、いちばん外側のまとまりです。フォレストは、管理と安全の範囲を区切る重要な境界(セキュリティ境界)です。
信頼関係(Trust)
別ドメイン/フォレストの認証を受け入れる関係です。「信頼した=すべて許可」ではなく、アクセスには別途権限が必要です。
スキーマ(Schema)
オブジェクトの種類と属性を定義する設計図です。変更はフォレスト全体へ影響するため慎重に扱います。
2. 登録するものと名前の読み方
オブジェクト / 属性
ユーザー、コンピューター、グループなど1件ずつがオブジェクトです。表示名、メール、SIDなどの情報が属性です。
SID
ユーザーやグループを識別する番号です。Windowsの権限は名前ではなくSIDへ結び付きます。同名で作り直しても元のSIDとは別物です。
UPN / sAMAccountName
UPNは user@corp.example.com のような形式のログオン名です。sAMAccountNameは、それより古い形式のログオン名に使う属性です。UPNはメールアドレスと似た形ですが、実際のメールアドレスと同じとは限りません。
DN / CN
DN(Distinguished Name)は、そのオブジェクトがどこにあるかまで含めた完全な名前です。CN=Taro,OU=Sales,DC=corp,DC=example,DC=com のように書きます。CN(Common Name)はその中の一般名で、この例では Taro の部分です。
LDAP
LDAPは、ディレクトリ(利用者やPCの情報を集めた名簿)を検索・参照・更新するための通信のきまり(プロトコル)です。LDAPは「探す・読む・書く」担当です。Kerberosなどの認証(本人確認)とは役割が違うと覚えます。
AD Recycle Bin
有効化後に削除したオブジェクトを属性ごと復元しやすくする機能です。バックアップの代わりではありません。
3. DNS・時刻・認証は一本の流れ
かんたんに言うとPCはまず「認証してくれるサーバーはどこか」をDNSで調べます。次にサーバーとPCの時計を合わせます。最後にKerberosで本人確認をします。この3つは順につながっていて、どれか1つでも崩れるとログオンできません。
- クライアント(利用者が使うPC)は、DNSのSRVレコード(サービスの場所を知らせる記録)を見て、使えるDCを探します。
- DCとクライアントの時刻をそろえ、Kerberosで認証します。
- 受け取ったチケット(本人だと示す通行証)を使って、ファイルサーバーなどへアクセスします。
- ACL(アクセス許可の一覧)が、そのSIDと所属グループを照らし合わせます。そのうえで、許可か拒否かを決めます。
DNS / SRVレコード
DNSは名前をIPへ変換するだけでなく、_ldap._tcp などのSRVレコードでDCの場所を知らせます。ドメイン参加端末は原則AD用DNSを参照します。
Kerberos
パスワードを毎回サービスへ渡さず、KDCから得たチケットで本人確認します。DNS、時刻、SPNの不整合が失敗原因になります。
KDC / TGT
KDC(Key Distribution Center/チケットを発行する係)は、DCの上で動きます。TGTは、次のチケットを受け取るための証明です。サービスチケットは、目的のサービスを使うための証明です。
SPN
Kerberosがサービスを識別する名前です。重複や誤登録はKerberos認証の失敗につながります。
NTLM
Kerberosを使えない状況などで利用される方式です。依存状況を監査し、安易に設定を変えません。
Windows Time / PDC Emulator
Kerberosでは、機器どうしの時刻が合っていることが重要です。ドメインの中では、上位のDCから時刻をもらう形で時刻源が階層になっています。その最上位にあたるPDC Emulatorが、外部のどの時刻源に合わせているかを確認します。
nslookup -type=SRV _ldap._tcp.dc._msdcs.corp.example.com
w32tm /query /source
klist
setspn -X4. OUとGPOで対象へルールを配る
OU(組織単位)
オブジェクトを整理し、GPO適用や管理権限の委任に使う入れ物です。組織図より管理目的で設計します。
GPO
ユーザーやPCへ共通設定を配るグループポリシーオブジェクトです。サイト・ドメイン・OUへリンクして使います。
LSDOU
GPOは、Local(そのPC自身)→ Site(拠点)→ Domain(ドメイン全体)→ OUの順に処理されます。この頭文字を並べた呼び名がLSDOUです。ただし、子OU、強制、継承のブロック、フィルターなどがあると、最終的な結果は変わります。継承とは、親フォルダーの権限設定が子フォルダーにも自動的に及ぶ仕組みのことで、GPOでは親OUの設定が子OUにも及ぶ動作を指します。
Security / WMI Filter
GPOを誰・どのPCへ適用するか絞ります。複雑化を避け、目的と対象を記録します。
SYSVOL
GPOテンプレートやログオンスクリプトをDC間で共有するフォルダーです。通常はDFSRで複製されます。
RSoP / gpresult
RSoPとgpresultは、GPOが最終的にどう適用されたかを確認する手段です。「GPOを作った」で終わらせず、対象端末での結果まで確認します。ここまで見て初めて「設定が届いたと確認できた」と言えます。
gpresult /r
gpresult /h C:\Temp\gpresult.html
gpupdate /forcegpupdate /force は再ログオンや再起動を求めることがあります。本番へ一斉実行せず、テストOU、小さな対象、切り戻し、周知を用意します。OU=Salesに入っています。このOUにリンクしたGPOで既定のプリンター設定を配布すると、太郎さんが使う端末にもログオン時に同じ設定が適用されます。この続き(太郎さんがどの権限を得るか)は次の「5. グループと権限」で扱います。5. グループと権限:人へ直接付けない
かんたんに言うと権限は人に直接付けず、グループに付けます。人はグループへ入れ、グループのほうに権限を渡します。こうしておくと、異動や退職のときはグループの出入りを変えるだけで済みます。
Security Group
複数のユーザーやPCへ権限をまとめて割り当てます。配布グループは主にメール配布用です。
Global / Domain Local / Universal
Globalグループは、同じ役割の人をまとめるのに向きます。Domain Localグループは、共有フォルダーなどの資源へ権限を割り当てるのに向きます。Universalグループは、複数のドメインにまたがって使う構成に向きます。
AGDLP
AGDLPは、Accounts(利用者)→ Global groups(役割のグループ)→ Domain Local groups(資源のグループ)→ Permissions(権限)の順に割り当てる設計の型です。頭文字を並べた呼び名です。人を役割のグループへ入れ、その役割グループを資源用のグループへ入れます。
ACL / ACE
ACLはアクセス許可の一覧、ACEはその1項目です。許可・拒否、継承、共有権限とNTFS権限を確認します。
最小権限
必要な人へ必要な範囲・期間だけ付与します。日常用と管理用を分け、Domain Adminsを常用しません。
Delegation of Control
パスワードリセットだけを任せるなど、OU単位で限定した管理権限を渡します。
Sales_Global(Global group)のメンバーにし、そのSales_Globalを資源グループSales_Share_ReadOnly(Domain Local group)へ入れ、Sales_Share_ReadOnlyへ共有フォルダーの読み取り権限を割り当てます。太郎さんが異動したときはGlobalグループのメンバーを入れ替えるだけでよく、共有フォルダー側のACLは変更しません。6. 複製・サイト・FSMO
かんたんに言うとDCは複数台あり、変更内容を互いにコピーし合って同じ内容にそろえます。これが複製です。ただし、どのDCが決めても良いとすると困る作業もあります。その5つだけを担当のDC1台に任せる仕組みがFSMOです。
マルチマスター複製
マルチマスター複製では、多くの変更をどのDCでも受け付けられます。受け付けた変更は、DCどうしで互いに反映します。ただし、反映には時間差(遅延)があり、変更どうしがぶつかること(競合)もあります。そのため「常に即時一致」とは限りません。
Site / Subnet / Site Link
サイトは、拠点などの物理的なネットワークのまとまりを表します。サイトを正しく決めると、クライアントは近くのDCを選べます。サイトリンクは、拠点どうしの複製を制御します。そのため、サイトとIPサブネットの対応づけが重要です。
FSMO
FSMOは、変更のぶつかり合い(競合)を避けるために、特定の1台のDCだけが担当する5つの役割です。フォレスト全体で1台が担う役が2つ、ドメインごとに1台が担う役が3つあります。
Schema / Domain Naming Master
スキーマ変更とドメインの追加・削除を担当します。
RID / PDC / Infrastructure
RID Masterは、SIDに使う番号(RID)を各DCへ配ります。PDC Emulatorは、時刻の基準やパスワード変更の取りまとめなどを担います。Infrastructure Masterは、他ドメインのオブジェクトを参照している情報を更新します。
| 役割名 | フォレスト/ドメイン | 一言での役割 |
|---|---|---|
| Schema Master | フォレスト | スキーマ(オブジェクトの設計図)の変更を許可する |
| Domain Naming Master | フォレスト | ドメインの追加・削除を管理する |
| RID Master | ドメイン | SIDに使う番号(RID)を各DCへ配布する |
| PDC Emulator | ドメイン | 時刻同期やパスワード変更などの基準になる |
| Infrastructure Master | ドメイン | 他ドメインのオブジェクト参照情報を更新する |
発展知識:RODCとGlobal Catalog
RODCは読み取り専用のドメインコントローラーです。Global Catalogはフォレスト内検索とログオンに必要な一部属性を保持します。どちらもFSMOの5役ではありません。まずは上のFSMO 5役を説明できれば十分で、この2つは余裕があるときに学びます。
repadmin /replsummary
repadmin /showrepl
dcdiag /e /c /v
netdom query fsmodcdiag /eはフォレスト内の全DCを対象にし、/cは主要な項目をまとめて実行し、/vは詳細(verbose)な出力にする指定です。7. 運用で使う確認コマンド
| コマンド | 何を見るか | 注意 |
|---|---|---|
dcdiag | DCのDNS、サービス、複製等 | 対象・終了コード・個別結果を記録 |
repadmin /replsummary | 複製失敗数と最大遅延 | /showrepl とイベントログも確認 |
nltest /dsgetdc:domain | クライアントが見つけたDC | 期待サイトとDCか照合 |
gpresult /h | 適用GPOと拒否理由 | 共有前に個人情報を確認 |
Get-ADUser | ユーザー属性と有効状態 | 検索範囲とフィルターを限定 |
Get-WinEvent | AD、DNS、DFSR等のログ | 時刻・ID・対象DCを保存 |
PowerShellのコマンドは、まず最小の形から出発し、条件を1つずつ足していくと理解しやすくなります。
Get-ADUser -Filter *条件も検索範囲も指定しない、最も単純な形です。これだけでドメイン内の全ユーザーを取得します。ここから1つずつ役割を加えます。
- -Filter:取得する対象を条件で絞り込みます。
-Filter 'Enabled -eq $true'にすると、無効化されていない(有効な)ユーザーだけが対象になります。 - -SearchBase:検索する開始位置(OU)を指定します。
-SearchBase 'OU=Users,DC=corp,DC=example,DC=com'にすると、そのOU配下だけに検索範囲を限定できます。 - パイプ(
|):左側のコマンドが返した結果を、そのまま右側のコマンドへ渡します。ここではGet-ADUserが取得したユーザー一覧を次のコマンドへ渡します。 - Select-Object:表示する属性(列)を選びます。
Select-Object SamAccountName, LastLogonDateにすると、ログオン名と最終ログオン日時だけに絞って表示できます。
4つの役割を1つの文にまとめると、次の複合コマンドになります。行末のバッククォート(`)は「次の行へ続く」という行継続の記号です。
Get-ADUser -Filter 'Enabled -eq $true' `
-SearchBase 'OU=Users,DC=corp,DC=example,DC=com' `
-Properties LastLogonDate |
Select-Object SamAccountName, LastLogonDate
dcdiag /test:DNS
$dcdiagExitCode = $LASTEXITCODE8. 目的別キーワード早見表
| 知りたいこと | キーワード | 一言で覚える |
|---|---|---|
| 管理の基本単位 | Domain / DC / Forest | 範囲・認証役・最大境界 |
| 対象を整理 | Object / Attribute / OU | 登録物・項目・入れ物 |
| DCを探す | DNS / SRV | 名前とサービスの案内 |
| 本人確認 | Kerberos / KDC / TGT | チケットで認証 |
| 設定を配る | GPO / LSDOU / RSoP | 作る・順に適用・結果を見る |
| 権限を設計 | SID / ACL / AGDLP | 人→役割→資源→権限 |
| DC間を同期 | Replication / Site | 適切な経路で複製 |
| 一台が担当 | FSMO | 競合を避ける5役 |
| 異常を診断 | dcdiag / repadmin / Event Log | 健全性・複製・記録 |
| 復旧する | System State / DSRM / Recycle Bin | バックアップ・復旧モード・削除復元 |
9. ログオンできないときの確認順
ログオンできない原因はいくつもあります。そこで、次の順に範囲をせばめて確認します。順番を先に決めておくと、あわてずに切り分けができ、あとから経過を説明しやすくなります。
- 影響:1人か複数人か、1台か拠点全体か、いつからか。
- 変更:パスワード、GPO、DNS、ファイアウォール、時刻、更新など、直前に行った変更。
- クライアント:IP、AD用DNS、時刻、疎通、ユーザー名形式。
- 認証:SRV、見つかったDC、チケット、ロック・無効・期限。
- DC:
dcdiag、複製、サービス、SYSVOL、容量、ログ。 - 復旧後:ログオン、GPO、共有、複製、監視を再確認して記録。
新しいPCをドメイン参加できない
DNS参照先、時刻、既存コンピューターアカウント、名前重複、必要ポート、資格情報、ドメイン名、DC発見を確認します。
GPOが適用されない
OUリンク、ユーザー/コンピューター設定、フィルター、継承、SYSVOL、DNS、gpresult の拒否理由を確認します。
複製エラーが出る
対象DC、エラーコード、最後の成功時刻、DNS、時刻、疎通、認証、サイト、サービス、ログを確認します。安易な強制同期は行いません。
誤ってユーザーを削除した
変更を止め、対象・時刻・影響を記録し、Recycle BinやSystem Stateバックアップの条件を確認します。同名新規作成はSIDが変わります。
10. 隔離ラボで行う演習
演習は、本番や家庭のふだんのネットワークから切り離した、練習用の環境(ラボ)で行います。Hyper-V(Windowsで仮想マシンを動かす機能)などを使います。始める前に、ドメイン名、固定IP、DNS、管理者の資格情報(IDとパスワード)、期待結果を設計してください。
演習1:図にする
DC01、DC02、CL01、ドメイン、OU、ユーザー、グループ、共有を描きます。
演習2:DNS
CL01のDNS参照先、SRV、見つけたDCを記録します。
演習3:OUとGPO
テストOUへ無害な設定を適用し、gpresult で比較して戻します。
演習4:AGDLP
利用者、役割、資源用グループ、読み取り権限を分けます。
演習5:正常性
dcdiag、repadmin、FSMOの結果を記録します。
演習6:障害対応
テスト端末のDNSを誤らせ、影響→確認→復旧→再確認を記録します。