عنوان
|
نويسنده
|
مشاهده
|
تعداد
آراء |
امتياز
|
امنيت برنامه های وب ( بخش پنچم ) |
مديريت وب |
12839 |
5 |
3.6 |
با توجه به جایگاه داده در عصر حاضر و لزوم نگاه جامع به این مقوله مهم ، بر آن شدیم تا محوریت فعالیت های خود را بر روی این موضوع متمرکز نمائیم . از این رو گروه فابک با شعار فناوری اطلاعات برای کسب وکار شکل گرفت و خدمات خود را از طریق سایت www.fabak.ir به مخاطبان محترم عرضه می نماید
 |
امنيت برنامه های وب ( بخش پنچم )
امنيت برنامه های وب ( بخش
پنچم )
آنچه
تاکنون گفته شده است :
|
-
بخش اول : مفاهيم اوليه و روش های متفاوت تائيد کاربران
-
بخش دوم : بررسی
Windows Authentication
- بخش سوم : بررسی
Forms Authentication
- بخش چهارم
: بررسی
Forms Authentication
|
در بخش پنجم اين مقاله به بررسی
Passport Authentication خواهيم پرداخت .
همانگونه که در
بخش اول اين مقاله اشاره گرديد ، برنامه های وب
ASP.NET از سه روش عمده به منظور تائيد کاربران استفاده می نمايند
:
-
Windows Authentication
-
Forms Authentication
-
Passport Authentication
زمانيکه از سرويس وب
Passport مايکروسافت به منظور تائيد کاربران استفاده می گردد ، مسئوليت
تائيد کاربران از IIS و برنامه وب سلب شده و اين وظيفه
به سايت Passport.com واگذار می گردد. در روش
Passport Authentication ، شناسائی کاربران بر
اساس سرويس وب ارائه شده توسط Passport.com صورت
می پذيرد . در روش فوق ، تائيد کاربران متمرکز و پس از تائيد آنان ، امکان
استفاده از ساير سايت هائی که از Passport Authentication
استفاده می نمايند ، وجود خواهد داشت .اطلاعات کاربران در يک پروفايل و بر روی سايت
Passport.com ذخيره و ساير سايت های متقاضی که
نيازمند تائيد کاربر به منظور ارائه خدمات خود می باشند ، می توانند ازاطلاعات
کاربران استفاده نمايند . مهمترين ويژگی روش Passport
Authentication ، استفاده از يک نام و رمز عبور به منظور استفاده از
سايت های متعدد می باشد . فرآيند تائيد کاربران در روش فوق، بصورت زير است :
-
پس از درخواست يک صفحه ايمن توسط
سرويس گيرنده ، درخواست وی در ابتدا برای IIS ارسال می
گردد.
-
IIS ،
کاربر را به عنوان Anonymous تائيد و درخواست وی را
برای ASP.NET ارسال می نمايد .
-
ASP.NET
، بررسی لازم در خصوص وجود يک کوکی خاص را بر روی سرويس گيرنده انجام خواهد داد .
در صورتيکه کوکی مورد نظر بر روی کامپيوتر سرويس گيرنده موجود نباشد ، درخواست
کاربر ناديده گرفته شده و وی به وب سايت Passport.com
به منظور تائيد صلاحيت ، هدايت می گردد .
-
سايت
Passport.com ، يک فرم Login را توليد و برای
سرويس گيرنده ارسال می نمايد .سرويس گيرنده اطلاعات Logon
را در آن درج و مجددا" اطلاعات را برای سايت Passport.com
ارسال می نمايد .
-
در صورتيکه اطلاعات درج شده توسط
کاربر ( نام و رمز عبور) با اطلاعات موجود در بانک اطلاعاتی پاسپورت مطابقت نمايد
، Passport.com سرويس گيرنده را تائيد و يک کوکی به
همراه اطلاعات ذيربط ( مشابه يک بليط ) برای وی ارسال می نمايد .
-
درخواست سرويس گيرنده مجددا" برای
سرويس دهنده و اين مرتبه به همراه مجوز صادر شده توسط
Passport.com ، ارسال می گردد. IIS ، مجددا"
سرويس گيرنده را به عنوان Anonymous تائيد و درخواست
وی را برای برنامه وب ASP.NET ارسال می نمايد .
-
برنامه وب
ASP.NET تائيد کاربر را بر اساس مجوز صادر شده برای وی توسط
Passport.com ، انجام داده و صفحه وب درخواستی
را برای سرويس گيرنده ارسال می نمايد .
-
پس از تائيد کاربر توسط
Passport.com ، امکان دستيابی وی به ساير وب سايت هائی
که از روش Passport Authentication استفاده می
نمايند ، وجود خواهد داشت .

فعال نمودن
روش Passport Authentication
به منظور استفاده از روش Passport
Authentication در يک برنامه وب ، می بايست
Passport SDK را بر روی سيستم نصب نمود. ( برای دريافت نرم افزار می توان از
آدرس
http://msdn.microsoft.com/download ، استفاده نمود ) . برای فعال نمودن
روش PassportAuthentication مراحل زير را
دنبال می نمائيم :
-
نصب
Passport SDK . ( با اينکه نرم افزار فوق به همراه ويژوال استوديو ارائه
نشده است ،ولی فريمورک دات نت دارای کلاس های لازم به منظور کار با
Passport SDK پس از نصب آن می باشد ) .
-
اعمال تغييرات لازم در فايل
Web.config : نوع Authentication
به Passport و مقدار عنصر
Authorization به Deny برای
کاربران تائيد نشده
-
استفاده از رويداد
PassportAuthentication_OnAuthenticate به منظور
دستيابی به پروفايل اطلاعات کاربران و
شناسائی آنان
-
پياده سازی روتين
Sign-out به منظور حذف کوکی های
Passport از روی ماشين کاربران
فايل Web.config
زير ، روش Passport Authentication
را فعال و تمامی کاربران را ملزم به تائيد به منظور استفاده از برنامه وب می نمايد
.
Web.Config setting
|
<authentication
mode="Passport" />
<authorization>
<adeny users="?" />
</authorization>
|
زمانيکه برنامه وب بصورت محلی و با
توجه به تنظيمات فوق ، اجراء می گردد ، کاربر مستقيما" به صفحه
Signin پاسپورت هدايت می گردد. در صورتيکه نسخه
unlicense نرم افزار Passpport SDK ، نصب
شده باشد ، صفحه Signin مشابه صفحه ارائه شده در زمان
بکارگيری واقعی يک سايت نخواهد بود. پس از Sign in کاربر
، Passport کوکی تائيد کاربر را بر روی ماشين سرويس
گيرنده ذخيره و وی را به صفحه اوليه درخواستی هدايـت و يک پروفايل اطلاعاتی
در ارتباط با کاربر
را ذخيره می نمايد . به منظور دستيابی به پروفايل فوق می توان از
رويداد PassportAuthentication_OnAuthenticate ، در
Global.asax استفاده نمود :
Global.asax module
|
Imports
System.Web.Security
Private Sub PassportAuthentication_OnAuthenticate( ByVal Sender As Object
, ByVal e As PassportAuthenticationEventArgs )
If e.Identity.IsAuthenticated Then
Response.Write(" Name : " &
e.Identity.Item("FirstName") &" " & e.Identity.Item("LastName") &
"<br>")
Response.Write("Address : " &
e.Identity.Item("City") & " " & e.Identity.Item("PostalCode") & "<br>" )
Response.Write("Email : " &
e.Identity.Item("PreferredEmail") & "<br>" )
Response.Write("Passport ID : "
& e.Identity.Name & "<br>" )
End If
End Sub
|
کد فوق ، نام ، آدرس و
ساير اطلاعات کاربر را از طريق پروفايل مربوطه دريافت و آنان را نمايش
می دهد.
مجوز صادر شده Passport به همراه اطلاعات پروفايل در پنج
کوکی جداگانه بر روی ماشين سرويس گيرنده ، ذخيره می گرندد. پس از
Sign out کاربر از برنامه وب ، می بايست کوکی های فوق
حذف گردند . رويداد زير ، نحوه عمليات Sign out را
از طريق حذف کوکی های مرتبط با Passport نشان می دهد :
Sign out Event Procedure
|
Private
Sub butSignOut_Click ( ByVal sender As System.Object , ByVal e As
System.EventArgs ) Handles butSignOut.Click
Response.Cookie("MSPProf").Expires
= Now
Response.Cookie("MSPAuth").Expires
= Now
Response.Cookie("MSPSecAuth").Expires = Now
Response.Cookie("MSPProfC").Expires
= Now
Response.Cookie("MSPConsent").Expires = Now
Response.Redirect("UserInfo.aspx")
End Sub
|