大企業のAIセキュリティを支える基盤技術 - 今こそ理解するActive Directory 第1回 基本概念の理解

大企業のAIセキュリティを支える基盤技術 - 今こそ理解するActive Directory 第1回 基本概念の理解

AIシステムを支えるアカウント管理を理解する

社内向けのAIシステムを考えるとき、「誰が利用できるか」「どの情報へアクセスできるか」を、組織のアカウント管理と結び付けて整理する場面があります。そこで押さえておきたい基盤の一つが、Active Directoryです。

この連載では、Windows ServerのActive Directory Domain Services(AD DS)を中心に、アカウント、認証、権限、運用の仕組みを順に見ていきます。AIアプリケーションへのつなぎ方を検討する前に、基盤が何を担当するのかを理解しましょう。

第1回では、AD DSが管理する情報、DNSとの関係、Kerberos・NTLM・Basic認証の違いを扱います。漫画は概念を説明するための架空の会話で、技術的な説明の出典は各節末にまとめています。

出典

連載の構成


1.1 Active Directoryの基本

1.1.1 ADの役割と機能

開発者と研修講師が、ログオン時の本人確認と共有フォルダーの利用権限の違いを話す4コマ漫画。セリフは直後に掲載。
研修で、本人確認と共有フォルダーの利用権限を分けて考える場面(架空の会話)
  • 開発者「会社のPCにログオンできれば、どの共有フォルダーも開けますか?」
  • 研修講師「ログオンでは本人を確認します。これを認証と呼びます。」
  • 研修講師「フォルダーを開くときは、サーバーが利用権限を確認します。これが認可です。」
  • 開発者「本人確認と、何を使えるかの確認は、別なんですね。」

ADは、組織で共通に使うアカウント情報を管理する基盤です。

この連載で扱うのは、Windows ServerのActive Directory Domain Services(AD DS)です。ユーザーやコンピューター、グループなどの情報をディレクトリに保存し、組織内で利用できるようにします。

アカウントの情報を共通化すると、連携するシステムで同じユーザーを扱えます。ただし、アカウントが存在することと、あるファイルを利用できることは別です。

本人確認と利用権限を分ける

認証は本人確認、認可は操作を許すかどうかの判断です。

共有フォルダーを使う場面では、認証されたユーザーや所属グループをもとに、ファイルサーバー側がアクセス権を確認します。「経理部」という所属情報を書き込むだけで、経理用フォルダーの権限が付くわけではありません。

役割確かめること共有フォルダーでの例
認証利用者が誰なのかドメインのアカウントで本人を確認する
認可その利用者に操作を許すかユーザーやグループに設定された権限から、読み取りや書き込みを判断する
認証と認可の役割ドメインのアカウントで本人を確認し、次にファイルサーバー側でユーザーとグループの権限を確認する。本人確認だけでは、すべての操作が許可されるわけではない。認証 本人を確認するドメインのアカウントで確認認可 操作を許すか判断するファイルサーバー側でアクセス権を確認許可された操作を実行できる
共有フォルダーを使うときの役割を簡略化した図。通信の手順図ではありません。

SSOと設定の一元管理を支える

シングルサインオン(SSO)は、連携したサービスで繰り返し認証情報を入力する手間を減らします。

WindowsのKerberos認証では、ログオン後に必要なサービスのチケットを取得し、対応するサービスへ本人であることを示せます。サービスを利用できるかどうかは、そのサービスの権限設定で決まります。

管理者は、グループポリシーオブジェクト(GPO)にまとめた設定を、ユーザーやコンピューターに適用できます。対象はGPOのリンク先や適用条件で決まり、起動時・ログオン時やバックグラウンドの更新時などに処理されます。

ADを理解するときは、アカウント情報の管理、本人確認、アクセス権、設定の適用を分けて捉えると、それぞれの仕組みを追いやすくなります。

出典

1.1.2 ユーザー、コンピューター、グループの管理

研修で、利用者と端末を別々に管理する理由を学ぶ場面(架空の会話)。セリフは直後に掲載。
研修で、利用者と端末を別々に管理する理由を学ぶ場面(架空の会話)
  • 開発者「利用者の登録が済めば、新しいPCの準備も終わりですか?」
  • 研修講師「ユーザーとコンピューターは、別のアカウントとして管理します。」
  • 研修講師「共有フォルダーの権限は、セキュリティグループにまとめて設定できます。」
  • 開発者「人、端末、権限をまとめるグループ。それぞれ役割が違うんですね。」

利用者、端末、権限をまとめるグループは、別の対象として管理します。

ユーザーアカウントは利用者を、コンピューターアカウントはドメインに参加する端末などを識別します。ユーザーの登録だけで、端末のドメイン参加や必要な設定まで完了するわけではありません。

管理する対象主な役割
ユーザー利用者などのIDとアカウント情報を管理する
コンピュータードメインに参加するコンピューターのIDを管理する
セキュリティグループ複数のアカウントなどをまとめ、アクセス権やユーザー権利の割り当てに使う
組織単位(OU)オブジェクトを整理し、管理の委任やグループポリシーの適用範囲を設計する

グループとOUは、役割が異なります。

共有フォルダーへの権限をまとめたい場合は、セキュリティグループを権限設定の対象にできます。OUに移動したことや、部署の属性を書き換えたことだけで、そのフォルダーの利用権限が自動的に付くわけではありません。

OUは、組織図をそのまま写すためのものではありません。誰に管理を任せるか、どのユーザーや端末へ設定を適用するかを考えて構成します。

出典

1.1.3 ドメイン コントローラーの役割

研修で、ドメイン コントローラーと複製の役割を確認する場面(架空の会話)。セリフは直後に掲載。
研修で、ドメイン コントローラーと複製の役割を確認する場面(架空の会話)
  • 開発者「アカウントの情報は、どのサーバーが持っているんですか?」
  • 研修講師「ドメイン コントローラーが情報を保持し、認証などを担います。」
  • 研修講師「複数台で運用すると、変更を複製して共有します。伝わるまでには時間もかかります。」
  • 開発者「複数台あるだけで安心せず、複製が正常かも確認するんですね。」

ドメイン コントローラー(DC)は、ディレクトリ情報を保持し、認証などを提供します。

AD DSでは、必要なディレクトリ情報をDC同士で複製します。あるDCで加えた変更が別のDCへ伝わるまでには時間がかかり、複製の途中では参照先によって情報が異なることがあります。

DCを複数台にすることは、1台の停止に備える構成の一部です。ただし、台数だけで可用性が決まるわけではなく、複製や名前解決、通信経路を含めて正常に動く必要があります。

DC間で変更が共有される流れの概念図。複製の通信経路を示すものではありません。変更を受け付けたDC更新した情報を保持する複製によって変更を伝える即時に全DCが同じ状態になるとは限らない対象の情報を保持するDC届いた変更を反映する
DC間で変更が共有される流れの概念図。複製の通信経路を示すものではありません。

「どのDCも組織全体の全データを常に持つ」とは考えず、どの情報をどこへ複製する構成かを確認します。DCを追加した後も、複製が正常に続いているかを運用で確かめます。

出典

1.2 Active DirectoryとDNSの関係

1.2.1 DNSがADの動作に必要な理由

研修で、DNSによる接続先の発見と認証を分ける場面(架空の会話)。セリフは直後に掲載。
研修で、DNSによる接続先の発見と認証を分ける場面(架空の会話)
  • 開発者「パスワードは正しいのに、ドメインへ接続できません。」
  • 研修講師「まず、PCが接続先のサーバーを見つけられるか確認しましょう。」
  • 研修講師「PCはDNSに登録されたサービス情報から、ドメイン コントローラーを探します。」
  • 開発者「接続先を探す仕組みと、本人を確認する仕組みは別なんですね。」

認証を始める前に、接続するサーバーを見つける必要があります。

DNS(Domain Name System)は、名前からホストやサービスの情報を調べる仕組みです。WindowsのDC LocatorはDNSに登録されたSRVレコードなどを使い、必要なDCの候補を探します。

候補が見つかった後は、DCへ問い合わせて応答や機能を確認します。DNSが利用者のパスワードを検証するわけではなく、接続先の発見と本人確認は別の工程です。

  1. 1PCが必要なDCの情報をDNSへ問い合わせる。
  2. 2DNSから得た候補へ問い合わせ、利用できるDCを探す。
  3. 3選ばれたDCと、ログオンなどに必要な処理を行う。

サイトに対応したレコードも、適切なDCを探すために使われます。「DNSがIPアドレスだけから最寄りの拠点を自動で判定する」という理解ではなく、ADのサイト構成とDC Locatorの動作を合わせて捉えましょう。

出典

1.2.2 AD統合DNSの仕組み

AD統合DNSは、DNSゾーンのデータをAD DSに保存して複製する構成です。

DNSゾーンは、ある範囲のDNSレコードを管理する単位です。AD統合ゾーンでは、そのデータをADの複製機構で共有します。

AD統合ゾーンを保持する書き込み可能なDC上のDNSサーバーで、ゾーンへの更新を受け付けられます。複製範囲は設定で決まるため、フォレスト内のすべてのDCへ無条件に同じゾーンが配られるわけではありません。

仕組み担当すること
AD統合ゾーンDNSのデータをどこへ保存し、どう複製するか
動的更新クライアントやDHCPサーバーなどが、レコードの追加・更新を要求する方法
セキュリティで保護された動的更新更新する主体の認証と権限に基づき、更新を制御する仕組み

AD統合と動的更新は、同じ意味ではありません。また、ユーザーアカウントを作るたびに、そのユーザー用のDNSレコードが作られるわけでもありません。

出典

1.2.3 SRVレコードの役割

研修で、ホストのアドレスとサービスの所在を分ける場面(架空の会話)。セリフは直後に掲載。
研修で、ホストのアドレスとサービスの所在を分ける場面(架空の会話)
  • 開発者「DNSには、サーバーのIPアドレスだけ登録すればいいんですか?」
  • 研修講師「サービスを提供するサーバーとポートを示す、SRVレコードも使います。」
  • 研修講師「候補の優先度や重みも記録できます。重みは現在の負荷の測定値ではありません。」
  • 開発者「住所だけでなく、どこで何を提供しているかも探せるんですね。」

SRVレコードは、サービスを提供するホストとポートを示します。

ホスト名のアドレスを調べるA・AAAAレコードと、サービスの所在を調べるSRVレコードは役割が異なります。DC Locatorは、LDAPサービスなどのSRVレコードを利用します。

LDAPはディレクトリへアクセスするためのプロトコルです。ここでは単に「認証サービス」と言い換えず、DCを探す場面で利用されるサービスとして区別します。

以下は、予約済みの例示用ドメインexample.comを使ったDNSゾーンファイル形式の説明例です。実際の組織の設定値ではありません。

_ldap._tcp.example.com. 600 IN SRV 0 100 389 dc01.example.com.
項目この例の値と意味
名前_ldap._tcp.example.com. は対象ドメインのLDAPサービスをTCPで探す名前
TTLとクラス600 はキャッシュの有効時間を秒で示す値。IN はインターネットクラス
優先度0。数値の小さい候補が優先される
重み100。同じ優先度の候補を選ぶ際の相対的な重み
ポートと宛先389 と dc01.example.com.。サービスのポート番号とホスト名

重みは、現在のCPU使用率や接続数を測った値ではありません。SRVの選択規則と、アプリケーション側の探索・接続処理を分けて考えることが大切です。

出典

1.2.4 動的DNS更新

動的更新は、アドレスなどの変更をDNSへ反映するための仕組みです。

WindowsのDNSクライアントは、起動時やアドレス変更時などにレコードの更新を試みます。DHCPを使う環境では、クライアントとDHCPサーバーの設定によって、どちらがA・PTRレコードを更新するかが変わります。

  1. 1端末の名前やアドレスなど、更新の対象になる情報が変わる。
  2. 2設定に従って、DNSクライアントまたはDHCPサーバーが更新を要求する。
  3. 3DNSサーバーが更新の条件や権限を確認し、許可されたレコードを更新する。

認証された端末だからといって、どの名前でも書き換えられるわけではありません。

セキュリティで保護された動的更新では、認証に加えて対象レコードなどのアクセス制御が関わります。VPN接続についても、接続しただけで必ず自動登録されるとは限らず、アダプターや名前登録の設定を確認します。

名前解決の不具合を調べる際は、現在のアドレス、DNSの登録内容、更新する主体を照合します。古いレコードの扱いも含め、実際の更新設定を確認する必要があります。

出典

1.3 認証の基本プロトコル

1.3.1 Kerberos認証

研修で、Kerberosのチケットと利用権限を区別する場面(架空の会話)。セリフは直後に掲載。
研修で、Kerberosのチケットと利用権限を区別する場面(架空の会話)
  • 開発者「最初のチケットがあれば、すべてのサービスを使えるんですか?」
  • 研修講師「最初のTGTを使って、接続先に合ったサービスチケットを取得します。」
  • 研修講師「接続先はチケットで本人を確認し、操作を許すかは権限から判断します。」
  • 開発者「チケットは、何でも使えるフリーパスではないんですね。」

Kerberosは、チケットを使ってサービスへ本人であることを示す認証方式です。

Windowsのドメイン環境では、DC上のKDC(Key Distribution Center)がチケットの発行を担います。クライアントはTGT(Ticket Granting Ticket)を取得し、それを使って接続先のサービスチケットを要求できます。

Kerberosによるサービス利用の概念図。チケットの取得と権限の確認を分けています。TGTを取得するサービスチケットを要求するために使う接続先のサービスチケットを取得する対象サービスに合ったチケットをKDCへ要求するサービスへチケットを提示するサービスが本人を確認するサービス側で権限を確認する許可された操作を実行する
Kerberosによるサービス利用の概念図。チケットの取得と権限の確認を分けています。

チケットを使うことで、対応するサービスへ接続するたびに、利用者がパスワードを入力する手間を減らせます。サービスはチケットを検証でき、接続のたびに必ずDCへ本人確認を問い合わせる仕組みではありません。

チケットを持つことと、そのサービスの全機能を使えることは別です。ファイルやアプリケーション側で、ユーザーやグループに許された操作を判断します。

出典

1.3.2 NTLM認証

NTLMは、チャレンジと応答を使う認証プロトコルです。

サーバーが送るチャレンジに対し、クライアントはパスワードから導かれた情報を使って応答を作ります。NTLMの認証交換で、パスワードそのものをそのまま送るわけではありません。

ドメインアカウントの検証では、サーバーからDCへ検証処理を渡す経路が使われます。ローカルアカウントの場合はローカルの情報で検証するため、「NTLMはすべてのアクセスで必ずDCへ問い合わせる」とは言えません。

確認したいこと見るポイント
NTLMが使われる理由アプリケーションの対応、接続先の指定方法、認証設定を確認する
Kerberosへの移行NTLMへの依存を調べ、アプリケーションごとに対応を確認する
NTLMの制限既存の利用状況を監査してから、制限の影響を検証する

NTLMの利用が見つかったときは、単に名前だけで原因を決めず、なぜその接続で選ばれたかを調べます。既存サービスへの影響を確認せず、一括で無効化する手順にはしません。

出典

1.3.3 Basic認証

研修で、Basic認証の符号化と通信の暗号化を区別する場面(架空の会話)。セリフは直後に掲載。
研修で、Basic認証の符号化と通信の暗号化を区別する場面(架空の会話)
  • 開発者「Basic認証の文字列は、見慣れない形だから暗号化済みですか?」
  • 研修講師「Base64は符号化です。元のユーザー名とパスワードへ戻せます。」
  • 研修講師「通信を保護するにはHTTPSが必要です。認証方式とは別に確認します。」
  • 開発者「文字列の見た目ではなく、通信の保護と認証の設定を見るんですね。」

Basic認証はHTTPの認証方式で、Base64による符号化は暗号化ではありません。

クライアントはユーザー名とパスワードを組み合わせてBase64で符号化し、認証情報として送ります。符号化された値を取得できれば元の情報へ戻せるため、Basic認証そのものに通信を隠す働きはありません。

仕組み役割
Basic認証HTTPの要求に認証情報を載せる方式
Base64情報を別の文字列で表現する可逆的な符号化
HTTPSTLSによって通信経路を保護する仕組み

機密情報を扱う通信でBasic認証を使うなら、HTTPSなどによる保護が必要です。ただし、HTTPSは通信経路を保護するもので、受信側のシステムによる認証情報の扱いや、アクセス権の設計まで代わりに解決するものではありません。

Basic認証は、社外からアクセスしたときにADが自動で選ぶ最終手段ではありません。HTTPサービスが提供する認証方式の一つとして、サービス側とクライアント側の設定を確認します。

出典

1.3.4 各認証方式の使い分けと優先順位

認証方式は、アプリケーションの対応と接続条件を合わせて判断します。

WindowsのNegotiateは、KerberosまたはNTLMを選択する仕組みです。「Kerberosが使えなければNTLM、さらにBasicへ」という、すべての接続に共通する自動切り替えではありません。

場面考え方
Windows統合認証に対応した接続Kerberosを使える構成を確認し、実際に選択された方式を調べる
IPアドレスでホストを指定した接続Windowsは既定でKerberosを試みない。特別な設定による例外はあるが、通常はDNS名とサービスの識別情報を整える
VPN経由の接続接続後のDNS、到達性、認証設定を確認する。VPN接続だけで方式が保証されるわけではない
HTTPサービスへの接続サービスが提供する認証方式と通信保護を確認する。社内・社外という区別だけでは決まらない

うまく認証できないときの確認順序

接続できないときは、パスワードの誤りと決めつけず、発見・通信・認証・権限を順に切り分けます。次の順序は、この章で学んだ役割をもとにした確認の整理です。

  1. 1どのサービスへ、どの名前で接続したかを確認する。
  2. 2DNSで接続先を探せるか、必要な相手へ通信できるかを確認する。
  3. 3アプリケーションが提供する方式と、ログなどに記録された実際の認証方式を確認する。
  4. 4Kerberosを想定している場合は、サービスの識別情報(SPN)など、接続条件と設定を確認する。
  5. 5本人確認に成功した後の拒否なら、アクセス権の設定を確認する。

まず「接続先が分からない」「本人確認に失敗した」「操作が許可されない」を分けることが、ADを使うシステムの動きを理解する出発点になります。次回は、ドメインやフォレストなど、ADの構造を掘り下げます。

出典
Qualiteg 技術コンサルティング

全社のAIセキュリティ、基盤から運用まで相談できます。

ID・アクセス管理といった基盤から、LLM 固有のリスク(プロンプトインジェクション・情報漏洩・有害出力)まで——組織で AI を安全に使うには論点が多岐にわたります。

私たちは LLM 監査プロダクト「LLM-Audit」を自社開発・提供しています。その知見を活かし、監査・診断から防御策、安全な運用設計まで実践的に支援します。

LLMセキュリティの支援を見る →

Read more

ゼロから作るコーディングエージェント【第6回】評価をどう作るか。動くものを作らせて自動採点し、採点器そのものを疑う

ゼロから作るコーディングエージェント【第6回】評価をどう作るか。動くものを作らせて自動採点し、採点器そのものを疑う

採点器の「テスト」10点が3日間ずっと0/0でした。点数の表を見ているだけでは気づけません。仕様書を渡してWebシステムを作らせ、起動して叩いて採点する評価装置の作り方、5種類×3本の合否基準、対照実験を先にやる理由、自作でない課題で「テストだけが決めている契約」を先に洗う話を、測った数字で書きます。

By Qualiteg プロダクト開発部
大企業のAIセキュリティを支える基盤技術 - 今こそ理解するActive Directory 第7回 セキュリティとベストプラクティス - 本番環境での考慮事項

大企業のAIセキュリティを支える基盤技術 - 今こそ理解するActive Directory 第7回 セキュリティとベストプラクティス - 本番環境での考慮事項

こんにちは、今回はシリーズ第7回セキュリティとベストプラクティス - 本番環境での考慮事項 について解説いたします! 連載の構成 * 第1章:基本概念の理解 - Active DirectoryとKerberos/NTLM認証の基礎 * 第2章:ドメイン環境の構築 - 検証環境の構築手順 * 第3章:クライアントとサーバーのドメイン参加 - ドメイン参加の詳細手順 * 第4章:プロキシサーバーと統合Windows認証 * 第5章:ブラウザ設定と認証 - 各ブラウザでの設定方法 * 第6章:トラブルシューティング - よくある問題と解決方法 * 【★今回です★】第7章:セキュリティとベストプラクティス - 本番環境での考慮事項 * 第8章:実践的な構成例 - AIセキュリティツールとの統合事例 第7章:セキュリティとベストプラクティス 第 7 回は、ここまでの回で作った認証基盤を「本番で運用できる状態」にするための話です。 前半の 7.1

By Qualiteg コンサルティング
Ubuntu 24.04 の GPU サーバーが shutdown で固まる。犯人は HWE カーネルだった

Ubuntu 24.04 の GPU サーバーが shutdown で固まる。犯人は HWE カーネルだった

Ubuntu 24.04 の GPU 推論サーバーが shutdown で固まり、電源長押しになった。前回ブートのジャーナルで追うと、HWE カーネル 7.0 系と NVIDIA 595 open の組み合わせで CUDA プロセスの SIGKILL 直後にページ管理の異常が記録されていた。カーネルと対応する NVIDIA モジュールの組を GA 6.8 系に切り替えて正常な停止を確認し、うっかり HWE に戻らない 4 層の防御まで入れた記録。

By Qualiteg プロダクト開発部