はじめに
第1回でサーバーの土台とネットワークが完成しました。第2回では、Windows Serverを「ドメインコントローラー」として構成し、Subversion(SVN)からの認証リクエストを受け入れるための準備を行います。
単にユーザーを作るだけでなく、Linux側から「どこの階層に誰がいるか」を正確に指定するための「作法」をマスターしましょう。
構築のポイント(お急ぎの方へ)
本記事で実施する作業の要約です。ADとLinuxを連携させるための「最小構成」をまとめました。
-
ドメインの昇格(lab.local) Windows Serverをドメインコントローラーに昇格させ、名前解決の土台を作ります。
-
「OU=SVN」の作成と整理 管理を容易にし、後の連携設定をシンプルにするため、専用の組織単位(OU)を作成します。
-
「3種類の役割」に応じたアカウント準備
-
svn_auth: SVNサーバーがADに照会するためのシステムアカウント(BindDN)。
-
SVN_A/B_Users: 誰がどこにアクセスできるかを決めるセキュリティグループ。
-
svn_user01〜03: 認可の挙動をテストするための検証用ユーザー。
-
-
「DN(識別名)」のメモ 連携設定で必須となる、ユーザーの正確な「住所」を属性エディターから取得しておきます。
Active Directory ドメインサービスの構築
コンピュータ名変更
Active Directoryの役割を入れる前に、必ずコンピュータ名をわかりやすい名前(ここでは AD-Server )に変更して再起動してください。
理由:ADを構築(昇格)した後に名前を変えるのは非常に困難ですが、構築前なら自由に変えられるため。
- 「win + i 」で設定を開き、「名前の変更」をクリックします。

- コンピュータ名を変更し、再起動します。

- 再起動後、コンピュータ名が変更されていることを確認します。

Windows Serverをドメインコントローラーに昇格させる
以下のサイトを参考にActive Directory ドメインサービスをインストールし、ドメインコントローラーに昇格させます。
ここでは、ルートドメイン名を「lab.local」とします。
こんにちは、レムシステム株式会社 IT担当の小村(@system_kom)です。Windows Server 2016に…
Active Directory の内部ドメイン名について
内部ドメイン名は、Microsoft のベストプラクティスに従い、以下の点に注意して設計する必要があります。
- Single-label domain(例:corp)は使用しない
- .local や .lan などの未承認 TLD は使用しない
- 所有しているパブリックドメインのサブドメインを内部ドメインとして利用する
例:ad.example.com / corp.example.com- 内部 DNS と外部 DNS を無理に分離する必要はない
- 将来の拡張やクラウド連携を考慮した命名にする
(参考:Microsoft Learn「Active Directory: Internal Domain and Network Names Best Practices」)
SVN連携用ユーザー・グループの作成
SVN専用のOU(組織単位)を作成する
「Active Directory ユーザーとコンピューター」を開く
「サーバマネージャ」上で、下記の ツール>Active Directory ユーザーとコンピューター をクリックして開きます。

OU(組織単位)作成画面を開く
ドメイン(lab.local)を右クリック > 新規作成 > 組織単位(OU) をクリックして、OU(組織単位)作成画面を開きます。

OU(組織単位)の「SVN」を作成する
名前を「 SVN 」にして「OK」をクリックして作成します。

OU(組織単位)「SVN」の作成反映を確認する
以下のようにOU(組織単位)の「SVN」ができているとわかります。

OU(組織単位)の設計について
今回は解説をシンプルにするため、ドメイン直下に「SVN」というOUを作成していますが、実際の運用では以下のような構成にすることもあります。
プロジェクト単位:
OU=Project_A,OU=Project_Bと分け、プロジェクトごとにリポジトリへのアクセス権を管理する。部署単位:
OU=Sales,OU=Developmentなど、会社の組織構造に合わせて分ける。後の「連携設定編」で、Apacheからどの範囲のユーザーを探しに行くかを指定できるため、ここで作成するOUはあくまで「参考例」として捉えてください。
ご自身の環境の運用ルール(管理のしやすさ)に合わせて、最適な階層構造で作成して問題ありません。
認証用ユーザー(BindDN用)を作成する
認証用ユーザー(BindDN用)とは、SVNサーバーがADにログインして「このユーザーは実在しますか?」と問い合わせるための専用アカウントです。
以下の要件で認証用ユーザーを作成します。
-
ユーザー名:
svn_auth -
パスワード: 期限なしを推奨
ユーザ作成画面を開く
作成した「 SVN 」を右クリック > 新規作成 > ユーザー をクリックして、ユーザ作成画面を開きます。

ユーザ情報を入力する
下記のようにユーザ名「svn_auth」を入力し、「次へ」をクリックします。

パスワード設定をする
下記のように任意のパスワード(ここでは「Pass123」)を設定し、1つ目のチェックは外し、三つ目のチェックは入れて「次へ」をクリックします。

作成完了
特に問題なければ、「完了」をクリックして、ユーザを作成します。

認可グループとそのユーザの作成、グループに参加する
SVNリポジトリへのアクセス権(認可)を詳細にテストするため、今回は2つのグループと、所属パターンの異なる3つのユーザーを作成します。
認可グループ:「どのグループに属していれば、どのリポジトリに入れるか」を分けるためのグループです。
| グループ名 | スコープ / 種類 | 役割(テストの意図) |
| SVN_A_Users | グローバル / セキュリティ | リポジトリAへのアクセス許可用 |
| SVN_B_Users | グローバル / セキュリティ | リポジトリBへのアクセス許可用 |
テスト用ユーザー:作成したユーザーを各グループへ振り分けます。
| ユーザー名 | 所属グループ | 検証できること |
| svn_user01 | SVN_A_Users | Aには入れるが、Bには入れないこと |
| svn_user02 | SVN_B_Users | Bには入れるが、Aには入れないこと |
| svn_user03 | 両方のグループ | AとB、どちらのリポジトリにも入れること |
これにより、後の工程で「意図した通りのアクセス制限がかかっているか」を網羅的に確認できます。
認可グループの作成
作成した「 SVN 」を右クリック > 新規作成 > グループ をクリックして、グループ作成画面を開きます。

グループ名「SVN_A_Users」を記入し、「OK」をクリックしてグループを作成します。

同じ要領で、「SVN_B_Users」グループも作成しました。

テスト用ユーザーの作成
上記の「svn_auth」ユーザ作成と同じ要領で、各ユーザを作成しました。

パスワード設定の考え方
今回の構築手順では、作業をスムーズに進めるためにすべてのユーザーを「パスワード無期限」として解説します。
ただし、もし将来的に実務で運用することを想定する場合、以下のような使い分けを検討するのが一般的です。
ユーザー種類 パスワード設定の推奨 理由 svn_auth (システム用) 無期限 定期変更が必要になると、SVN側の設定ファイル( subversion.conf)を書き換えるまで認証が全停止してしまうため。svn_userXX (人間用) ドメインのポリシーに従う 万が一パスワードが漏洩した際のリスクを抑えるため。定期的な変更や、複雑性の要求を適用するのが基本です。
各ユーザのグループ参加
ユーザーとグループの作成が終わったら、次は各ユーザーを適切なグループに所属させます。Active Directoryでは、ユーザーのプロパティから簡単に追加できます。
「OU=SVN」の中に作成したユーザー(例:svn_user01)を右クリックし、[プロパティ] を開きます。

上部の [所属するグループ] タブをクリックします。

追加ボタン: 左下の [追加] ボタンをクリックします。

グループ名の入力: 「選択するオブジェクト名を入力してください」の欄に、参加させたいグループ名(例:SVN_A_Users)を入力し、[名前の確認] をクリックします。

正しく入力されていれば、名前が下線付き(SVN_A_Users)に変わります。
[OK] を押して閉じれば、グループへの参加は完了です。

上記のグループ(SVN_A_Users)参加と同じ要領で、svn_user02はSVN_B_Users、svn_user03はSVN_A_Users,SVN_B_Usersグループに参加させます。
【重要】連携で必須となる「DN(識別名)」の確認
第4回の設定ファイル作成時に、ユーザーやグループの「正確な住所(DN)」が必要になります。以下の手順でメモしておきましょう。
属性エディタの有効化
「Active Directory ユーザーとコンピューター」の表示メニューで「拡張機能」にチェックを入れます。

プロパティの確認
svn_auth を右クリック > プロパティ > 「属性エディター」タブを開きます。

distinguishedNameをコピー
distinguishedName という項目を探して値をコピーします。
例: CN=svn_auth,OU=SVN,DC=lab,DC=local

おわりに
これでActive Directory側の受け入れ態勢が整いました。
第2回以降で、この「DN」を使ってLinuxとADをガッチリ結びつけます。
次回は、いよいよリポジトリの保管場所となるLinux(AlmaLinux)側の構築に入ります。Apacheのインストールから、初心者が必ずハマる権限設定(SELinux)までを詳しく解説します。
はじめに 第2回でActive Directory側の準備が整いました。第3回では、Subversion(SVN)の本体をAlmaLinuxにインストールし、リポジトリを作成します。 単にインストールするだけでなく、インターネットに[…]

