مقدمه
امنيت در محصولات Microsoft SharePoint به امنيت ساير محصولات و تكنولوژي ها نظير ASP.Net , IIS , SQL Server و Windows Server بستگي دارد. اين گونه پياده سازي لايه اي امنيت كه به عنوان دفاع عمقي شناخته مي شود بسيار حياتي مي باشد. بدين معني كه امنيت به صورت لايه هاي امنيتي شامل سياست هاي امنيتي سازماني, تنظيمات Windows Server , تنظيمات IIS , تنظيمات ASP.NET , تنظيمات محصولات SharePoint , امنيت ارتباطات, تنظيمات firewall و نظير آنها مي باشد. در اين مستند بر روي authentication, authorization, code access security, and communication security در محصولات SharePoint تمركز مي كنيم.
Authentication- كه از سرمايه اصلي Windows استفاده مي كند و بنابراين مي تواند از روش هاي تعيين هويت نيرومند, سياست هاي مربوط به رمز عبور, سياست هاي تحريمي حساب كاربري و رمز گذاري استفاده نمايد.
Authorization- مبتني بر مدل permissions جهت اطمينان از كنترل كامل بر دسترسي به محتواهاي يك سايت مي باشد.
Code access security- در .Net Framework به شما اجازه مي دهد تا دسترسي به كد را جهت محافظت از منابع و عمليات كنترل كنيد.
روش هاي امنيتي همانند SSL و IPSec كه به شما اجازه مي دهند تا از ارتباطات در داخل و بيرون از firewall محافظت كنيد.
- محافظت firewall از سايت هاي خارجي.
Authentication
در SharePoint , authentication بر مبناي Windows security accounts مي باشد. براي سايت هاي SharePoint , ASP.NET جهت استفاده از Windows authentication تنظيم شده است. با اين روش ASP.NET به IIS جهت تعيين هويت Client ها اعتماد مي كند. IIS درخواست كاربران را به وسيله Windows security accounts تعيين هويت مي كند. بعد ازاينكه IIS يك Client را تعيين هويت نمود, يك شي شناسايي كاربر را به ASP.NET ارسال مي كند(شكل 1).
شكل 1. ارسال شي شناسايي كاربر در حالت Windows authentication
مي توانيد از شماهاي مختلف تعيين هويت IIS جهت محصولات SharePoint به صورت ذيل استفاده نماييد:
Basic
Basic authentication قسمتي از پروتكل HTTP 1.1 مي باشد كه توسط تمام مرورگرها پشتيباني مي شود. البته اين حالت بايد به همراه SSL استفاده شود.
Integrated Windows
روش تعيين هويت يكپارچه ويندوز يك روش ايمن و مناسب جهت سايت هاي اينترانتي مي باشد. اين روش به دو صورت Kerberos و NTLM پياده سازي مي شود و بر روي پراكسي سرور قرار نمي گيرد.
Client Certificates Mapping
اين روش يك روش اختياري مي باشد و زماني استفاده مي شود كه SSL بين كلاينت و سرور فعال بوده و كلاينت ها داراي گواهي X.509 باشند.
Anonymous
روش تعيين هويت Anonymous اجازه دسترسي بدون تعيين هويت به سايت را از طريق يك كاربر پيش فرض (IUSR_machinename ) مي دهد. زماني كه IID يك درخواست دسترسي Anonymous را دريافت مي كند, از اين كاربر پيش فرض استفاده مي كند. در نتيجه شناسه اي كه به ASP.NET ارسال مي شود IUSR_machinename مي باشد.
دسترسي كاربران در محصولات SharePoint برمبناي امنيت ويندوز همانند حساب كاربري منفرد و يا حساب كاربري گروهي (كاربر دامنه و گروه دامنه) مي باشد.
به علاوه جهت دسترسي به سايت هاي SharePoint , قابليتي تحت عنوان Single Sign-On (SSO) وجود دارد كه به كاربران اجازه مي دهد تا به سايت وارد شده و سپس ساير برنامه هاي كاربردي بتوانند از اين تعيين هويت كاربر استفاده بنمايند. اين عمل توسط سرويس SSO پياده سازي شده و از تعيين هويت نمودن هاي مكرر كاربر جلوگيري مي كند.
Authorization
Authorization مشخص مي كند كه كاربر تعيين هويت شده به كدام منابع و عمليات هاي دسترسي دارد. در SharePoint دسترسي به سايت ها از طريق سيستم عضويت مبتني بر نقش كنترل مي شود بدين صورت كه هر كاربر به صورت مستقيم و غير مستقيم داراي مجوزي است كه مي تواند به عمليات هاي خاصي دسترسي را كنترل كند. اين سيستم عضويت مبتني بر گروه ها مي باشد. اين گروه ها مشخص مي نمايند كه هر كاربر چه اختياراتي در يك سايت دارد. اختيارات مشخص مي نمايند كه چه عمليات هاي خاصي را كاربر بر روي سايت مي تواند انجام دهد.
SharePoint از گروه هاي سايت جهت مديريت امنيت در سطح سايت استفاده مي نمايد. هر كاربر حداقل عضو يكي از اين گروه ها مي باشد و دسترسي به محتويات سايت از طريق سيستم عضويت گروه هاي سايتي كنترل مي شود. كاربري كه عضو يك گروه سايتي نباشد نمي تواند به سايت مربوطه دسترسي داشته باشد.
SharePoint از شش گروه سايتي پيش فرض با سطوح دسترسي قابل تنظيم استفاده مي نمايد. همچنين مي توان گروه هاي سايت دلخواه را با سطوح دسترسي دلخواه تنظيم نمود. اين شش گروه به قرار ذيل مي باشند:
Reader
Member
Contributor
Designer
Administrator
Content Manager
شكل 2 چگونگي اعطاي مجوز دسترسي كاربران به يك سايت پورتال را نشان مي دهد.
شكل 2. اعطاي مجوز دسترسي به يك سايت پورتال
اين قابليت كنترل مي نمايد كه آيا كاربران اجازه ساخت سايت ها و سايت هاي شخصي را دارند. مجوز ساخت سايت به كاربران اجازه مي دهد تا توسط Self-Service Site Creation سايت هاي پورتالي ايجاد نمايند. مجوز ايجاد سايت هاي شخصي به كاربران اجازه ايجاد سايت هاي شخصي را توسط يك لينك از قبل مهيا شده را مي دهد. مديريت سايت مكان و نحوه نامگذاري اين سايت ها را مي تواند كنترل نمايد.
دسترسي بي نام[1]
دسترسي بي نامبه كاربران اجازه مشاهده صفحات يك سايت پورتال و يا جستجو در اين پورتال را به صورت بي نام مي دهد. زماني كه دسترسي بي نام در SharePoint فعال مي شود در واقع دسترسيبه سايت در IIS براي حساب كاربري IUSR_machinename فعال مي شود.
انجام وظايف مديريتي
- جهت انجام هر گونه وظيفه مديريتي كه بر روي تنظيمات تمام سايت ها و سرورهاي مجازي تاثير مي گذارد, يك كاربر بايد مدير سيستم سرور و يا عضوي از گروه مديريتي SharePoint باشد.
- كاربراني كه عضو گروه مديريت سايت مي باشند تنها مدير آن سايت مشخص هستند.
امنيت كتابخانه اسناد
اغلب نيازمند ايجاد دسترسي محدود به اطلاعات كتابخانه اسناد مي باشيم. در بعضي موارد, نيازمند محدود نمودن امكان مشاهده مستندات تنها توسط كساني كه آنها را ويرايش و يا تاييد مي كنند مي باشيم.
در كتابخانه اسناد قديم,نقش هاي SharePoint عمليات هايي همچون check-in , check-out , publish و approve را براي مجوز هاي دسترسي فايل قديمي عمانند Read , Write و Change را فراهم مي نمايد. همچنين سه نقش ثابت وجود دارد كه هر نقش داراي يك مجموعه از مجوزهاي دسترسي مشخص به قرار ذيل مي باشند:
- هماهنگ كننده ها وظايف مديريتي را اداره مي كنند.
- مولف فايل ها را اضافه و به روز مي نمايد.
- خوانندگان تنها دسترسي خواندن به مستندات منتشر شده دارند.
نتايج جستجو
سرور SharePoint سياست هاي امنيتي را در سرورهاي سازمان, فايل هاي به اشتراك گذاشته شده و پايگاه هاي داده در خلال جستجو بكار مي گيرد. مجوز دسترسي بسيار مهم بوده و از پيدا نمودن مستندات كه به آنها دسترسي ندارد در حين جستجو در سايت جلوگيري مي كند.
Code Access Security
SharePoint از code access security جهت كنترل دسترسي به منابع محافظت شده استفاده مي كند. Code access security يك مكانيزم ا��نيتي مي باشد كه به شما اجازه مي دهد تا به محصولات SharePoint يك سطح قابل تنظيمي از اعتبار را نسبت بدهيد كه مربوط به مجموعه از پيش تعيين شده اي از مجوزهاي دسترسي مي باشد. Code access security به كد اجازه مي دهد تا در درجات مختلفي داراي اعتبار باشد, وابسته به جايي كه كد از آنجا شروع شده. Code access security وظيفه مندي هاي ذيل را فراهم مي نمايد:
امنيت ارتباطات
ارتباط امن بين اجزا محصولات SharePoint يك امر حياتي در ارتباط با معماري امنيت مي باشد. براي اين منظور بهره گيري از روش هاي مختلف برقراري ارتباط امن در داخل و خارج از firewall بسيار مهم مي باشد. ارتباط امن, محرمانگي و جامعيت داده ها را فراهم مي كند.
محرمانگي اطمينان مي دهد كه داده ها محرمانه باقي مي مانند و نمي توان آنها را به وسيله ابزارهاي مانيتور شبكه استراق سمع نمود. محرمانگي معمولا توسط رمزگذاري فراهم مي شود.
جامعيت اطمينان مي دهد كه داده ها در حين انتقال به صورت تصادفي و عمدي تغيير پيدا نمي كنند. كانال هاي ارتباط امن بايد سازگاري داده ها را فراهم كنند. سازگاري معمولا توسط كدهاي پيام تاييد[2] (MACs) فراهم مي شود.
جهت فراهم نمودن امنيت در ارتباط از روش هاي ذيل استفاده مي شود:
ارتباط با SQL Server
در SharePoint ارتباطات بين وب سرورهاي front-end و سرورهاي كه SQL Server بر روي آنها اجرا مي شود رمزگذاري شده نمي باشد. بنابراين پيشنهاد مي شود كه از SSL و يا ساير ارتباط سرور به سرور امن همانند IPSec استفاده شود.
ارتباطات بين سرورهاي شاخص گذاري و جستجو
در يك server farm كه محصولات SharePoint در آن اجرا مي شوند, زماني كه شاخص ها از طريق يك سرور شاخص گذاري به يك سرور جستجو منتشر مي شوند, اين انتقال رمزگداري نشده و بنابراين ممكن است امن نباشد. از اينرو براي برقراري ارتباط امن بين اين دو سرور IPSec پيشنهاد مي شود.
استفاده از firewall جهت محافظت از سايت هاي SharePoint
زماني كه سايت SharePoint سرويس هاي را براي ارائه در يك اكسترانت فراهم مي نمايد و يا از طريق اينترنت براي عموم قابل دسترس مي باشد, ضروري است كه دسترسي هاي خارجي به سايت از طريق firewall انجام پذيرد. اين firewall تمام ترافيك وارد شونده و خارج شونده را كنترل نموده و مطابق با سياست هاي از پيش تعيين شده اجازه و يا عدم اجازه ترافيك را مي دهد.
بهره گيري از SSL براي توسعه خارجي
در محيط وب, استفاده از SSL ميان مرورگرهاي وب و سرورهاي وب front-end جهت ايجاد يك كانال ارتباطي امن بسيار متداول مي باشد. در توسعه محصولات SharePoint , SSL يك روش امن براي برقراري لينك ارتباطي رمزگذاري شده با كاربراني كه خارج از firewall با سايت ارتباط برقرار نموده اند را فراهم مي كند.
[1] Anonymous
[2] Message Authentication Codes