SharePoint 2007 מגדיר Trust Levels באמצעות קבצי קונפיגורציה. כברירת מחדל, מגיעות שתי רמות אבטחה ישר מהקופסה: Minimal ו- Medium. רמת אבטחה שלישית (FullTrust), הינה הורשה מ- Asp.Net.
ההבדלים בין רמות האבטחה השונות מתבטאים, בזכויות גישה למשאבים מקומיים, גישה ל- Databases וכן הלאה.
רמת האבטחה נקבעת בקובץ ה- web.config של כל אפליקציה, והיא מגדירה עבור Web Parts ועבור כל קוד פרטי, את זכויות הגישה שלו למשאבים מקומיים.
מתי צריך רמות אבטחה שונות?
בחלק גדול מהפורטלים הפנים ארגוניים שאני מגיע אליהם, אני מגלה שהגדירו את רמת האבטחה על Full Trust.
תוכניתנים ומיישמי MOSS בדרך כלל לא רוצים את “כאב הראש” שכרוך ביישום רמת אבטחה ייחודית, ואת ההשלכות מרמת אבטחה ספציפית (למשל, הצורך לחתום קוד, והצורך להגדיר הרשאות למקורות מידע). כפתרון, הם מורידים את רמת האבטחה הכללית, ומגדירים את הפורטל כולו כ- Full Trust.
לעיתים, ההגדרה הזו בעייתית. פורטל ארגוני יכול להיפרס עבור ארגון גדול, הדורש מידור בין היחידות השונות. מצב בעייתי נוסף הוא כאשר הפורטל מכיל תכנים רגישים, או סודיים של הארגון, ועמדות הגישה עשויות להיחשף לגורמים זרים (למשל, עמדת עבודה הנשארת פתוחה לשימוש כלל העובדים, וכד’).
הגדרת רמת אבטחה מותאמת אישית
הגדרת רמת אבטחה מותאמת אישית, הינה תהליך פשוט למדי, בעל שלושה שלבים:
- יצירת קובץ ההגדרות
- עריכת הקובץ והוספת הנחייות לכל Web Part או מקטע קוד נדרש
- הגדרת רמת האבטחה החדשה ב- web.config
יצירת קובץ ההגדרות
כתיבת קובץ הגדרות מאפס היא משימה לא פשוטה, ומיותרת. כדאי להתחיל מקובץ הגדרות קיים, ולשפר אותו. לא מדובר בערכית הקבצים הקיימים, אלא בעריכת העתק שלהם.
חשוב: אל תמחקו את הקבצים המקוריים. צרו העתק של הקובץ, ועיבדו עליו.
בהנחה שהתקנת את MOSS במקום ברירת המחדל, קבצי ההגדרות יימצאו בתיקיה:
C:\Program Files\Common Files\Microsoft Shared\web server\extensions\12\CONFIG
קיימים קבצי הגדרות עבור שתי רמות האבטחה: wss_minimaltrust.config ו- wss_mediumtrust.config עבור רמת האבטחה הנמוכה והבינונית בהתאמה.
בחרו את רמת האבטחה ממנה ברצונכם להתחיל, שכפלו את הקובץ, ותנו לו שם משמעותי. לצורך הדוגמא, נשכפל את wss_mediumtrust ונקרא לו: wss_custom_mediumtrust.config.
עריכת הקובץ והוספת Web Parts
בקובץ הקונפיגורציה, כל מקטע קוד שצריך רמת הרשאה מורחבת, מוגדר באמצעות ענף (Node) בשם CodeGroup. כדי להוסיף מקטע חדש, יש להוסיף ענף חדש, באופן הבא:
חשוב: כל מקטעי הקוד הפרטיים, צריכים להיות מוגדרים לאחר הענף המגדיר את
“ FirstMatchCodeGroup“ (שורה 52, בקובץ המקורי).
מבנה הענף הינו:
<CodeGroup
class=”UnionCodeGroup”
version=”"
PermissionSetName=”FullTrust”
Name=”Your descriptive name here”
Description=”Free text description.”>
<IMembershipCondition
class=”StrongNameMembershipCondition”
PublicKeyBlob=”033200040480000094000000060200340024000
052534131000400000100010007D1FA57C4AED9
F0A32E84AA0ADEFD0DE9E8FD6AEC8F87FB03766
C83DC99921EB23BE79AD9D5DAA1DD9AD2361321
02900B723CF980957FC4E177108FC607774F29E
8320E92EA05ECE5E821C0A5ECE8F1645C4C0C93
C1AB99285D622CAA652C1DFAD63D745D6F2DE5F
17E5EAF0FC4963D261C8ABDAB6518206DC09334
4D5AD293″>
</IMembershipCondition>
</CodeGroup>
חלקי הענף אותם יש לשנות, הם:
Name – שם הקוד או ה- WebPart. טקסט חופשי, שניתן יהיה לזיהוי בקלות.
Description – תאור מקטע הקוד או ה- WebPart. טקסט חופשי.
PublicKeyBlob – ה- Public Key של הקוד החתום. הערך צריך להיות בשורה אחת רציפה, ללא רווחים וללא שבירות שורה. שבירות השורה כאן, הן לצורך נוחות הקריאה.
ניתן להשיג ערך זה, באמצעות שימוש בפקודה SN המגיעה עם VS.Net
בדרך כלל תמצא הפקודה ב-
C:\Program Files\Microsoft SDKs\Windows\v6.0A\Bin
(בהנחה שהתקנתם את VS בכונן C במיקום ברירת המחדל)
בכדי לקבל את המפתח הציבורי, השתמשו בתחביר: SN -Tp yourWebPart.dll
הפקודה היא Case Sensitive (כלומר, ל- -Tp ול- tp- יש משמעויות שונות).
אפשרות נוספת, היא שימוש ב- Dot.Net reflector, פשוט “זירקו” את ה- DLL אל חלון התוכנה, ובפרטי ה- DLL יופיע המפתח.
שינוי קובץ ה- web.config
חשוב: לפני שינויים ב- web.config יש לבצע גיבוי של הקובץ המקורי.
יש לבצע שני שינויים עיקריים: הוספת רמת האבטחה החדשה, וקביעה כי זו רמת האבטחה בשימוש.
ראשית יש להוסיף את רמת האבטחה החדשה. מאתרים את הענף: <securityPolicy>
בתוכו קיימים ענפים עבור כל רמת אבטחה מוגדרת. שימו לב, שאין ענף עבור רמת האבטחה Full, מאחר וזו מגיעה מ- ASP.Net
עבור רמת האבטחה החדשה, יש להגדיר ענף “trustLevel” חדש, באופן הבא:
<trustLevel name=”WSS_Custom_Medium” policyFile=”X:\SomePath\wss_custom_mediumtrust.config ” />
כאשר ב- name אפשר לתת כל שם ייחודי ומובן, ללא רווחים. וב- policyFile יש לציין את הנתיב המלא לקובץ שיצרתם.
השלב הבא הוא הגדרת רמת האבטחה החדשה. אתרו ב- web.config את השורה הבאה:
<trust level=”WSS_Minimal” originUrl=”" />
השורה הנ”ל מופיעה בקובץ המקורי, ייתכן שאצלכם מוגדרת כבר רמת אבטחה שונה.
שנו את ערך התכונה “level” לשם שנתתם לרמת האבטחה בשלב הקודם. בדוגמא, השתמשתי בשם “WSS_Custom_Medium” ולכן השורה שלי תראה כך:
<trust level=”WSS_Custom_Medium” originUrl=”" />
לאחר ביצוע כל השינויים, יש לבצע IISReset ולבדוק את פעילות האתר.
תגיות: MOSS, אבטחת מידע