مقایسه و بررسی SID vs GUID در سرویس اکتیودایرکتوری
هنگامی که در دامین خود یک کاربر و یا یک گروه ایجاد می نمایید، سرویس Active Directory برای کاربر و یا گروه ایجاد شده یک SID در نظر می گیرد. به منظور کسب اطلاعات بیشتر در خصوص چگونگی مشاهده SID مرتبط با یک کاربر و یا گروه، اینجا را کلیک کنید. می توان به جرات گفت که اکثر مدیران شبکه می دانند که یک SID در یک دامین کاملا یکتا بوده و از اجزای مختلفی تشکیل شده است و از آن می توان در شناسایی یک کاربر، گروه و یا کامپیوتر به منظور تعریف نمودن سطوح دسترسی استفاده نمود. اما چیزی که اکثر مدیران شبکه از آن اطلاع چندانی ندارند آنست که یک SID از چه قسمت هایی تشکیل شده است.
جالب است که بدانید، علاوه بر SID، سرویس Active Directory برای هر object یک GUID و یا به صورت کاملتر یک Globally Unique Identifier در نظر می گیرد. بر خلاف SID که یکتا بودن آن در سطح یک دامین تضمین شده است، یک GUID می بایست در سطح دنیا یکتا باشد. به عنوان مثال فرض کنید که یک کاربر در سطح دامین خود ایجاد نموده اید و به تبع آن، سرویس Active Directory برای آن یک GUID در نظر گرفته است. در این حالت، هر کجای دنیا که از سرویس Active Directory استفاده کنند، بنا به تعریف، نمی توانید کاربری با GUID یکسان با کاربر مورد نظر خود پیدا کنید. همچنین، بر خلاف SID که تنها برای کاربران، گروه ها، کامپیوتر اکانت ها و نهایتا سرویس ها در نظر گرفته می شود، هر object قابل تعریف در سرویس Active Directory دارای یک GUID یکتا می باشد.
سرویس Active Directory از GUIDها به منظور انجام فعالیت های درونی خود استفاده می نماید. جالب است که بدانید، GUID از جمله مواردیست که از سوی Active Directory در Global Catalog ذخیره می گردد. بدین ترتیب می توان از امکانات جستجوی Global Catalog در خصوص یافتن object مورد نظر خود بر اساس GUID، در سطح کل forest استفاده نمود. در حقیقت، جستجوی یک object بر اساس GUID مرتبط با آن، مطمئن ترین روش جهت یافتن نتایج دلخواه می باشد. ارزش مقادیر دیگر attributeهای مرتبط با یک object می تواند در سناریوهای مختلف تغییر نماید و این در حالیست که GUID مرتبط با یک object به هیچ عنوان تغییر نمی کند.
جالب است که بدانید، SID می تواند در شرایطی تغییر کند. به عنوان مثال، هنگامی که یک کاربر از یک دامین به دامین دیگری منتقل می گردد، SID مرتبط با آن نیز بر اساس دامین مقصد، تغییر می کند. با توجه به این واقعیت و این موضوع که سطوح دسترسی تعریف شده بر روی منابع موجود در شبکه بر اساس SID مربوط به کاربران، گروه ها و یا کامپیوتر اکانت ها می باشد، این تغییر می تواند مانع از دسترسی کاربر مورد نظر گردد. لذا در این خصوص شاهد ارائه قابلیتی از سوی مایکروسافت در Windows Server هستیم. این قابلیت، SID History نام دارد. با استفاده از این قابلیت جدید، هنگامی که SID مربوط به یک object، به هر دلیلی تغییر می کند، SID قبلی آن از بین نرفته و در محل دیگری (sIDHistory) ذخیره می گردد. توجه داشته باشید که این محل می تواند چندین SID را در خود جای دهد.
هنگامی که یک کاربر با موفقیت عملیات احراز هویت را پشت سر می گذارد، یک Access Token با استفاده از SID فعلی کاربر، بعلاوه SIDهای قبلی آن (البته در صورت وجود) ایجاد گردیده و برای وی ارسال می گردد. حال اگر چنانچه کاربرد مورد نظر بخواهد به یک منبع دسترسی پیدا کند، وجود SIDهای مرتبط با کاربر می تواند در نحوه دسترسی به منبع مورد نظر موثر باشد.
نکته: در نظر گرفتن GUID برای objectهای تعریف شده در سرویس Active Directory، از زمان به بازار عرض شدن Windows 2000 Server آغاز شده است.
ممکن است این سوال برای شما پیش آید که با وجود GUID، دیگر چرا مایکروسافت از SID استفاده می کند. در پاسخ به این سوال می بایست خدمت علاقمندان عرض کنم که علت این امر به دلیل آنست که در زمان Windows NT، این سیستم عامل به منظور شناسایی کاربران و یا گروه ها، از SID استفاده می نمود. این موضوع با وجود GUID، همچنان بر قوت خود در مدرن ترین سیستم عامل های کنونی نیز باقیست.
سپاس.
موضوع جالبی بود.