مدیر پروژه، توسعه دهنده و برنامه نویس (عاشق اوپن سورس)
تفاوت OpenID و OAuth چیست؟
اوپن آیدی (OpenID) چیست؟
تکنولوژی که بتوان هویت کاربری در یک وبگاه را از طریق یک وبگاه دیگر تایید کرد به آن OpenID میگویند یعنی در واقع شما میتوانید هویت کاربر را در چندین سرویس و سایت از یک وبگاه احراز کنید برای مثال همه سایت هایی که از ورود با گوگل استفاده میکنند برگرفته از تکنولوژی OpenID هستند و به کسایی هم که خدمات اوپن آیدی را ارائه می دهند OpenID Provider گفته می شود. برای مثال گوگل، فیسبوک، توییتر، لینکدین و ... هر کدوم یک ارائه دهنده اوپن آیدی یا OpenID Provider هستند.
پروتکل OAuth چیست؟
یک قرارداد و مجوز باز است که به سرویس های اینترنتی اجازه می دهد اطلاعات کاربران را بدون نیاز به دادن یک گذرواژه و نام کاربری بصورت امن با دیگر سرویس ها به اشتراک بگذارد و همینطور یک دسترسی موقت را از طریق یک توکن دسترسی (کد هش شده مشخص برای هر کاربر) ایجاد کند و بوسیله آن اجازه انجام یکسری کار مشخص را از طرف کاربر می دهد.
تفاوت OpenID vs OAuth:
اوپن آیدی OpenID درباره احراز هویت است (به عنوان مثال اثبات اینکه شما چه کسی هستید؟) و OAuth در مورد مجوز (یعنی دسترسی به یک عملکرد،یا داده ای از اطلاعات) بدون نیاز به احراز هویت می باشد.
بنابراین احراز هویت در مورد اطمینان از این است که شخصی که با آن در ارتباط هستید در واقع همان کسی است که او ادعا می کند ولی مجوز در مورد اینه که تصمیم بگیرد چه کسی مجاز به انجام آن است.
در OpenID (احراز هویت):
فرض کنید سرور A می خواهد کاربر P را تایید کند، اعتبار کاربر P توسط سرور B مشخص می شود، در حقیقت سرور B اطمینان می دهد که P در واقع P است، و سپس به A می گوید: خب این P واقعی است.
اما در OAuth (مجوز):
کاربر P از سرور A یک توکن دسترسی دریافت می کند که می تواند آنرا در اختیار سرور B برای دسترسی به یک سری موارد مشخص شده بدهد، بنابراین A می تواند کلیدهای دسترسی موقت و خاصی را برای B فراهم آورد.
برای مثال شما می توانید سرور OAuth را به عنوان کلید دار یک هتل بزرگ تصور کنید؛ او کلیدها را به کارکنان می دهد که درهای اتاق را برای شخصی که قرار است وارد اتاق شود باز کنند، اما هر کلید محدود است و فقط در یک اتاق را باز میکند (یعنی با یک کلید دسترسی به تمام اتاق ها را ندارید)؛ علاوه بر این کارکنان موظف هستند کلید خود را پس از چند ساعت از بین ببرند.
در نتیجه میتوان گفت که OAuth یک چارچوب یا مجوز است که به تنهایی یک پروتکل احراز هویت نیست و میتوان از این چارچوب مجوز در احراز هویت استفاده نمود.
کاربرد OAuth :
فرض کنید شما بخواهید از خدمات یک وب سایت استفاده کنید یا تحلیلی بر روی داده های یک کاربر در آن وب سایت ارائه بدهید که برای این کار نیاز به نام کاربری و رمز عبور کاربر می باشد که در این صورت باید کاربر نام کاربری و رمز عبور خود را در اختیار شما قرار بدهد که این کار علاوه بر جلب اعتماد کاربر، مشکلات امنیتی و مسئولیتی (لو نرفتن نام کاربری و رمز عبور کاربران توسط شما)، مشکلات دیگری به همراه خواهد داشت و همچنین به این شکل شما دسترسی به همه قسمت های پنل کاربری که مطمئنا کاربر علاقه ای ندارد شما چنین دسترسی را داشته باشید را دارید پس یکی از راه حل های موجود OAuth بود که یک دسترسی محدود و مشخص و البته ایمن بدون نیاز به نام کاربری و رمز عبور در اختیار شما قرار دهد.
مطلبی دیگر از این انتشارات
در روز چند ساعت کدنویسی می کنید؟ با wakaTime محاسبه کنید!
مطلبی دیگر از این انتشارات
فریم ورک اختصاصی خودم رو توسعه بدم؟!
مطلبی دیگر از این انتشارات
پروتکل گراف باز (Open Graph) چیست؟