راه پرداخت
رسانه فناوری‌های مالی ایران

مقدمه‌ای بر Open Authentication

امنیت، یکی از دغدغه‌های سیستم‌های نرم‌افزاری و به‌خصوص سیستم‌های بانکی است و همه‌ساله انواع مختلفی از مکانیسم‌های امنیتی و تشخیص هویت برای امن‌تر کردن این سیستم‌ها پیشنهاد می‌شود.

در سوی دیگر کاربر استفاده کننده از سیستم‌ها قرار دارد که یکی از نیازمندی‌های اساسی وی امنیت است که با وجود این مشخصه مهم است که کاربری تصمیم به استفاده سیستم خاصی می‌گیرد، ولی یکی دیگر دغدغه‌های کاربران سادگی استفاده از برنامه‌های کاربردی است به‌عنوان‌مثال یک کاربر ممکن است در چندین سایت بانکی، شبکه‌های اجتماعی و سایت‌های دیگر عضو باشد و برای دسترسی به داده‌ها در هرکدام از این برنامه‌های کاربردی نیاز است که نام کاربری و کلمه عبور و اطلاعات تکمیلی کاربر مثل اطلاعات تماس و … وارد شود که این موضوع با توجه به تعدد این برنامه‌ها مطلوب کاربر نیست.

.

ولی راه‌حل چیست؟

قبل از ورود به راه‌حل فنی این سناریو را در نظر بگیرید، دارندگان ماشین‌های گران‌قیمت و لوکس معمولاً در پارکینگ‌ها و هتل‌ها مسئولیت پارک ماشین را به عهده کارگران آن‌ها می‌گذارند ولی این موضوع ریسک بزرگی است که ماشین‌های گران‌قیمت را با کلید ماشین در اختیار اشخاص دیگر قرار داد، برای کمتر کردن این ریسک سازندگان این نوع ماشین‌ها معمولاً علاوه بر کلید اصلی ماشین یک کلید با دسترسی محدود هم به خریدار ارائه می‌دهند که با استفاده از آن می‌توان خودرو را تا مسافت محدودی هدایت کرد. در حقیقت شما یک دسترسی محدود روی ماشین به یک شخص خاص داده‌اید بدون این‌که دسترسی کامل به او بدهید و یک کلید اصلی هم خودتان دارید تا در صورت لزوم همه دسترسی‌ها را داشته باشید.

ایده اصلی OAuth نیز بر همین مبناست OAuth, کاربران را قادر می‌سازد دسترسی خیلی محدودی روی داده‌های خود به برخی از برنامه‌های کاربردی و سایت‌ها می‌دهد و بقیه برنامه‌های کاربردی با یک کلید خاصی که از کاربر می‌گیرند می‌توانند از اطلاعات کاربران در این سایت‌ها استفاده کنند. (+)

به‌عنوان یک نمونه در نظر بگیرید شما یک شناسه کاربری روی Gmail دارید و قصد عضو شدن در linkedin را هم دارید یک راه این است که شما تمامی دوستان و کسانی را که با آن‌ها در تماس هستید را مجدد به linkedin هم اضافه کنید و یک راه دیگر استفاده از OAuth است به این صورت که با یک مجوز linkedin تمامی دوستان شما را از gmail دریافت کند.

در حقیقت وقتی OAuth روی gmail فعال باشد یک API ارائه می‌دهد که برنامه‌های کاربردی دیگر می‌توانند با آن داده‌های شما دسترسی محدود داشته باشند. OAuth به‌عنوان یک پروتکل تشخیص هویت متن‌باز بستری را فراهم می‌آورد که اطلاعات هر فرد با استفاده از یک service provider و یک API به‌صورت محدود در اختیار برنامه‌های کاربردی دیگر قرار گیرد.

.

اجزای پروتکل OAuth

این پروتکل هم مانند بقیه پروتکل‌ها دارای اجزای تشکیل دهنده است که توضیح مختصری از آن‌ها ارائه شده است:

1- resource owner

کاربر صاحب اطلاعات است که برنامه‌های کاربردی را قادر می‌سازد به اطلاعات وی دسترسی داشته باشند.

2-Client

برنامه کاربردی است که درخواست استفاده از اطلاعات کاربر را دارد.

3- resource server

سروری هست که اطلاعات کاربر را نگهداری می‌کند.

4- authorization server

وظیفه تشخیص هویت برنامه‌های کاربردی و صدور شناسه (توکن) برای آن‌ها جهت استفاده آن‌ها از اطلاعات کاربر را بر عهده دارد.

.

مراحل پروتکل

  1. برنامه کاربردی تقاضای استفاده از اطلاعات کاربر را صادر می‌کند.
  2. اگر کاربر دارنده اطلاعات با تقاضای کاربر موافقت کند مجوز استفاده از اطلاعات را به کاربر می‌دهد.
  3. برنامه کاربردی بعد از دریافت مجوز از کاربر یک توکن از سرور تشخیص هویت دریافت می‌کند و در این مرحله تشخیص هویت کاربر کامل می‌شود.
  4. برنامه کاربردی با استفاده از این توکن از سرور منابع (resource server) تقاضای اطلاعات می‌کند.

رضا گنجی، مربی توسن بوم

منبع: وبلاگ توسن بوم

ارسال یک پاسخ

آدرس ایمیل شما منتشر نخواهد شد.