Monday, May 9, 2011


OpenID چیست؟

openid-logoاگر شما هم از اون دسته یوزرهای اینترنت باشید که دوست دارید هرجایی سرک بکشید و اونجا رو فتح کنید، میشه نتیجه گرفت شما حتما بیشتر از یک نام کاربری (یا همون username) و یا کلمه عبور (یا همون password) رو به خاطر سپردید.
برای استفاده از سایت ها و سرویس های اینترنتی، اکثرا باید در اون ها ثبت نام کنید تا یک حساب کاربری برای شما ساخته بشه. با زیاد شدن سایتها، فرم هایی که باید پر کنید هم بیشتر میشه اونقدر که دیگه از حفظ کردن یا یادداشت کردن یوزر و پسورد هاتون خسته میشید.
- کاش یه پسوردی داشتم که به همه سایتها میخورد!
- خوب یه پسورد انتخاب کن و برای همه سایتهایی که ثبت نام میکنی از همون استفاده کن..
21- اگر روزی خواستم پسورد رو عوض کنم چی؟ برم تو تک تک سایتها و عوضش کنم؟
- …
- حتی username هم که امکان داره نتونم تو همه سایت ها یکسان انتخاب کنم. ممکنه اون اسم کاربری که من تو 2 3 تا سایت قبلی داشتم، تو این سایت جدید یکی دیگه قبلا انتخاب کرده باشه. پس باید یادم بمونه که تو هر سایتی با چه یوزری ثبت نام کردم.
اُپن آی دی OpenID به زبون خیلی ساده، همون شاه کلیدی هست که شما برای وارد شدن به تمام سرویس های مورد علاقه خودتون، بهش نیاز دارید. یعنی یک بار یک فرم ثبت نام را پر میکنید، نام کاربری و کلمه عبور میسازید و دارای یک OpenID میشوید. از این به بعد از همین اطلاعات برای ورود به سایتها، استفاده میکنید.
کل قضیه به همین سادگی حل نمیشه. مشکل اینجاست که سایتی که شما قصد ورود با OpenID دارید، باید استفاده از OpenID رو پشتیبانی کنه. خوشبختانه سایتهای زیادی به پشتیبانی از اُپن آی دی پیوستند و روز به روز هم بیشتر خواهند شد.

از کجا OpenID بگیریم؟

اگر شما در یکی از سرویس ها و سایت های زیر اکانت دارید، شما دارای یک OpenID هستید!
- یاهو
- گوگل (جی میل)
- مایکروسافت لایو
- وردپرس
- بلاگر
- فلیکر
لیست تقریبا کاملی از OpenID Providers
چرا ؟
برای حمایت از پروژه OpenID نیاز به مشارکت شرکتهایی بود که میلیونها اکانت بر روی آنها ثبت شده بود. بدین ترتیب با پیوستن مثلا یاهو و گوگل به حمایت کنندگان OpenID، تمامی کاربران آنها به این جمع افزوده میشدند. یعنی برای کاربران آنها، نیازی به ساخت یک OpenID نیست و همون اکانتی که در یاهو و گوگل دارند، OpenID آنها خواهد شد و میتونند با استفاده از اون در هر سایتی که این قابلیت رو داره لاگین کنند.
البته در کنار این شرکتها، سایتهایی مثل MyOpenID نیز ساخته شد که بعد از ثبت نام در این سایت، شما صاحب یک OpenID میشوید. البته MyOpenID که یکی از اولین و بزرگترین سرویس دهنده های OpenID به صورت مستقل هست، به کاربرای ایرانی سرویس نمیده و سایتش برای ما لود نمیشه. پس ما هم ازش استفاده نمیکنیم تا ورشکست شه :دی
logo_soup 

تعاریف و مفاهیم در OpenID

به سایت هایی که سرویس OpenID به کاربراشون میدن، اصطلاحا OpenID Provider گفته میشه. شرکتهایی که در بالاتر گفته شد همه Provider هستند که مفهومش این هست که اگر در این سایتها اکانت داشته باشید، همون اکانت رو به عنوان اُپن آی دی میتونید استفاده کنید.
به غیر از Provider ها که از پروتکل OpenID پشتیبانی میکنند، سایتهایی مثل Facebook نیز از مدل های خاص خودشون استفاده میکنند برای اینکه به یوزرهاشون اجازه بدهند که وارد سایتهای دیگه از طریق اکانت خودشون بشوند.
یه سایتهایی که استفاده از OpenID رو برای کاربراشون فراهم میکنند، اصطلاحا Relying Party گفته میشه. لیست این سایتها بسیار زیاد هست. شما هم اگر کمی از برنامه نویسی سررشته داشته باشید، میتونید برای سایت خودتون به کاربراتون اجازه استفاده از OpenID بدید. برای مثال سایت داناترینرو میتونید ببینید که از تعداد زیادی Provider پشتیبانی میکنه.
از هر Provider که OpenID گرفته باشید، در کنار یک username و password که در اون سایت دارید، آدرس اینترنتی مخصوص OpenID رو هم باید داشته باشید. این آدرس اینترنتی در واقع همان OpenID شما هست.
این اصطلاحات رو در یک مثال خلاصه میکنم:
فرض کنید شما در Yahoo اکانت دارید. مهم نیست این اکانت برای 10 سال پیش باشه یا اخیرا ساخته شده باشه. در این حالت:
OpenID Provider شما Yahoo هست.
آدرس اینترنتی که باید داشته باشید برای این OpenID برابر است با: http://me.yahoo.com این آدرس، تنها اطلاعات مورد نیاز برای ورود به یک Relying Party هست. فقط و فقط همین آدرس.
دقت کنید برای استفاده از OpenID در یک Relying Party شما نباید username و password مربوط به OpenID خودتون رو در سایت مذکور وارد کنید. با وارد کردن آدرس اینترنتی مربوط به Provider خودتون، سایت Relying Party شما رو میفرسته به Provider و در اونجا باید لاگین کنید! اگر گیج کننده بود مثال زیر رو ببینید:
مثال: برای ورود به سایت Mytoolbox.ir نیاز به پر کردن فرم ثبت نام دارید (این تنها یک مثال هست و واقعیت ندارد!)  اما خوشبختانه این سایت از OpenID پشتیبانی میکند. (یه اصلاح، mytoolbox.ir یک OpenID Relying Party هست). شما اکانت یاهو دارید. بنابراین میتوانید از این قابلیت استفاده کرده و بدون اینکه در mytoolbox.ir ثبت نام کنید، با اطلاعات OpenID وارد سایت شوید.
سایت در قسمت لاگین، یک بخشی دارد که از شما میخواهد OpenID خود را وارد کنید. در این قسمت شما نباید email و یا پسورد yahoo رو بنویسید و باید از آدرسی که یاهو اعلام کرده برای استفاده از OpenID، استفاده کنید. بنابراین شما در این قسمت تایپ میکنید: me.yahoo.com و دکمه submit را میزنید.
openid-login 
در این مرحله شما به سایت Yahoo انتقال پیدا میکنید، دیگه اثری از سایت mytoolbox.ir نیست. سایت یاهو از شما درخواست میکنه که لاگین کنید.  باز هم این نکته رو توجه کنید: شما user و password رو فقط در خود Provider باید وارد کنید و نه در سایت دیگری! بعد از لاگین، یاهو به شما اعلام میکند که فلان سایت قصد دارد از این اکانت شما به عنوان اپن آی دی استفاده کند و شما باید موافقت کنید. بعد از این شما به سایت اصلی یعنی  mytoolbox.ir منتقل شده و از نظر این سایت یک کاربری هستید که به سایت وارد شده است. حالا در پشت پرده از نظر برنامه نویسی چه اتفاقاتی میوفتد، بماند.
yahoo-openid
حالا صدها سایت دیگر رو هم در نظر بگیرید که Relying Party باشند. شما به همین صورت با OpenID یاهو میتونید وارد همه این سایتها شده بدون اینکه برای هر کدوم جداگونه فرم ثبت نام پر کنید.
برگردیم به مثال داناترین؛ همین طور که میبینید، icon مربوط به اکثر Provider های معروف در صفحه لاگین وجود داره و روی هر کدوم که کلیک کنید، به صورت خودکار منتقل میشوید به  آدرس مربوط به اون Provider و با این روش، کار یوزر بسیار راحت شده و حتی نیازی به حفظ کردن آدرس اُپن آی دی خودش رو نداره.


چند نکته امنیتی در استفاده از OpenID

یک: وقتی شما در سایتی از OpenID استفاده میکنید، در واقع به اون سایت، اجازه دادید که به اطلاعات اکانت OpenID شما دسترسی داشته باشد. البته نگران نباشید! منظور از اطلاعات، کلمه عبور و یا متن email های شما نیست. منظور اطلاعات ابتدایی مثل آدرس Email و نام و کشور و این گونه اطلاعات هست.
البته طبق پروتوکل OpenID، هر گونه اطلاعاتی که یک Provider قرار هست در اختیار سایت Relying Party قرار بده، به شما اعلام میشه و از شما اجازه گرفته میشه. به تصویر بالا دوباره دقت کنید. یاهو اعلام کرده که آدرس email من رو با سایت داناترین میخواد به اشتراک بگذاره. این لیست ممکن هست در مواردی شامل نام و تاریخ تولد و محل تولد و این گونه مسایل باشه. بستگی به این داره که درخواست relying party برای چه مشخصاتی بوده.
بنابراین وقتی از OpenID استفاده میکنید، دقت کنید که چه اطلاعاتی از شما قرار هست به اشتراک گذاشته بشه و نسبت به قابل اطمینان بودن سایت مورد نظر، آن را قبول یا رد کنید. دقت کنید یک وبسایت میتواند به این صورت، اطلاعات شخصی شما را شکار کند و با شما وارد یک رقابت از نوع مهندسی اجتماعی بشود!
در تصویر زیر مشخص هست که علاوه بر email، اطلاعات دیگری نیز قرار هست با Relying Party به اشتراک گذاشته شود:
google-profile
دو:
شاید برای دفعه چندم باشه که در همین مطلب به این مساله اشاره میکنم، اما باور کنید! مساله مهمی هست و بارها دیده شده که کاربران اشتباه میکنند. زمانی که از OpenID استفاده میکنید، سایت واسطه به هیچ وجه از شما نام کاربری و کلمه عبور نمیپرسد. اگر قرار هست از اکانت Gmail به عنوان OpenID استفاده کنید، تنها کافیست در سایت مورد نظر روی لوگوی Google کلیک کنید. شما به سایت Google منتقل میشوید و در آنجا باید لاگین کنید و از username و password خودتون استفاده کنید.
سه: در این میان مراقب صفحات تقلبی و ساختگی باشید. ممکن است شما روی Google کلیک کنید و خوشحال باشید که الان در صفحه لاگین کردن Google هستید، اما شاید در یک صفحه ساختگی باشید که تنها شبیه گوگل راحی شده تا شما گول بخورید و نام کاربری و کلمه عبور خودتون رو تقدیم سایت مثلا زرنگ کنید. خوب! سعی کنید با نگاه انداختن به آدرس وبسایتی که در اون هستید، مطمئن باشید که در گوگل هستید و گول نخورید.
google-openid
این مطلب به صورت اختصاصی برای وبلاگ جعبه ابزار نوشته شده است. استفاده از این مطلب به شرط ذکر منبع، آزاد می‌باشد.

No comments:

Post a Comment