من در حال طراحی یک برنامه نظارت بر زیرساخت های سازمانی هستم که نیازهای کنترل دسترسی را بیش از نقش ها و مقامات ارائه داده است.
این معماری شامل چندین گره از REST API است که متعادل هستند ، یک مشتری زاویه ای و یک سرور مجوز مبتنی بر OAuth 2.0 با استفاده از JWT.
این گره های API استراحت عمومی هستند و می توانند با استفاده از خصوصیات پیکربندی مختلفی اجرا شوند که باعث می شود آنها برای زیرساخت های مختلفی کار کنند که از نظر ماهیت مشابه هستند اما در سطح تجارت از هم جدا می شوند. شما می توانید از آن به عنوان نظارت بر دو مرکز داده مختلف استفاده کنید که ماهیت مشابهی دارند اما به دلیل مقیاس زیرساخت ها توسط افراد مختلفی اداره می شوند.
API های REST با تغییر در هر مرکز داده قابل اجرا هستند. برخی از آرگومان های خط فرمان.
سپس یک مشتری زاویه ای وجود دارد که به شکلی ساخته شده است که می تواند به API REST-مراکز داده دسترسی داشته باشد (یک بازده اصلی در تغییر هدر بالا وجود دارد که اساساً تغییر خواهد کرد. URL URL برای بازدیدهای API و از این رو دیتاسنتر) براساس مقاماتی که کاربر را امضا کرده اند.
اکنون بخش مشکل کنترل دسترسی با استفاده از OAuth 2.0 است. سه سطح کنترل دسترسی لازم است
- سطح 1: سطح دیتاسنتر
- سطح 2: سطح داشبورد
- سطح 3: اکشن (روی داشبورد) سطح
بنابراین موارد استفاده ممکن است موقعیت های زیادی را شامل شود:
- کاربر با دسترسی به یک دیتاسنتر 1 اما نه به دیتاسنتر 2
- یک کاربر با دسترسی به یک دیتاسنتر خاص اما نه به یک دسترسی
داشبورد در آن دیتاسنتر - کاربر با دسترسی به داشبورد خاص در دیتاسنتر 1 اما نه در دیتاسنتر 2
- کاربر با دسترسی به داشبورد خاص می خواند اما قادر به تغییر هر چیزی در آن داشبورد در دیتاسنتر 1 نیست اما می تواند اصلاح کند. همان موارد دیتاسنتر 2
برای رسیدگی به این همه سناریوها ، مشتری زاویه ای نیاز به دسترسی هر کاربر را دارد تا بتواند انتخاب یا نمایش و پنهان کردن و دسترسی به یک داشبورد یا عملکرد خاص را انتخاب کند.
اکنون سوال این است که بسیاری از این زمینه های دسترسی با یک سرویس دهنده وب (مشتری زاویه دار در پرونده ما) مرتبط هستند و به طور مستقیم با REST API مرتبط نیستند ، به همین دلیل بسیاری از مقاماتی که من تعریف خواهم کرد برای مشتری زاویه ای مفید هستند اما نمی توانند. به هر مشتری دیگری (برای مثال یک مشتری پایتون) حس کنید.
چگونه می توانم چنین سناریوهای خاص مشتری را در سرور مجوز اداره کنم. آیا من در جهت درست فکر می کنم یا نیاز به تغییر دیدگاه خود دارم؟