صفحه اصلی آتین / احراز هویت / پروتکل های احراز هویت / پروتکل UMA
پروتکل User Managed Access 2.0 یا UMA یک پروتکل استاندارد کنترل دسترسی است که بر مبنای OAuth 2.0 ساخته شده است و اشتراک شخص به شخص را امکان پذیر می سازد.
UMA این توانایی را به مالکین منابع می دهد تا کنترل اینکه چه کسی می تواند از طریق یک سرور کنترل دسترسی مرکزی به منابع محافظت شده آن ها (دارایی های دیجیتال) بدون توجه به محل استقرار منابع دسترسی پیدا کند را به دست بگیرند. به عنوان مثال ، یک فرد مسن داده های مربوط به سلامتی (مانند نسخه های پزشکی و گزارش آزمایش خون) را با پزشکان ، شرکت بیمه خود و اعضای خانواده به اشتراک می گذارد.
اشتراک گذاری منابع می تواند به صورت انتخابی انجام شود که به افراد کمک می کند کنترل اشتراک منابع خود را به روشی مطمئن و ایمن بدست گیرند. ویژگی این پروتکل این است که دارندگان منابع نیازی به حضور آنلاین در زمان دسترسی ندارند زیرا اشتراک بین طرفین توسط سیاست های از پیش تعیین شده انجام می شود.
استفاده از استانداردهای UMA 2.0 شما را قادر می سازد به موارد زیر دست پیدا کنید:
نسخه اول، 1.0 UMA در سال ۲۰۱۵ عرضه شد. Initiative Kantara رسما تایید و انتشار UMA نسخه ۲ را در فوریه ۲۰۱۸ اعلام کرد. UMA 2.0 به گونه ای طراحی شده است که با پروتکل معروف OAuth ارتباط نزدیکی داشته باشد. این امر باعث سهولت در اهداف پیاده سازی و بهبود جنبه های امنیتی آن می شود.
2. کنترل دسترسی هم پیمان برای UMA 2.0: این امکان را می دهد که سرور کنترل دسترسی (Authorization Server) و سرور منابع (Resource Server) تا حد زیادی مستقل از هم و هم پیمان باشند. استفاده از این ویژگی در کنار گرنت UMA اختیاری است.
1. مالک منابع: موجودیتی که اجازه دسترسی به یک منبع محافظت شده را می دهد.
2. درخواست دهنده: شخصی است که به وسیله یک کلاینت به دنبال دسترسی به یک منبع محافظت شده است.
3. کلاینت: برنامه ای است که از طرف درخواست کننده با اجازه مالک منبع، درخواست منابع محافظت شده را می دهد.
4. سرور منابع: سروری که میزبان منابع محافظت شده است و توانایی واکنش به درخواست های منابع محافظت شده را دارد.
5. سرور کنترل دسترسی: سروری که از منابع میزبانی شده توسط سرور منابع به نمایندگی از مالک منبع محافظت می کند.
نحوه مدیریت منابع در سرور منابع توسط مالک منابع و نحوه تعریف سیاست ها توسط مالک منابع در سرور کنترل دسترسی ، خارج از محدوده ویژگی UMA است.
کلاینتی که به نمایندگی از طرف درخواست دهنده عمل میکند قبل از دسترسی به یک منبع محافظت شده توسط UMA، باید یک توکن از سرور کنترل دسترسی دریافت کند.کلاینت با سرور کنترل دسترسی ارتباط برقرار می کند و ادعاهای لازم را که سیاست های مالک منبع را برآورده می کند ارائه می دهد. سپس کلاینت توکنی دریافت می کند که می تواند آن را به سرور منابع ارائه دهد تا دسترسی مورد نیاز را بدست آورد.
پروفایل UMA از دو جزء اصلی تشکیل شده است: Protection API و UMA Grant
1. Resource Registration Endpoint
2. Permission Endpoint
3. Token Introspection Endpoint (اختیاری)
قبل از تعامل با Protection API از سرور کنترل دسترسی ، سرور منابع باید اعتبارنامه کلاینت OAuth را از سرور کنترل دسترسی کسب کرده باشد.
برای دسترسی به Resource Register Resource Endpoint ، Permission Endpoint و Token Introspection Endpoint ، لازم است درخواستی که سرور منابع به سرور کنترل دسترسی ارائه می دهد با یک توکن دسترسی ، یعنی Protection API Access Token (PAT) همراه باشد. PAT مجوز مالک منبع را برای استفاده از API حفاظت شده نشان می دهد. توکن PAT به سادگی یک توکن دسترسی OAuth با اسکوپ “uma_protection” است. این توکن به طور منحصر به فرد مالک منبع، سرور منابع مورد استفاده برای مدیریت منابع و سرور کنترل دسترسی مورد استفاده برای حفاظت از این منابع را نشان میدهد.
نقطه پایانی ثبت نام منابع، ابزاری را برای سرور منابع فراهم می کند تا منابع را از طرف مالک منبع تحت حمایت سرور کنترل دسترسی قرار دهد و آنها را به مرور مدیریت کند. منابعی که در یک سرور منابع قرار دارند با ثبت موفقیت آمیز منبع در نقطه پایانی ثبت نام منابع ، تحت حمایت سرور کنترل دسترسی قرار می گیرند. حفاظت از منبع با ابطال ثبت نام در نقطه پایانی ثبت نام منابع پایان می یابد. مالک منبع می تواند در هر زمان و قبل از ثبت نام ، سیاست را برای منبع ثبت شده تنظیم کند.
این API از پنج گزینه ثبت نام پشتیبانی می کند که عبارتند از:
ایجاد توضیحات منبع: با استفاده از متد POST منبع جدیدی را در سرور مجوز ثبت می کند.
خواندن توضیحات منبع: شرح منبع که قبلاً ثبت شده را با استفاده از متد GET می خواند.
به روزرسانی توضیحات منبع: با جایگزینی کامل توضیحات منبع قبلی ، با استفاده از متد PUT ، شرح منبع ثبت شده را به روز می کند.
حذف توضیحات منبع: ثبت منبع قبلاً ثبت شده را با استفاده از متد DELETE از فهرست خارج می کند.
لیست کردن توضیحات منابع: با استفاده از متد GET تمام شناسه های منابع قبلاً ثبت شده برای این مالک منبع را لیست می کند.
این نقطه پایانی ابزاری را برای درخواست مجوز (های) سرور منابع ، زمانی که درخواست منبع کلاینت توسط (RPT (Requesting Party Token همراه نباشد یا با RPT نامعتبر همراه باشد فراهم می کند.
یک مجوز نشاندهنده یک شناسه منبع و اسکوپ های مربوط به آن است. در یک درخواست واحد ، سرور منابع فقط می تواند مجوز دسترسی به منابع متعلق به یک مالک منبع را که توسط یک سرور کنترل دسترسی خاص محافظت می شود ، درخواست کند. به عنوان پاسخ ، سرور منابع یک تیکت مجوز دریافت می کند که نشان دهنده مجوزهایی است که سرور منابع درخواست کرده است.
یک RPT یک توکن دسترسی OAuth مرتبط با گرنت UMA است. RPT منحصر به یک طرف درخواست کننده، کلاینت، سرورکنترل دسترسی، سرور منابع و مالک منبع است. این توکن نشان دهنده تعدادی از مجوزهای اعطا شده است.
برای صدور توکن RPT ، جمع آوری ادعاها لازم است. در مشخصات گرنت UMA ذکر شده است که این امر می تواند توسط کلاینتی که مستقیما ادعاهای مورد نظر خود را ارسال می کند یا با جمع آوری ادعاها به صورت تعاملی به کمک کاربر نهایی به دست آید.
سامانه مدیریت هویت و دسترسی آتین به عنوان سرور کنترل دسترسی از نقاط پایانی API Protection و گرنت UMA در پروتکل UMA پشتیبانی میکند.
نتیجه گیری پایانی: UMA یک چارچوب کنترل دسترسی رسمی برای به اشتراک گذاری منابع است. با استفاده از UMA ، مالک منبع می تواند به راحتی منابع خود را با سایر طرف های درخواست کننده به اشتراک بگذارد.
بدون دیدگاه