در صورتيکه نام و رمز عبور درج شده توسط کاربر با تعاريف انجام شده در Domain شبکه ، مطابقت نمايد ، ASP.NET کاربر را تائيد و مجوز لازم به منظور استفاده از برنامه وب صادر خواهد شد . در اين رابطه ASP.NET ، يک authorization certificate را به شکل يک کوکی صادر که در حين Session کاربر ، نگهداری و از آن استفاده می گردد. Session کاربر، پس از اتمام زمان Time out و يا بستن مرورگر ، خاتمه می يابد . برنامه وب اجرای خود را متناسب با مجوزهای تعريف شده در ارتباط با Account آغاز می نمايد .
روش Windows integrated authentication در يک شبکه مبتنی بر Domain بهتر کار خواهد کرد . شبکه هائی که از Workgroup استفاده می نمايند ( در مقابل استفاده از Domain ) دارای محدوديت های خاص خود به منظور استفاده از ويژگی های امنيتی ، می باشند. شبکه های مبتنی بر Domain ، از يک کنترل کننده Domain به منظور تائيد و معتبرسازی کاربران شبکه ، استفاده می نمايد .
با استفاده از امکانات ارائه شده در فايل Web.Config می توان يک لايه امنيتی مضاعف را ايجاد نمود . دراين راستا ، می توان تنظيمات لازم به منظور دستيابی و يا عدم دستيابی کاربران و يا گروه های خاصی از کاربران را نيز انجام داد .
اعمال محدوديت برای کاربران خاص ( دستيابی و يا عدم دستيابی )
در موارديکه از روش Windows integrated authentication استفاده می گردد ، ASP.NET ، ليست تائيد موجود در فايل Web.Config را به منظور آگاهی از صلاحيت کاربران شبکه برای استفاده ازبرنامه وب ، بررسی می نمايد. کاراکترهای "*" و "؟" دارای معانی خاصی در ليست تائيد می باشند : کاراکتر "* " ، نشاندهنده تمامی کاربران و کاراکتر "؟"، نشاندهنده کاربران غير مجاز( ناشناس) می باشد . مثلا" ليست تائيد زير در Web.Config ، امکان دسـتيابی تمامی کاربران ناشناس به برنامه وب را حذف و می بايست تمامی کاربران به منظور استفاده از برنامه وب ،تائيد گردند .
|
Authorization element |
|
<authorization> <deny users="?" /> </authorization> |
به منظور اعمال محدوديت در دستيابی کاربرانی خاص ،می توان از عنصر <allow> استفاده و اسامی تمامی کاربران مجاز را با صراحت مشخص نمود (اسامی توسط ويرگول از يکديگر تفکيک می گردند) . پس از معرفی کاربران مجاز با استفاده از عنصر <allow> ، می بايست با بکارگيری عنصر <deny> ، امکان دستيابی به برنامه توسط کاربران غير مجاز، سلب می گردد .
|
Authorization element |
|
<authorization> <allow users="Ali Reaz , Reza Ali " /> <deny users="*" /> </authorization> |
ليست مجاز فوق ، امکان دستيابی دو کاربر که اسامی آنان با صراحت مشخص شده است را به برنامه وب خواهد داد. ساير کاربران ، امکان دستيابی به برنامه وب را دارا نخواهند بود ( نقش عنصر deny در مثال فوق ) علاوه بر ليست مجاز فوق که اسامی دو کاربر را مشخص و آنان را برای استفاده از برنامه وب مجاز می نمايد ، دو کاربر فوق ، می بايست دارای Account لازم در Domain شبکه نيز باشند .
تائيد کاربران بر اساس نوع وظيفه
برای تائيد کاربران به منظور استفاده از يک برنامه می توان ، مجوزهای لازم را بر اساس وظيفه آنان در سازمان ، صادر و امکان دستيابی و يا عدم دستيابی را برای آنان فراهم نمود. در ويندوز NT و XP ، وظايف به اسامی مپ شده تا از اين طريق امکان شناسائی گروه های کاربران ، فراهم گردد. ويندوز، چندين گروه را بصورت اتوماتيک از قبل ايجاد می نمايد : Administrators ,Users و Guests . در اين رابطه می توان از عنصر <roles> در ليست استفاده کنندگان مجاز برنامه وب در فايل Web.Config استفاده و امکان دستيابی به يک برنامه را با توجه به وظايف کاربر ، فراهم نمود. مثلا" ليست زير، امکان دستيابی به برنامه وب را صرفا" برای کاربرانی که به عنوان Administrator به شبکه وارد می شوند ، فراهم می نمايد.
|
Authorization element |
|
<authorization> <allow roles ="Administrators" /> <deny users="*" /> </authorization> |
پس از تائيد کاربر و صدور مجوز لازم به منظور استفاده از برنامه وب ، می توان با استفاده از خصلت Identity مربوط به شی User ، هويت کاربر ( نام و نوع وظيفه ) را از طريق برنامه شناسائی نمود.خصلت فوق، يک شی را که شامل اطلاعات مربوط به نام و وظيفه کاربراست را برمی گرداند .
|
Web form's code-behind file |
|
Private Sub Page_Load( ByVal sender As System.Object,ByVal e As System.EventArgs ) Handles Mybase.Load spnAuthenticated.InnerText = User.Identity.IsAuthenticated spnUserName .InnerText = User.Identity.Name spnAuthenticationType.InnerText = User.Identity.AuthenticationType End Sub |
به منظور آگاهی و انجام عمليات لازم با توجه به نوع وظيفه کاربر که از برنامه وب استفاده می نمايد ، می توان از متد IsInRole شی User ، استفاده نمود .
|
IsInRole method |
|
If User.IsInRole("Administrators") Then 'انجام عمليات دلخواه End If |
استفاده از تنظيمات IIS به همراه Windows Authentication
تنظيمات Authorization در فايل Web.Config با تنظيمات انجام شده در IIS با يکديگر Overlap می شوند . در صورتيکه Authorization هم در فايل Web.Config و هم توسط IIS تنظيم شده باشد ، در ابتدا تنظيمات IIS بررسی و در ادامه تنظيمات موجود در فايل Web.Config ، مورد توجه قرار خواهند گرفت. به منظور مشاهده تنظيمات authorization در IIS مراحل زير را دنبال می نمائيم :
-
در IIS بر روی فولدر برنامه وب کليک سمت راست نموده و در ادامه گزينه Properties را انتخاب می نمائيم . برنامه IIS در ادامه جعبه محاوره ای Properties مربوط به فولدر را نمايش خواهد داد .
-
بر روی Directory Security Tab کليک و در ادامه دکمه Edit را در گروه Anonymous Access And Authentication Control کليک می نمائيم . IIS ، جعبه محاوره ای Authentication Methods را نمايش خواهد داد .
-
اولين گروه از تنظيمات در جعبه محاوره ای ، کنترل دستيابی Anonymous را انجام می دهد ( همه کاربران ). غير فعال نمودن گزينه فوق ، معادل <"?" = deny User > در فايل Web.config است.
-
Check Box های موجود در قسمت دوم جعبه محاوره ای ، مجاز بودن برنامه به منظور استفاده از Basic و يا Digest Authentication را علاوه بر Windows Authentication ، مشخص می نمايد. روش های فوق ، ايمنی بمراتب کمتری را نسبت به Windows Integrated ارائه می نمايند .می توان چندين روش authentication را در IIS فعال نمود . در صورتيکه چندين روش فعال شده باشد ، می توان با استفاده از متد AuthenticationType مربوط به شی Identity ، از روش استفاده شده به منظور تائيد کاربر ، آگاهی يافت .
|
AuthenticationType method |
|
Response.Write(User.Identity.AuthenticationType) |
در بخش سوم اين مقاله به بررسی روش Forms Authentication ، خواهيم پرداخت .