معرفی پروتکل OAuth
بسیاری از اتومبیلهای لوکس دارای کلید دستی مخصوصی هستند. این کلید به نگهدارنده پارکینگ وصل میشود و برخلاف کلید معمولی، تنها اجازه رانندگی در مسافت کوتاه را میدهد و دسترسی به صندوق عقب و تلفن همراه داخلی را محدود میکند. با وجود این محدودیتها، ایده بسیار هوشمندانهای است. شما میتوانید با استفاده از این کلید به فردی دسترسی محدودی به خودرو بدهید، در حالی که از کلید دیگری برای باز کردن قفل سایر بخشها استفاده میکنید.
در سال ۲۰۰۷، دستورالعملهای مبتنی بر جامعه روش OAuth به همین ترتیب توضیح داده شد. در حالی که OAuth 2.0 یک پروتکل کاملاً جدید است، همان مفهوم همچنان معتبر است. OAuth راهی برای اعطای دسترسی محدود به منابع به شخص ثالث بدون به اشتراک گذاشتن رمزهای عبور کاربران است.
پروتکل OAuth چیست؟
یکی از بهترین دلایل استفاده از OAuth این است که اشتراکگذاری را بسیار آسان میکند. ما به بارگذاری عکسها در اینستاگرام و ارسال خودکار آنها به توییتر و فیسبوک عادت کردهایم. در واقع، این سهولت استفاده و انعطافپذیری هنوز هم رسانههای اجتماعی را بسیار جذاب میکند.
اما این تنها مزیت برای کاربران نهایی نیست؛ OAuth به این معناست که دیگر نیازی به ایجاد حساب کاربری جدید ندارید. مثلاً اگر میخواهید در مورد مقالهای در سایتی نظر بدهید، میتوانید از اعتبارنامه گوگل یا حساب فیسبوک یا توییتر خود استفاده کنید، بهجای اینکه در یک وبسایت خاص ثبتنام کنید. این برای سایتهایی که معمولاً در آنها فعال نیستید یا به آنها اعتماد ندارید، بسیار مناسب است. همچنین، سایتها نیز با اطمینان از داشتن هویت فیسبوک میتوانند از مزایای آن بهرهمند شوند، چرا که احتمال تعلیق به دلیل هرزنامه کاهش مییابد.
OAuth همچنین به معنای کمتر شدن گذرواژههایی است که باید به خاطر بسپارید. به جای ایجاد و ذخیره گذرواژه جدید برای هر سرویس، میتوانید از گذرواژه حساب فیسبوک یا گوگل خود برای دسترسی استفاده کنید.
همچنین میتوانید دسترسی منابع از طریق پروتکل OAuth را محدود کنید. مثلاً هنگام بازی در فیسبوک، میتوانید تعیین کنید که آیا بازی اطلاعات شما را روی دیوار فیسبوک به اشتراک بگذارد یا نه.
احتمالاً اگر آنلاین هستید، با سایتی مواجه شدهاید که از OAuth استفاده میکند. بزرگترین وبسایتها مانند فیسبوک، گوگل، مایاسپیس، توییتر، یاهو و Vimeo از این استاندارد احراز هویت استفاده میکنند. برای آشنایی بیشتر با این استاندارد و دلایل استفاده نسل بعدی آن، OAuth 2.0، به خواندن ادامه دهید.
OAuth 2.0 چیست؟
ابتدا، باید بدانید که OAuth، به عنوان یک پروتکل، چه کاری انجام می دهد: OAuth اجازه می دهد تا یک API بین دو برنامه وب یا رومیزی ارتباط برقرار کند. در نتیجه، وب سایتها قادرند منابع حفاظت شده را با سایر وبسایتها و خدمات به اشتراک بگذارند.
به عنوان مثال، اگر با iPad با تبلت بازی می کنید، می توانید اطلاعات اکانت گوگل خود را وارد کنید، که به بازی اجازه می دهد به لیست دوستان شما نگاه کند تا ببیند کدام یک از آنها در حال بازی هستند و از دیگران برای پیوستن دعوت کنید. یا بر اساس افرادی که شما را در توییتر دنبال می کنند، می توانید با دوستان خود در واتساپ ارتباط برقرار کنید. این نوع برنامه برای کاربران آسان است، اما شامل دسترسی یک سایت یا برنامه به اطلاعات مربوط به شما در یک سایت دیگر است.
OAuth 2.0 بسیار شبیه به اولین تجسم OAuth است، اما این یک استاندارد کاملاً جدید است. این بدان معناست که با ۱٫۰ با OAuth سازگار نیست. نسخه ۲٫۰ بسیاری از مشکلات را با OAuth اصلی برطرف کرده و بهبودهایی را ایجاد کرده است.
در اصل با حفظ معماری نسخه اول، نسخه ۲٫۰ در موارد زیر بهبود یافته است:
- احراز هویت و امضا. OAuth 2.0 پیاده سازی پروتکل را در سمت مشتری آسان کرد.
- تجربه کاربر و روشهای جایگزین برای صدور توکن
- عملکرد، به ویژه با سایت ها و خدمات بزرگتر
چگونه نسخه ۲٫۰ به وجود آمد
کاملاً واضح است که OAuth پاسخی به فراخوان محاسبه ایمن و سهولت استفاده برای سرویس های مختلف وب است. از سوی دیگر، OAuth 2.0 از نیاز به پیچیدگی کمتر OAuth ناشی شد. اما کل ایده برای هر دو در واقع از OpenID بود.
OpenID سرویسی است که به کاربران اجازه میدهد با استفاده از اطلاعات ورود به سیستم از وب سایت دیگری وارد خدمات مختلف شوند. اما OpenID بسیار محدود بود، بنابراین گروهی از افرادی که روی پروتکلهای مجوز مختلف کار می کردند، برای سایتهای خود گرد هم آمدند. اولین پیاده سازی های OAuth در سال ۲۰۰۷ اجرا شد و اولین تجدید نظر دو سال بعد انجام شد.
OAuth 2.0 در سال ۲۰۱۰ وارد صحنه شد. هدف این بود که بر سادگی تمرکز کرده و توسعه دهندگان مشتری را توسعه داده و تجربه کاربری را نیز بهبود بخشید.
نسخه ۲٫۰ OAuth هنوز زنده است. اگر به انتقادات و مواردی که مطرح می شود بپردازد، ممکن است همچنان به عنوان یک پروتکل بسیار قدرتمند جایی پیدا کند. در زمان نگارش، نسخه ۱٫۰ هنوز نسخه رسمی، پایدار و آزمایش شده OAuth محسوب می شد. با این حال، برای توسعه دهندگانی که قصد دارند با نام های بزرگ دنیای اینترنت کار کنند، اجرای ایمن این پروتکل می تواند به یک مهارت کلیدی در آینده نه چندان دور تبدیل شود.