Table of Contents
در معماری نرم افزار مدرن، میکروسرویس ها به استاندارد برای ساخت برنامه های مقیاس پذیر، انعطاف پذیر و مستقل قابل اجرا تبدیل شده اند، با این حال، مدیریت ده ها یا حتی صدها API میکروسرویس پیچیدگی قابل توجهی را معرفی می کند - درخواست های تقویت، اجرای سیاست های امنیتی، کنترل محدودیت های نرخ، و به دست آوردن دید به الگوهای ترافیک همه چالش های حیاتی است.
آشنایی با Azure API Gateway
Azure API Gateway یک سرویس یکپارچه است که بین مشتریان و خدمات microservice backends قرار دارد.این به عنوان یک پروکسی معکوس عمل می کند، پذیرش تمام تماس های API، اعمال سیاست های تعریف شده (تحقیق، تروتلینگ، ورود، تحول)، و ارسال درخواست به سرویس Backend مناسب، بر خلاف دروازه های سنتی مونوlithic، Azure Gateway API برای مقیاس های کاربردی به طور خودکار با سرویس های ترافیک مانند Azure، و نظارت بر ترافیک دیگر، و خدمات دیگر مانند Azure Insights.
هنگام مقایسه دروازه های API، Azure API Gateway برای ادغام محکم خود با اکوسیستم Azure است.برای تیم هایی که از Azure استفاده می کنند، سربار عملیاتی را با حذف نیاز به مدیریت سرور، تعادل بار یا پروکسی های معکوس کاهش می دهد.همچنین از RESTful و WebSocket API پشتیبانی می کند و آن را برای برنامه های زمان واقعی مناسب می کند.
ویژگی های اصلی Azure API Gateway
درخواست Routing and Transform
Azure API Gateway درخواست های ورودی را به سرویس های مختلف مبتنی بر URL Pathways، headers، پارامترهای پرس و جو یا محتوای بارگذاری هدایت می کند.شما می توانید چندین backends را تعریف کنید و آنها را به طور پویا با استفاده از عبارات سیاست دروازه ای، علاوه بر این، دروازه می تواند درخواست و بار پاسخ را تغییر دهد - به عنوان مثال، تبدیل XML به JSON، یا اضافه کردن هدر، یا بازنویسی URL ها قبل از ارسال درخواست ها به این خدمات داخلی.
اعتبار و مجوز
امنیت یک ویژگی کلاس اول است. Azure API Gateway از انواع مکانیسم های احراز هویت پشتیبانی می کند:
- OAuth 2.0 / OpenID Connect [FLT 1] - ادغام با Azure AD یا هر ارائه دهنده OAuth برای تأیید توکن قبل از ارسال درخواست.
- API Keys - به سرعت دسترسی به مشتریان را که یک کلید معتبر، مفید برای API های عمومی یا شریک ارائه می دهند، محدود می کند.
- [[۱] [۱۰] [۱] [۱۰] [۱]] [۱]] - تأیید امضا، صادر کننده، مخاطبان و انقضای توکن های خود را.
- گواهی های کلی - برای mTLS (ترالاستریال TLS) ، دروازه می تواند مشتریان را با استفاده از گواهینامه ها معتبر کند.
این سیاست های امنیتی با فیلترینگ و محدود کردن ترکیب شده اند تا ترافیک مخرب را قبل از رسیدن به میکروسرویس های خود مسدود کنند.
محدود کردن و Quotas
محدود کردن نرخ برای جلوگیری از سوء استفاده و اطمینان از استفاده منصفانه در سراسر مشتریان ضروری است. Azure API Gateway به شما اجازه می دهد تا محدودیت های نرخ در هر کلید یا هر-IP را تعریف کنید (به عنوان مثال، 100 درخواست در هر دقیقه) و سهمیه بندی (به عنوان مثال، ۱۰۰۰۰ تماس در روز) هنگامی که محدودیت ها فراتر می رود، دروازه برگشت HTTP 429 (Too Many Requests) بدون تاثیر بر خدمات backend شما.
Caching برای عملکرد
برای کاهش بار backend و بهبود زمان پاسخ، Azure API Gateway از Caching پاسخ پشتیبانی می کند، شما می توانید مدت زمان کش را در هر عملیات پیکربندی کنید. cache ورودی در یک حافظه توزیع شده در سراسر موارد دروازه ذخیره می شود، بنابراین حتی در طول رویدادهای مقیاس، پاسخ ها در دسترس باقی می مانند.
تجزیه و تحلیل و نظارت
هر درخواست که از طریق دروازه وارد می شود. Azure API Gateway با Azure Monitor و Application Insights ادغام می شود تا معیارهای دقیق (درخواست در هر ثانیه، تاخیر، نرخ خطا، درخواست های فشرده) و logs برای حسابرسی تنظیم کنید.شما می توانید هشدار برای ناهنجاری ها تنظیم کنید، مانند یک افزایش ناگهانی در ۵۰۰ خطا یا افزایش ترافیک که یک نقطه پایانی خاص را هدف قرار می دهد.
مدیریت Microservice API ها با Azure API Gateway
مدیریت مرکزی یکی از قوی ترین استدلال ها برای استفاده از دروازه API است. Azure API Gateway یک داشبورد یکپارچه در پورتال Azure فراهم می کند که در آن می توانید:
- تعریف تعاریف API (در فرمت OpenAPI / Swagger) و به طور خودکار سیاست ها را تولید می کند.
- API های مرتبط با گروه به محصولات با کراوات دسترسی متمایز (آزاد، حق بیمه و غیره)
- مدیریت نسخه های API بدون شکستن مشتریان موجود
- سیاست ها را در سطوح مختلف – جهانی، محصول، API و عمل – برای کنترل دانه های ریز – اعمال کنید.
برای کد زیر ساخت، می توانید دروازه ها، API ها و سیاست ها را با استفاده از قالب های Azure Source Manager، Bicep یا Terraform تعریف کنید.این امکان را می دهد تا خطوط لوله CI / CD به طور خودکار تغییرات API را اعمال کنند و اطمینان از سازگاری در محیط ها را فراهم کند.
برنامه های Securing API با Azure API Gateway
امنیت یک نگرانی چند لایه ای است. Azure API Gateway به اجرای اصل دفاع در عمق محیط کمک می کند:
اعتبار و اعتبار توکن
با تأیید توکن های OAuth 2.0 (نشانه های دسترسی از Azure AD یا STS سفارشی) در دروازه، microservices خود دیگر نیازی به رمزگشایی و تأیید توکن ها نیست.این کد دیگ بخار را کاهش می دهد و حسابرسی امنیتی ساده را انجام می دهد. دروازه همچنین می تواند توکن های منقضی شده یا نامعتبر را قبل از رسیدن به backend شما رد کند.
حفاظت از تهدید
Azure API Gateway می تواند با Azure Web Application Firewall (WAF) ادغام شود که در پشت دروازه Azure Front یا Application Gateway مستقر شده است.The WAF حملات معمول OWASP ( تزریقی SQL، XSS) را قبل از رسیدن به دروازه API، خود دروازه می تواند سیاست هایی را اجرا کند که بدن های درخواست را تأیید می کند، مدت محتوا را محدود می کند و محموله های معیوب را رد می کند.
امنیت IP و Network Security
شما می توانید ترافیک را به آدرس های IP خاص یا دامنه های خاص محدود کنید.برای میکروسرویس های داخلی، دروازه را می توان پیکربندی کرد تا تنها تماس های یک شبکه مجازی (VNet) را بپذیرد، جلوگیری از قرار گرفتن در معرض اینترنت عمومی همراه با نقاط انتهایی خصوصی، شما می توانید تمام ترافیک پشت سر در ستون فقرات Azure را نگه دارید.
سیاست بیان برای امنیت سفارشی
عبارات سیاست به شما اجازه می دهد تا کدی مانند #C بنویسید که هدرها، رشته های پرس و جو یا محتوای بدن را بررسی کند و تصمیم گیری کند.برای مثال، می توانید یک هدر سفارشی را بررسی کنید و 401 را اگر گم شده است یا یک امضای HMAC را برای یکپارچگی درخواست اعتبار دهید، این انعطاف پذیری تضمین می کند که شما می توانید تقریبا هر گونه نیاز امنیتی را بدون ترک دروازه پیاده سازی کنید.
عملکرد و مقیاس
Azure API Gateway برای کنترل مقیاس های بالا طراحی شده است، به طور خودکار بر اساس تعداد درخواست ها و استفاده از CPU، دو سیم وجود دارد: Developer (برای تست و ارزیابی) و Premium (برای تولید با SLA، تعاریف نامحدود API، و ادغام شبکه مجازی).
برای بهینه سازی عملکرد بیشتر:
- [[۱] [۱۰] [۱] [۱] [۱] [۱] [۱]] برای خواندن [یادداشت های] برای کاهش تماس های backend [۱]
- از استخرهای پشتی استفاده کنید با تعادل بار برای توزیع ترافیک در چندین مورد.
- [[۱] [۱۰] [۱] [۱۰] [۱] [۱] [۱]] [۱] [۱] از طریق سیاست ها برای جلوگیری از شکست های فاجعه بار.
- [[۱] [۱۰] [۱۰] [۱۰] [۱] [۱]] در [یادداشت های کاربردی] و زمان مناسب را تنظیم کنید.
نظارت و تجزیه و تحلیل
با ادغام Azure Monitor، شما داده های زمان و تاریخی را در هر تماس API به دست می آورید.استفاده از داشبورد برای تجسم API های برتر با استفاده، نرخ خطا و زمان پاسخ. تنظیم هشدار برای آستانه های بحرانی - به عنوان مثال، زمانی که تاخیر p95 بیش از 2 ثانیه یا هنگامی که نرخ خطای 4XX افزایش می یابد. دروازه همچنین داده های رویداد دقیق را در Log Analytics وارد می کند، تجزیه و تحلیل عمیق پس از یک حادثه قانونی.
بهترین روش برای Azure API Gateway
- API های طراحی با دروازه در ذهن [FLT 1] - استفاده از الگوهای URL ثابت و طرح های نسخه سازی (به عنوان مثال، .
- سیاست دروازه را ساده نگه دارید - از زنجیره های سیاست پیچیده که بر تأخیر تأثیر می گذارند، اجتناب کنید.
- دروازه های Combine با دروازه های Azure Front درب - برای توزیع جهانی، جغرافیایی و حفاظت از WAF، درب جلو Azure قبل از دروازه API قرار دهید.
- استقرار خودکار - استفاده از کد زیر ساخت به نسخه و به طور مداوم اعمال تنظیمات دروازه.
- استفاده از اشتراک و محدودیت های نرخ [FLT 1] - حتی برای API های داخلی، استفاده از تروتلینگ برای تشخیص ترافیک غیر طبیعی از یک سرویس به خطر افتاده است.
- تشخیص های قابل اعتماد [FLT 1] - کشتی های وارد شده به Log Analytics و اتصال با Azure Sentinel برای حسابرسی امنیتی.
نتیجه گیری
Azure API Gateway یک نقطه ورودی قوی، مقیاس پذیر و امن برای میکروسرویس API فراهم می کند.این بار را بر روی خدمات فردی با تمرکز بر نگرانی های متقابل مانند تأیید اعتبار، محدود کردن نرخ، ذخیره سازی و نظارت بر سیستم Azure کاهش می دهد، تیم ها می توانند عملکرد بالا، دید عمیق و ساده عملیاتی را به دست آورند، این که آیا شما از یک مدیریت یکپارچه سازی سطح و یا سیستم عامل، به تدریج توسعه می دهید، به عنوان یک سیستم مدیریت پایه ای برای توسعه می دهد.
برای خواندن بیشتر:
- مفاهیم کلیدی مدیریت API (Microsoft Docs)
- [[ویرایش] [۱] [۱] [۱] [۱۰] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۲] [۱] [۱] [۱] [۲] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۳] [۲] [۲] [۲] [۲] [۱] [۱] [۱] [۱] [۲] [۱] [۲] [۱] [۲] [۲] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۳] [۱] [۱] [۳] [۱] [۱] [۱] [۱] [۱] [۱] [۳] [۲] [۲] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۲] [۲] [۲] [۲] [۳] [۲] [۲] [۲] [۲] [۱]
- الگوی دروازه در میکروسرویس ها (مرکز معماری Azure)
- محدود کردن در مدیریت Azure API [[FLT 1]
- مدل سازی با Azure (Microsoft Docs)