پیکربندی دروازه ocelot برای عمل به عنوان یک “گذر” برای درخواست های ورودی

Summarize this content to 400 words in Persian Lang
این راهاندازی نحوه پیکربندی دروازه ocelot را بهعنوان «گذرگاه» برای درخواستهای ورودی نشان میدهد، در حالی که اطمینان میدهد که فقط کاربران تأیید شده و مجاز میتوانند به APIهای پاییندستی دسترسی داشته باشند.
در این سناریو، Ocelot:
تمام درخواست های دریافتی را بپذیرید (در سطح دروازه نیازی به احراز هویت نیست).درخواست ها را به سرویس های پایین دستی که توسط Keycloak با استفاده از توکن های JWT محافظت می شوند، ارسال کنید.احراز هویت و مجوز را در سرویس های پایین دستی اعمال کنید، بنابراین فقط کاربرانی که دارای نشانه های معتبر هستند می توانند به این خدمات دسترسی داشته باشند.
مراحل رسیدن به این هدف:پیکربندی Ocelot Gateway:
Ocelot خود نیازی به احراز هویت نخواهد داشت، اما توکن JWT را (در صورت ارائه) به سرویس های پایین دستی که محافظت می شوند، ارسال می کند.پیکربندی APIهای Downstream:
API های پایین دستی باید ایمن باشند، به این معنی که باید توکن های JWT را تأیید کنند و اطمینان حاصل کنند که فقط کاربران مجاز می توانند به منابع دسترسی داشته باشند.
پیکربندی نمونه
پیکربندی Ocelot Gateway (ocelot.json) در دروازه Ocelot خود، مسیرهایی را برای ارسال درخواست های دریافتی به سرویس های پایین دستی تنظیم می کنید. شما نیازی به محافظت از خود دروازه ندارید، بنابراین نیازی به احراز هویت در سطح دروازه وجود ندارد.
{
“ReRoutes”: [
{
“DownstreamPathTemplate”: “/api/{everything}”,
“UpstreamPathTemplate”: “/gateway/{everything}”,
“DownstreamHostAndPorts”: [
{
“Host”: “localhost”,
“Port”: 5001
}
],
“UpstreamHttpMethod”: [“Get”, “Post”, “Put”, “Delete”],
“AddHeadersToRequest”: {
“Authorization”: “RequestHeader” // Forward the Authorization header to downstream
}
}
],
“GlobalConfiguration”: {
“BaseUrl”: “http://localhost:5000”
}
}
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
AddHeadersToRequest: این تنظیم تضمین می کند که هدر Authorization (که توکن JWT را حمل می کند) از درخواست ورودی به سرویس پایین دستی ارسال می شود.
در این پیکربندی:
Ocelot احراز هویت را انجام نمی دهد. به سادگی درخواست را به سرویس پایین دستی ارسال می کند.
سرویس پایین دستی مسئول احراز هویت درخواست ورودی با استفاده از توکن های JWT صادر شده توسط Keycloak خواهد بود.
جریان مثال
یک کلاینت (به عنوان مثال، یک کاربر) درخواستی را به دروازه Ocelot ارسال می کند.
این درخواست ممکن است شامل یک سرصفحه مجوز شامل یک نشانه JWT باشد که توسط Keycloak صادر شده است (به عنوان مثال، از یک برنامه frontend).
Ocelot درخواست (از جمله سرصفحه مجوز) را به سرویس پایین دستی ارسال می کند.
سرویس پاییندستی از میانافزار احراز هویت JWT برای تأیید اعتبار توکن در برابر Keycloak استفاده میکند.
اگر توکن معتبر باشد و کاربر مجاز باشد (مثلاً محدوده درستی داشته باشد)، سرویس پایین دستی درخواست را پردازش می کند.
اگر توکن گم شده باشد، نامعتبر باشد، یا کاربر غیرمجاز باشد، سرویس پایین دستی با خطای HTTP 401 Unauthorized پاسخ می دهد.
نتیجه گیریاین رویکرد به شما امکان می دهد مسئولیت احراز هویت را از دروازه جدا کنید، پیکربندی دروازه را ساده می کند و در عین حال اطمینان می دهد که فقط کاربران تأیید شده و مجاز می توانند به API های محافظت شده دسترسی داشته باشند.
برای پست بعدی در مورد نحوه انجام فالو کنید API Downstream را برای احراز هویت JWT پیکربندی کنید
این راهاندازی نحوه پیکربندی دروازه ocelot را بهعنوان «گذرگاه» برای درخواستهای ورودی نشان میدهد، در حالی که اطمینان میدهد که فقط کاربران تأیید شده و مجاز میتوانند به APIهای پاییندستی دسترسی داشته باشند.
در این سناریو، Ocelot:
تمام درخواست های دریافتی را بپذیرید (در سطح دروازه نیازی به احراز هویت نیست).
درخواست ها را به سرویس های پایین دستی که توسط Keycloak با استفاده از توکن های JWT محافظت می شوند، ارسال کنید.
احراز هویت و مجوز را در سرویس های پایین دستی اعمال کنید، بنابراین فقط کاربرانی که دارای نشانه های معتبر هستند می توانند به این خدمات دسترسی داشته باشند.
مراحل رسیدن به این هدف:
پیکربندی Ocelot Gateway:
Ocelot خود نیازی به احراز هویت نخواهد داشت، اما توکن JWT را (در صورت ارائه) به سرویس های پایین دستی که محافظت می شوند، ارسال می کند.
پیکربندی APIهای Downstream:
API های پایین دستی باید ایمن باشند، به این معنی که باید توکن های JWT را تأیید کنند و اطمینان حاصل کنند که فقط کاربران مجاز می توانند به منابع دسترسی داشته باشند.
پیکربندی نمونه
- پیکربندی Ocelot Gateway (ocelot.json) در دروازه Ocelot خود، مسیرهایی را برای ارسال درخواست های دریافتی به سرویس های پایین دستی تنظیم می کنید. شما نیازی به محافظت از خود دروازه ندارید، بنابراین نیازی به احراز هویت در سطح دروازه وجود ندارد.
{
"ReRoutes": [
{
"DownstreamPathTemplate": "/api/{everything}",
"UpstreamPathTemplate": "/gateway/{everything}",
"DownstreamHostAndPorts": [
{
"Host": "localhost",
"Port": 5001
}
],
"UpstreamHttpMethod": ["Get", "Post", "Put", "Delete"],
"AddHeadersToRequest": {
"Authorization": "RequestHeader" // Forward the Authorization header to downstream
}
}
],
"GlobalConfiguration": {
"BaseUrl": "http://localhost:5000"
}
}
AddHeadersToRequest: این تنظیم تضمین می کند که هدر Authorization (که توکن JWT را حمل می کند) از درخواست ورودی به سرویس پایین دستی ارسال می شود.
در این پیکربندی:
- Ocelot احراز هویت را انجام نمی دهد. به سادگی درخواست را به سرویس پایین دستی ارسال می کند.
- سرویس پایین دستی مسئول احراز هویت درخواست ورودی با استفاده از توکن های JWT صادر شده توسط Keycloak خواهد بود.
جریان مثال
- یک کلاینت (به عنوان مثال، یک کاربر) درخواستی را به دروازه Ocelot ارسال می کند.
- این درخواست ممکن است شامل یک سرصفحه مجوز شامل یک نشانه JWT باشد که توسط Keycloak صادر شده است (به عنوان مثال، از یک برنامه frontend).
- Ocelot درخواست (از جمله سرصفحه مجوز) را به سرویس پایین دستی ارسال می کند.
- سرویس پاییندستی از میانافزار احراز هویت JWT برای تأیید اعتبار توکن در برابر Keycloak استفاده میکند.
- اگر توکن معتبر باشد و کاربر مجاز باشد (مثلاً محدوده درستی داشته باشد)، سرویس پایین دستی درخواست را پردازش می کند.
- اگر توکن گم شده باشد، نامعتبر باشد، یا کاربر غیرمجاز باشد، سرویس پایین دستی با خطای HTTP 401 Unauthorized پاسخ می دهد.
نتیجه گیری
این رویکرد به شما امکان می دهد مسئولیت احراز هویت را از دروازه جدا کنید، پیکربندی دروازه را ساده می کند و در عین حال اطمینان می دهد که فقط کاربران تأیید شده و مجاز می توانند به API های محافظت شده دسترسی داشته باشند.
برای پست بعدی در مورد نحوه انجام فالو کنید API Downstream را برای احراز هویت JWT پیکربندی کنید