دسترسی ممنوع - تفویض اختیار برای CIFS با شکست مواجه شد

در حین دسترسی به سرویسی که از اشتراک‌گذاری‌های شبکه در سرورهای سطح متوسط ​​استفاده می‌کند، از کاربران خواسته می‌شود تا اعتبارنامه‌ها را دریافت کنند و در نهایت با خطای عدم دسترسی مواجه می‌شوند. در پست امروز، چند سناریو موردی را ارائه می‌کنیم، علت را شناسایی می‌کنیم و سپس راه‌حل‌های ممکن را برای این موضوع ارائه می‌کنیم که چرا تفویض اختیار محدود برای CIFS با خطای ACCESS_DENIED در ویندوز 10 شکست می‌خورد.

Common Internet File System (CIFS) یک پروتکل به اشتراک گذاری فایل است که مکانیزمی باز و بین پلتفرمی را برای درخواست فایل ها و سرویس های سرور شبکه فراهم می کند. CIFS  بر اساس نسخه پیشرفته پروتکل بلوک پیام سرور (SMB) مایکروسافت برای به اشتراک گذاری فایل های اینترنت(Internet) و اینترانت است.

واگذاری محدود برای CIFS در ویندوز با شکست مواجه می شود

واگذاری محدود برای CIFS در ویندوز با شکست مواجه می شود(Windows)

در صورتی که از کاربر درخواست اعتبارنامه شود، ممکن است با این مشکل مواجه شوید و در نهایت دسترسی با خطای دسترسی ممنوع بر اساس سه سناریوی زیر با شکست مواجه شود.

سناریو 1(Scenario 1)

  • وب‌سایت IIS با دایرکتوری اصلی راه‌اندازی می‌شود که به اشتراک راه دور با استفاده از احراز هویت عبور و تفویض اختیار پیکربندی شده برای CIFS راه‌اندازی(CIFS) شده است.
  • مخزن برنامه IIS که به آن اشتراک دسترسی دارد با هویت حساب سرویس اجرا می شود.
  • حساب دامنه برای واگذاری سرویس CIFS در سرور فایل مورد اعتماد است.

سناریو 2(Scenario 2)

  • برنامه وب در تلاش است به عنوان کاربر به یک سرور فایل دسترسی پیدا کند.
  • مخزن برنامه IIS که به آن اشتراک دسترسی دارد تحت هویت حساب سرویس اجرا می شود. حساب دامنه برای واگذاری سرویس CIFS در سرور فایل مورد اعتماد است.
  • تفویض اختیار پیکربندی شده برای CIFS در حساب سرویس سرور فایل پیکربندی شده است.

سناریو 3(Scenario 3)

  • هر برنامه سمت سرور که از یک کلاینت قابل دسترسی است، به عنوان کاربر به اشتراک‌گذاری‌های راه دور دسترسی دارد.
  • برنامه سمت سرور در چارچوب یک حساب سرویس در حال اجرا است.
  • حساب سرویس(Service) برای تفویض اختیار مورد اعتماد است و برای نمایندگی CIFS برای سرور فایل پیکربندی شده است.

این به عنوان یک مشکل بین MrxSmb 2.0 و Kerberos شناسایی شده است، زمانی که تفویض اختیار درگیر است.

برای حل این مشکل، مایکروسافت(Microsoft) دو راه حل ارائه می دهد.

راه حل 1

از یک حساب ماشینی به جای حساب سرویس به عنوان هویت برنامه‌هایی که تفویض اختیار محدود را برای CIFS انجام می‌دهند ، استفاده کنید. زمانی که سطح عملکرد دامنه Windows Server 2003 ، Windows Server 2008 یا Windows Server 2008 R2 باشد، تفویض محدود را پیکربندی کنید.

برای انجام این کار در کنترلر دامنه برای دامنه سرورهای وب خود، موارد زیر را انجام دهید:

  • روی Start > Administrative Tools > Active Directory Users and Computers کلیک کنید .
  • (Expand)دامنه را گسترش دهید و سپس پوشه Computers را باز کنید.
  • در قسمت سمت راست، روی نام رایانه وب سرور کلیک راست کرده، Properties را انتخاب کنید و سپس روی  تب Delegation  کلیک کنید.
  • کادر بررسی  Trust this computer for delegation to specified services only را(Trust this computer for delegation to specified services only) انتخاب کنید.
  • مطمئن شوید که  Use Kerberos only  انتخاب شده باشد و سپس روی  OK کلیک کنید .
  • روی  دکمه افزودن کلیک کنید(Add button) .
  • در   کادر محاوره‌ای  افزودن (Add) خدمات ، روی (Services)Users یا Computers(Users or Computers) کلیک کنید و سپس نام سرور فایلی را که اطلاعات کاربری کاربر را از IIS دریافت می‌کند، مرور کنید یا نام آن را وارد کنید .
  • روی  OK کلیک کنید .
  • در   لیست  خدمات (Services)موجود ، سرویس (Available) CIFS را انتخاب کنید .
  • روی  OK کلیک کنید .

راه حل 2

این راه‌حل توصیه نمی‌شود(not recommended) زیرا به  استفاده از(Use) هر گونه پروتکل احراز هویت در حساب رایانه نیاز دارد. اگر گزینه  Use any authentication protocol  انتخاب شده باشد، حساب از واگذاری محدود با انتقال پروتکل استفاده می کند.

اگر باید از هویت برنامه‌ها به عنوان حساب سرویس و/یا حساب دامنه استفاده کنید، موارد زیر را انجام دهید:

مرحله 1(Step 1)

  • روی StartAdministrative Tools > Active Directory Users and Computers کلیک کنید .
  • (Expand)دامنه را گسترش دهید و سپس پوشه Computers را باز کنید.
  • در قسمت سمت راست، روی نام رایانه وب سرور کلیک راست کرده، Properties را انتخاب کنید و سپس روی  تب Delegation  کلیک کنید.
  • کادر بررسی  Trust this computer for delegation to specified services only را انتخاب کنید.
  • مطمئن شوید که  Use any authentication protocol انتخاب شده باشد.
  • روی OK کلیک کنید .
  • روی  دکمه افزودن کلیک کنید(Add button) .
  • در   کادر محاوره‌ای  افزودن (Add) خدمات ، روی (Services)Users یا Computers(Users or Computers) کلیک کنید و سپس نام سرور فایلی را که اطلاعات کاربری کاربر را از IIS دریافت می‌کند، مرور کنید یا نام آن را وارد کنید .
  • روی  OK کلیک کنید .
  • در   لیست خدمات (Services)موجود ، (Available) سرویس CIFS(CIFS service) را انتخاب کنید .
  • روی  OK کلیک کنید .

گام 2(Step 2)

  • در قسمت سمت چپ، پوشه Users را باز کنید.
  • در قسمت سمت راست، روی حساب سرویس که هویت استخر برنامه است کلیک راست کنید،  Properties را انتخاب کنید و سپس روی  برگه Delegation  کلیک کنید.
  • کادر بررسی  Trust this computer for delegation to specified services only را(Trust this computer for delegation to specified services only) انتخاب کنید.
  • مطمئن شوید که  Use Kerberos only انتخاب شده باشد.
  • روی OK کلیک کنید .
  • روی  دکمه افزودن کلیک کنید(Add button) .
  • در  کادر محاوره‌ای  افزودن (Add) خدمات ، روی (Services)Users یا Computers(Users or Computers) کلیک کنید و سپس نام سرور فایلی را که اطلاعات کاربری کاربر را از IIS دریافت می‌کند، مرور کنید یا نام آن را وارد کنید .
  • روی  OK کلیک کنید .
  • در   لیست خدمات (Services)موجود ، (Available) سرویس CIFS(CIFS service) را انتخاب کنید .
  • روی  OK کلیک کنید .

امیدوارم این پست کمک کند.(Hope this post helps.)



About the author

من یک مهندس نرم افزار با تجربه در Xbox Explorer، Microsoft Excel و Windows 8.1 Explorer هستم. در اوقات فراغت دوست دارم بازی های ویدیویی انجام دهم و تلویزیون تماشا کنم. من از دانشگاه یوتا مدرک دارم و در حال حاضر به عنوان مهندس نرم افزار برای یک شرکت بین المللی کار می کنم.



Related posts