در این مقاله انواع اشیاء مانند کاربران و کامپیوترها را در اکتیو دایرکتوری بیان کرده و ساختار ذخیرهسازی آن را شرح خواهیم داد. همچنین اجزای ساختاری AD مانند tree، forest، domain و trustها را بیان مینماییم.
اکتیودایرکتوری چیست؟
اکتیو دایرکتوری (AD) یک سرویس برای مدیریت منابع شبکه است که توسط شرکت مایکروسافت و به منظور کار در محیطهای ویندوزی تهیه شده است. هدف اصلی آن فراهم کردن سرویسی متمرکز برای احراز هویت (Authentication) و تعیین مجوزها (Authorization) برای کامپیوترهای ویندوزی میباشد. اکتیودایرکتوری همچنین امکان تعیین سیاستها، نصب نرمافزارها و اعمال بهروز رسانیهای مهم را برای مدیران شبکه (Administrator) فراهم میکند.
کارکرد اساسی دیگر اکتیودایرکتوری، ذخیرهسازی اطلاعات و تنظیمات شبکه به صورت متمرکز است. یک پایگاهدادهی اکتیودایرکتوری میتواند شامل چند صد شئ تا چند میلیون شئ باشد. هر چند امروزه، بسیاری از سازمانها از ابزارهای مدیریت اکتیو دایرکتوری مانند برنا استفاده میکنند، با این وجود دانش و تخصص کامل در مورد اکتیو دایرکتوری برای ادمینهای شبکه ضروری است.
اشیاء در اکتیودایرکتوری
دادههایی که در اکتیودایرکتوری ذخیره میشوند، مانند اطلاعات کاربران، تماسها، پرینترها، سرورها، پایگاههای داده، گروهها، کامپیوترها، پوشهها و سیاستهای امنیتی، همه تحت عنوان اشیائی در اکتیودایرکتوری ذخیره میشوند. به طور کلی، اشیاء در اکتیودایرکتوری به سه دسته اصلی تقسیم میشوند: منابع (مانند پرینترها)، سرویسها (مانند ایمیل) و کاربران (که شامل کاربران، اطلاعات تماس و گروهها میشود). علاوهبر ذخیرهسازی این اشیاء، اکتیودایرکتوری امکاناتی را برای سازماندهی کردن و تعیین دسترسی به این اشیاء فراهم میکند.
هر شئ که در اکتیودایرکتوری ذخیره میشود نمایانگر یک هویت (مانند کاربر، کامپیوتر، پرینتر، گروه و …) است که شامل مجموعهای از صفات (Attribute) میباشد. هر شئ در اکتیودایرکتوری با استفاده از نام و مجموعه صفاتش به طور یکتا قابل شناسایی است. ویژگیها و صفاتی که یک شئ میتواند داشته باشد به وسیلهی اسکیما (Schema) تعریف میشود که مشخصکنندهی نوع شئ ذخیرهشونده در اکتیودایرکتوری نیز میباشد. اسکیما در حقیقت تمام اشیائی که میتوانند در اکتیودایرکتوری ساخته شوند را به همراه صفات هر یک از این اشیاء تعریف میکند.
صفات اشیاء در اکتیودایرکتوری در حقیقت همان ویژگیهای آنها میباشند. برای مثال، صفات مربوط به یک حساب کاربری شامل نام، نام خانوادگی، نام کاربر (که با آن لاگین انجام میشود) میباشد، در حالی که صفات یک کامپیوتر میتواند شامل مواردی متفاوت مانند نام کامپیوتر و توضیحات آن باشد. در اکتیو دایرکتوری صفات در پنجرهی ویژگیهای (Properties) قابل دسترس است، اما ساختار چیدمان آن کار با آن را سخت کرده است. اغلب، سازمانها بر اساس نیازشان، برخی صفات را اجباری و برخی را اختیاری میدانند. اما در خود اکتیو دایرکتوری نمیتوان به سادگی پنجرهی صفات را به گونهای که نیاز سازمانها را برآورده کتد تغییر داد. از این رو اغلب سازمانها از نرمافزارهایی مانند برنا برای ایجاد فرمهای ساخت و تغییر کاربران استفاده میکنند.
آشنایی با ساختار اکتیودایرکتوری
حال که اشیاء را در اکتیودایرکتوری شناختید، نوبت به آن میرسد که با چگونگی سازماندهی این اشیاء در اکتیودایرکتوری آشنا شوید. هر چند میتوان تمام اشیاء را همتا و همسطح یگدیگر دانست، این امر چندان هم بهینه نیست، زیرا که امکان گروهبندی اشیاء بر اساس ویژگیهای مشترک را به ما نمیدهد-برای مثال دستهبندی اشیاء بر اساس کسی که آنها را مدیریت میکند. در حقیقت، دلیل اصلی پیدایش ساختار کنونی اکتیودایرکتوری روشی است که با آن سازمانهای IT تمایل به مدیریت اکتیودایرکتوری (مدل مدیریتی) دارند. در شکل 1 شمای کلی ساختار اکتیودایرکتوری نمایش داده شده است.
استفاده از domain ،tree و forest در ساختار اکتیو دایرکتوری
در این بخش به سه جزء اساسی ساختار اکتیو دایرکتوری یعنی domain ،tree و forest میپردازیم.
دامین
اصلیترین جزء هر اکتیو دایرکتوری domain میباشد. هر نمونه از اکتیو دایرکتوری که نصب میشود حداقل شامل یک شئ domain میباشد. شما میتوانید domain را همانند مرز مدیریتی تصور کنید که بر اساس آن هر domain مجموعه مدیران خود را دارد. دامینها یا همان domainها در مجموعه سرورهایی قرار میگیرند که به آنها Domain Controller (DC) میگویند.
Tree
اکتیو دایرکتوری از tree به منظور دستهبندی گروهها به صورت سلسلهمراتبی استفاده مینماید که در آن دامینها به صورت فرزند یا اولاد نگهداری میشوند. در اکتیو دایرکتوری ساختار نامگذاری به صورت سلسلهمراتبی پیادهسازی شده است، به این معنی که نام فرزند، الحاقی از نام آن و نام والد آن است (که به آن FQDN یا Fully Qualified Domain Name میگویند). برای مثال اگر نام فرزند Tehran و نام والد آن danapardaz.net باشد، نام FQDN فرزند برابر با Tehran.danapardaz.net خواهد بود.
Forest
یک forest مجموعهای از یک یا چند tree یا درخت اکتیو دایرکتوری است، که به صورت همتا در نظر گرفته شده و دارای رابطهی trust از نوع دوطرفهی متعدی (Transitive) است (مفاهیم مربوط به trust در ادامه توضیح داده خواهند شد). تمام دامینهای موجود در یک forest اسکیمای مشترک و یکسانی دارند که موجب ایجاد یک فضای نامگذاری پیوسته و سازگار میشود. اولین دامین در هر forest دامین ریشه (Root domain) نامیده میشود. اکتیو دایرکتوری همچنین یک پایگاهدادهی یکسان و مخصوص را بین تمام دامینها به اشتراک میگذارد که هدف آن فراهم کردن امکان جستجوی سریع و بهینهی تمام اشیاء است. به این پایگاهداده Global Catalog میگویند.
واحدهای سازمانی (Organization Unit) در مقابل container
آخرین بخش از اجزاء ساختار اکتیو دایرکتوری که ما در این بخش به آنها میپردازیم واحدهای سازمانی و container نام دارند.
Container
به زبان ساده، container اشیائی هستند که خود در برگیرندهی اشیائی دیگر هستند. هر دامین شامل مجموعهای پیشفرض از containerها میباشد که در زیر به برخی از آنها اشاره شده است:
- Built-in: شامل تعدادی گروه پیشفرض میباشد که در هر دامین وجود دارد.
- Computer: شامل تمام کامپیوترهایی میباشد که عضو دامین هستند.
- Domain controllers: شامل سرورهای DC که در این دامین هستند.
- Foreign security principles: نشاندهندهی روابط trust با این دامین است.
- Users: شامل حسابهای کاربری تمام کاربران این دامین است.
واحد سازمانی (OU)
واحد سازمانی که به اختصار به آن OU نیز میگویند مشابه با container است با این تفاوت که OUها توسط مدیر شبکه و بسته به نیاز سازمان ساخته میشوند. به عبارت دیگر، OUها خود containerهایی هستند که بسته به نیاز و ساختار منطقی گروهبندی در یک سازمان ساخته میشوند.
به عنوان یک مدیر شبکه، شما ممکن است که ساختاری از OUها را ایجاد کنید که نمایانگر ساختار سازمانی شرکت شما باشد. برای مثال شما میتوانید یک OU برای هر دپارتمان (مانند مالی، پشتیبانی، فروش و …) ایجاد کنید.
اشیاء OU خود میتوانند شامل OUهای دیگر نیز باشند که به آن به اصطلاح OUهای تودرتو (Nesting OUs) گویند. در طراحی اکتیو دایرکتوری، توصیه شده است که در صورت امکان کمترین تعداد دامین ساخته شود و هر جا نیاز به ساختار سلسلهمراتبی برای اعمال سیاستها و مدیریت بود از OUهای تودرتو استفاده شود. OU یکی از رایجترین اشیاء برای تعیین سیاستهای گروهی (Group Policy)میباشد (هر چند حتی در سطح دامین یا forest هم میتوان سیاست گروهی اعمال نمود). سیاستها گروهی، مجموعهای از سیاستها و قوانین مشخص هستند که میتوان توسط اکتیو دایرکتوری به اشیاء (خصوصاً کامپیوترها، کاربران و OUها) اعمال کرد. برای مثال با استفاده از سیاستهای گروهی، میتوان کاربرانی را که در یک OU مشخص قرار دارند موظف کرد تا رمز عبورشان را هر 30 روز عوض کنند. دلیل اهمیت OUها در این است که میتوان بر اساس ساختار سازمانی مدیریت را به مدیران جزءتر تفویض کرد به این ترتیب که حوزه مدیریت آنها به OU مربوط به خودشان محدود میشود.
تعریف Trust در اکتیو دایرکتوری
Trustها آخرین جزء اصلی اکتیودایرکتوری هستند که در این مقاله به آن میپردازیم. Trustها در حقیقت روابط بین دامینها را مشخص میکنند.
Trustهای متعدی در اکتیو دایرکتوری
به رابطهای تعددی گویند که آن رابطه به خارج از دو طرف رابطه قابل گسترش باشد. به عبارت دیگر اگر بین دامینهای A و B و همچنین دامینهای B و C رابطهی trust وجود داشته باشد، در صورت متعدی بودن این دو رابطه، رابطهی trust بین A و C نیز به طور خودکار وجود خواهد داشت.
هر بار که یک دامین جدید در forest ایجاد میشود، یک رابطهی دوطرفه و متعدی بین دامین جدید و والد آن ایجاد میشود. در نتیجهی این رابطهی متعدی، در صورت ایجاد یک دامین جدید، این دامین رابطهای با تمام دامینهایی که در سلسلهمرتب forest در سطح بالاتری از آن قرار دارند خواهد داشت.
درخواستهای احراز هویت نیز از این روابط تاثیر میپذیرند. بدین ترتیب، کاربرانی که در دامینهای دیگری قرار دارند ولی بین دو دامین رابطهی trust وجود دارد میتوانند در آن دامین نیز احراز هویت شوند.
دو نوع رابطهی trust در اکتیودایرکتوری وجود دارد:
- Shortcut trust: این نوع رابطه بین دامینهای موجود در یک forest شکل میگیرد و برای بیان رابطه به صورت سر راست و مختصر در ساختارهای پیچیده به کار میرود.
- Forest trust: این رابطه بین دو forest مجزا تشکیل میشود و میتواند یکطرفه یا دوطرفه باشد. به کمک این رابطه کاربران دو forest میتوانند به forest دیگر متصل شوند و با حساب کاربری خود در forest دیگر احراز هویت شوند.
Trustهای نامتعدی در اکتیو دایرکتوری
یک رابطهی غیرمعتدی، برخلاف رابطهی متعدی، قابل گسترش به روابط دیگر نیست. این رابطه هم میتواند یکطرفه باشد و هم میتواند دوطرفه باشد. توجه داشته باشید که به طور پیشفرض روابط غیرمتعدی یک طرفه هستند، اما میتوان با ساخت دو رابطهی یکطرفه، یک رابطهی دوطرفه ساخت.
همانطور که در این مقاله دیدید، ساختار اکتیودایرکتوری بسیار پیچیده است و مدیریت بی نقص آن نیازمند دانشی بسیار بالا و تجربهی کافی است. هر چند داشتن دانش بالا برای راه اندازی و مدیریت اکتیو دایرکتوری ضرور است، بسیاری از کارهای ساده و در عین حال وقت گیر (مانند ساخت حساب کاربری یا تغییر رمز عبور) نیاز به دانش فنی ندارند. امروزه، بسیاری از سازمانهای بزرگ از ابزارها و نرمافزارهای کمکی مانند، نرمافزار مدیریت AD برنا، برای سادهسازی اعمال مرتبط با AD و همچنین اطمینان خاطر از امینت آن استفاده میکنند.