Active Direcotryの概要

Windows Server 2008以降、ADは代表的なAD DS(Active Directory ドメインサービス)以外にAD FS、AD RMS、AD LDS、AD CSの4つのサービスがあります。この記事は代表的なAD DSについての記事で、分かりやすくADと書いています。

ADで出来る事

ユーザー・アカウント情報の集中管理

ドメインコントローラーで集中管理しているため、管理が容易になるし、グループ化が可能。
ADに対応したサーバー、アプリを使用するとメールサーバーやDBサーバーとドメインのユーザーアカウントを紐づけられるので、さらに管理が容易になるし、ユーザーにとっても覚えなければならないユーザー名やパスワードが減らせる。

ユーザー属性情報の集中管理

ADのユーザーアカウント情報は、ユーザー名やパスワードのほかに氏名、住所、電話番号、所属部署など様々な情報を保持することができるため、企業においてAD情報を住所録として使用できる。このメリットは、特にMicrosoft Exchange Server のようなAD対応メールサーバーと組み合わせた場合に効いてくる。

資源情報の集中管理

共有フォルダや共有プリンタの情報を、場所やキーワードの情報と一緒にADに登録できるため、ユーザーが名前を正確に覚えてない共有資源を探す際にADの検索機能を利用できるため、サーバーを探し回らなくてよくなる。

アプリへの情報提供

LDAP又はADSIを使用することでアプリがADに格納された情報にアクセスできる。これにより、ユーザー情報一元管理とシングルサインオンが実現できる。

情報へのアクセスに対する管理

ADに登録されたユーザーにアクセス権を設定できる

クライアントPCの一元管理

グループポリシーを利用してクライアントPCの設定を集中管理できる。

ADの用語について

フォレスト

ADを構成する要素の中で最も上の階層に属する。1つのフォレストの中に複数のドメインが存在できる。

ドメイン

インターネットにおけるドメインと同じようにピリオドで区切られた複数の単語で構成される<例>syobute.local

ドメインコントローラー

ドメインを管理しているサーバー。目に見える範囲ではドメインコントローラーがドメインの実態になり、ディレクトリ情報を格納していて、ユーザーのログオン認証やディレクトリ検索などの要求を処理する。通常可用性を考えて2台以上用意する。

サブドメイン

親になるドメインの子ドメインドメイン名はピリオドで区切って階層を一つ増やして「<サブドメイン名>.<親ドメイン名>」となる。

OU

ドメインサブドメインに作成されるオブジェクト。ただ、グループと異なり、共有資源のアクセス権限設定対象にはできない。
OUは単にオブジェクトを分類する器として使えるだけでなく、次のような使い方ができる。
・グループポリシーの適用単位区分
→OUごとに、ドメイン同様グループポリシー(GPO)を設定できる。OU内のオブジェクトは基本、OUに対するポリシー設定を継承するため、オブジェクトはOU間を移動するたびに移動先のOUのポリシー設定に変化する。
・管理権限の委任
→OUを単位にして、ドメイン管理者以外のユーザーに、ユーザーとグループの管理権限を委譲することができる。そのため、社員の入れ替わりが激しい部署のOUの権限を、部署の担当者に委任するというようなことができる。
・アクセス権設定の単位
AD上のオブジェクトにも、アクセス権を設定できる(オブジェクトの作成や変更、オブジェクトに設定された情報へのアクセス、オブジェクトの検索や表示といった機能に関わる権限などがある)。このアクセス権を設定する単位としてOUを使用できる。オブジェクトに個別にアクセス権を設定するよりもOUにアクセス権を設定したほうが管理が容易になる。

オブジェクト

ユーザーやコンピューターのアカウント、グループ、OUなど、ADに作成される各種情報の総称。
AD上のオブジェクトは、「<ドメイン名>/<オブジェクト名>」という形式で、重複しない完全修飾ドメインを持っている。ただ、管理ツールに表示されるのは、オブジェクトに設定された表示用の名称。

サイト

地域またはIPサブネットなど物理的な境界を表す。作成する最大の理由としては、ドメインコントローラー間での複製の設定。サイト内の場合、既定では15秒に一回ディレクトリ情報を複製する。そのため、地域間の回線にWANを使用していた場合、既定の間隔で複製するとWAN回線を圧迫する可能性がある。
ドメインコントローラーの地域ごとにサイトを作成すると、WAN回線の使用料が少ない夜間などに複製を行うよう設定できる。また、サイト間では既定では180分に一回ディレクトリ複製が行われる。また、サイト間ではディレクトリ情報が圧縮された状態で複製されるため、WAN回線の帯域幅を保護できる。
サイト間の論理的な回線をサイトリンクという。ディレクトリ複製を設定するには、サイトのほかにサイトリンクを作成する必要がある(サイトは場所を定義しているだけのオブジェクトであるため)。ADではサイトやサイトリンクもオブジェクトとして扱われる。

AD DS以外のサービス

Active Directory ライトウェイディレクトリサービス (AD LDS)

Active Directoryに対応しているアプリに対して、アプリ固有の情報を格納する場所を構築できる。AD DSと違い、ディレクトリサービスのみを提供するため、ドメインを構築する必要がない。

Active Directory 証明書サービス (AD CS)

公開鍵基盤(PKI)を構築するために、証明書の作成と管理を行う証明機関を作成するためのサービス。多くのアプリで使用出来る証明書を発行したり管理できる。

Active Directory Rights Managementサービス (AD RMS)

ユーザーの身元を確認し、使用が許可されたユーザーだけが、コピーや印刷などの操作を行えるという仕組みを提供する。使用許可に関する情報はデータに付属するため、機密データを移動した場合でも不正なユーザーが情報を入手できなくなる。

Active Directory フェデレーションサービス(AD FS)

Web シングルサインオン(SSO)とセキュリティ保護されたIDアクセスソリューションを構築できる。

参考文献

Actice Directory 導入と運用の基本 ひとめで分かる Active Directory Windows Server 2022版

OSがしてくれることについて

この記事は天野司様が書いた「Windowsはなぜ動くのか」という書籍をかなり参考にしています(表現方法は自分なりに変えてますが)。めちゃ名著なので、ぜひ購入してください!

OSとは?

「コンピューター全体を制御してユーザーが使いやすくするためのシステム」(Copilotより)
「パソコンのすべての動きを総合的に管理する、制御ソフト」「アプリケーション・ソフトの動作を補助するプログラム」(Windowsはなぜ動くのか 「オペレーティング・システムとはいったいなんですか?」より)
要はハードウェアやソフトウェアの様々な制御を行っている、コンピューターを使用するのに欠かせないソフトウェア(プログラム)ということですね。

OSはどう制御している?(アプリケーションとの関連編)

アプリケーション・ソフトウェア又はOSの内部から呼び出し可能になっている機能をシステムコールといい、それを呼び出すことでOSの機能を利用できるようになってます。

例えば・・・
powershellで「exit」と打つとpowershellが終了しますが、これは「exit」と打たれた時にpowershellシステムコールの機能を呼び出してOSに終了させるようお願いしている。

システムコールの機能を使うことでプログラミングが容易になりますね。
システムコールは他にも入出力などのハードウェアの制御や、ソフトウェアの起動など様々な機能を提供します。

ライブラリについて

C言語の「printf」などを標準ライブラリといいますが、(powershellでいうと.NET Frameworkがある)これはシステムコールとは少し違い、プログラムで頻繫に使われる機能を、プログラミングやデバッグを容易にするためにそのまま呼び出せるようにした関数。
プログラムのリンク時に初期設定や終了処理と一緒に結合される。(初期設定や終了処理もライブラリの一種ですが)

OSはどう制御している?(ハードウェアとの関連編)

PCを使用するにあたって、異なる種類のハードウェアでも同一のプログラムが問題なく動作しますが、これを「ハードウェアの違いが吸収される」と表現する。
→これをどう実現するか?

(前提知識)ハードウェアが動く仕組み

プログラムはコンパイルされてCPUが理解できる機械語で実行されるが、CPUがハードウェアを操作する時には特定の命令を実行したり、特定のハードウェア専用に割り当てられたメモリのアドレスにデータを書き込むことで実現される。
この時に、ハードウェアが違えばメモリ番地や書き込むべきデータが異なるという問題がある。
→この際にシステムコールを使う!
例えば、「音を鳴らす」というシステムコールの機能を呼び出せば、違うハードウェアでも同一のプログラムで動く。

ハードウェアの違いが吸収できない場合

先程の説明でシステムコールを利用すればハードウェアの違いを吸収できると記載しましたが、これを利用せずにハードウェアに直接アクセスするプログラムを書いてしまうと、ハードウェアの違いを吸収できない。これを「行儀の悪いプログラム」と呼ぶこともある。
OSはこのようなプログラムが作られることがないよう、多くのハードウェアに対してアクセスできるシステムコールを用意する必要がある。

また、システムコールがないと異なるプログラム間でハードウェアの管理方法を統一しなければならないため複雑化するが、システムコールを使用してOSで一元管理することで簡易さが増し、データの互換性が高められる。

OS上でのプログラムの動作

OSはプログラムの実行制御の機能も備えており、「どのようなプログラムを」「いつ」「どのような時に使うのか」決めることが出来る。
アプリケーションのプログラムは実行していない間HDDなどの不揮発性の記憶装置に置かれているが、実行するにはメモリに呼び出す必要がある。
こうした「記憶装置からの読み出し」「メモリへの読み込み」「実行」「終了後の処理」などはOSが行っている。

また、OSによっては複数のプログラムを一度に管理し、それらを切り替えながら動作できる。この機能を持つOSのことを「マルチタスクOS」と呼ぶ。

参考文献

Windowsはなぜ動くのか

自分用Windows関連のサービス、関数、ルーチン等用語メモ

WindowsAPI関数

ドキュメント化されているWindowsAPIの呼び出し可能なサブルーチン

システムコール

ドキュメント化されてないユーザーモードから呼び出し可能なOSの基本サービス。OSの上で動作するアプリケーション・ソフトや、あるいはOS自体、その内部から呼び出し可能になっている機能の事

サブルーチン

コンピュータプログラムの中で特定の機能や処理をひとまとまりの集合として定義し、他の箇所から呼び出して実行できるようにしたもの。これにより、同じ処理を何度も繰り返し記述する必要がなくなり、コード量の削減や開発効率の向上、記述ミスなどによる誤り(バグ)の減少などが期待できる。
サブルーチン内部の処理に反映させるため、呼び出し側から値を指定できるようになっている場合が多く、この値を引数という。また、処理結果として呼び出し元に値を返すことができる場合があり、この値は「返り値」あるいは「戻り値」という。 返り値を持つサブルーチンは「関数」(function)と呼ぶのが一般的。

ルーチン

カーネルモードから呼び出し可能な、WindowsOSの内部にあるサブルーチン。

サービス

通常のアプリケーションとは異なり、起動直後から動作を開始し、常にバックグラウンドで動いているプロセス。サービスコトロールマネージャーによって開始される。

DLL

バイナリファイルとして相互にリンクされた呼び出し可能なサブルーチン。サブルーチンを利用するアプリケーションによって動的に読み込まれる。拡張子も.dll
メリットとして、複数のアプリケーションで利用する機能を一つのファイルにまとめられるので、ディスク容量を節約できたり、動的にロードできるのでメモリ容量も節約できる。

参考文献

インサイドWindows第7版(上)
Windowsはなぜ動くのか
絵で見てわかるWindowsインフラの仕組み

自分用WindowsAPIメモ

Winodws API

WindowsOSのプログラミングインターフェース。32ビットバージョンは64ビットと区別するためWin32 APIと呼ばれることもある。

COM

プログラムの機能を部品化したコンポーネントをアプリケーションから利用できるようにする規約。異なる言語で呼び出せる。

OLE

officeアプリケーション等でドキュメント間の通信やデータ交換を可能にするための機能。COMで利用できる。

Windows ランタイム(Win RT)

Windows8で搭載された新しいAPIAPIの観点で見ると、COMの上位に構築されており、基本的なCOMのインフラストラクチャに様々な拡張機能を利用する。(完全な型のメタデータなど)

.NET Framework

ソフトウェア開発用のフレームワークで、「共通言語ランタイム(CLR)」と「.NET Framework クラスライブラリ(FCL)」の二つで構成される。

共通言語ランタイム(CRL)

実行中のアプリケーションを処理する実行エンジン。COMやDLLとして実装され、WindowsAPIによって提供される様々な機能を使用する。

.NET Framework ライブラリ(FCL)

一般的な機能のための一連のAPIと様々な型を提供する。

参考文献

インサイドWindows第7版(上)

自己紹介です!

初めまして!これから「勝負手」というハンドルネームでXやはてなブログで発信していくので宜しくお願いします!

 

 

簡単な自己紹介ですが、2024/3/19現在で、

 

年齢 : 22歳(学年としては今年大学卒業の方と同じ)

ITの経験 : 2023年2月にSESに入社し、4月から今の案件に配属されています。

仕事内容 : インフラ(特にWindowsServer)の運用保守監視と、ヘルプデスク

将来の目標 : インフラ方面で頑張ることは確定(アプリやデータサイエンスはしない)。

 

出来れば今業務で触ってるWindowsを強みにしたいなーと思っています!

 

 

今までの人生

中学二年から夢を追って、高校も通信制にして正直勉強を捨てる形で頑張ってたのですが、結局夢かなわず20歳くらいで挫折。

他の仕事で食っていかないとってなったときに、ITが一番面白そう!&何の根拠もないけど向いてる自覚があったので、知識0の状態から勉強をはじめました。

勉強はじめたらやっぱり面白いし、向いてるなって思ったので半年ちょっと勉強して入社しました。

プログラミングよりOSの勉強の方が興味があったのでインフラの道に。

 

 

自己紹介としては以上です。気軽にXとかでフォローしてください!