GH GambleHub

معماری و امنیت دروازه API

TL ؛ دکتر متخصص

دروازه API تنها نقطه سیاست (authz، rate، transformation، audit) و مرز اعتماد بین دنیای خارج و خدمات است. موفقیت توسط: Zero-Trust (mTLS/JWT)، سیاست به عنوان کد، مدیریت ترافیک مبتنی بر SLO و قابلیت مشاهده متعامد. ساخت: دروازه لبه → BFF → مش سرویس ؛ حفظ نسخه و ویژگی های پرچم; خودکار حفاظت از webhooks و کلید تست انتشار canary.

1) نقش ها و الگوهای قرار دادن

دروازه لبه/API (شمال-جنوب): مرز بیرونی. TLS ختم، WAF، DDoS، authN/Z، نرخ/سهمیه، CORS، تحولات، کش، webhooks.
BFF (Backend-for-Frontend): لایه سفارشی سازی برای مشتریان خاص (وب/موبایل/شرکا). طرح ها، تجمع ها، محدودیت ها، ذخیره سازی پاسخ.
دروازه داخلی (شرق و غرب )/ورود سرویس مش: مجوز سرویس به سرویس داخلی، mTLS، مسیریابی سیاست.
دروازه gRPC/REST/GraphQL: نقطه تک پروتکل مترجم و مدارهای اعتبار سنج.

Anti-patterns: «all through one monolithic gateway without isolation of environments», «hidden business logic in plugins», «manual rule management».

2) مدل اعتماد و احراز هویت

TLS 1. 2+/1. 3 در محیط، HSTS در حوزه های عمومی ؛ در داخل - mTLS بین دروازه و خدمات.
OAuth2/OIDC: کد مجوز (PKCE) برای مشتریان ؛ اعتبار مشتری برای ادغام سرور ؛ JWT با TTL کوتاه و چرخش کلید (JWKS).
امضای HMAC برای ادغام شرکا و وب سایت ها (کلید مشتری، SHA-256/512، تأیید برچسب زمان و ضد پخش).
کلید های API - فقط به عنوان یک عامل اضافی/برای ردیابی ؛ محدوده محدوده، IP، مدت.

بهترین شیوه ها:
  • AuthN (چه کسی) و AuthZ (چه چیزی می توانید) را جدا کنید. استفاده از ویژگی های (حوزه، نقش، مستاجر، پرچم خطر).
  • تمام نشانه با AUD/ISS/EXP/NBF هستند; ساعت کج و معوج ≤ 60S; بچه اجباری و کش JWKS ≤ 5 دقیقه.

3) مجوز و سیاست (صفر اعتماد)

ABAC/RBAC در دروازه: قوانین بیش از ادعا + زمینه درخواست (IP/ASN/geo/tenant).
Policy-as-Code (به عنوان مثال OPA/Rego): ذخیره قوانین در Git، اعتبار سنجی CI، محاسبات canary.
چند اجاره نامه: جداسازی توسط «X-Tenant-Id»، SSO در مرز مستاجر ؛ سهمیه/محدودیت در هر مستاجر.

4) مدیریت ترافیک و قابلیت اطمینان

محدود کردن نرخ: سطل نشت/رمز، دانه دانه: کلید/مستاجر/مسیر/BIN/کشور (برای API های پرداخت).
سهمیه: روز/ماه، جداگانه برای عملیات سنگین (به عنوان مثال، گزارش).
کنترل پشت سر هم و کنترل پویا بر اساس بار و SLO.
قطع کننده مدار: باز کردن خطاها/تأخیر ؛ تشخیص بیرونی توسط بالادست.
تلاش مجدد با عقب نشینی + jitter ؛ idempotency: کلید 'Idempotency-Key' + پنجره TTL + ذخیره سازی نتیجه.
زمانبندی: مشتری <دروازه <بالادست ؛ نقاط مرجع منطقی p95 (به عنوان مثال 1. 5S/3S/5S).
Failover/Canary:٪ -routing (وزن)، جلسه وابستگی اختیاری، آبی/سبز.

5) تحولات و اعتبار سنج

طرحوارهها: طرحوارۀ OpenAPI/JSON برای REST ؛ Protobuf برای gRPC ؛ SDL برای GraphQL اعتبار سنجی درخواست/پاسخ در دروازه.
جابجایی gRPC↔REST، فدراسیون GraphQL (برای BFF).
نرمال سازی هدر (ردیابی، هدر های امنیتی)، فیلتر پاسخ (نسخه PII).
CORS: لیست های سفید، «Vary» درست، ممنوعیت «درخواست مجوز».
فشرده سازی и ذخیره سازی پاسخ (ETag/Cache-Control) для safe-GET.

6) امنیت محیط

WAF: قوانین OWASP Top-10، مدل مثبت برای مسیرهای بحرانی، تکه های مجازی.
حفاظت از ربات: امضای مبتنی بر نرخ، اثر انگشت دستگاه، captchas محافظت شده برای نقاط پایانی عمومی.

سپر DDoS: بالادست (ابر) + محدودیت های محلی ؛ لیست بلوک های geo/ASN

CSP/Referrer-Policy/X-Frame-Options - اگر دروازه در خدمت استاتیک/ویدجت باشد.
WebSockets/SSE/WebTransport: پروفایل های محدودیت و زمان جداگانه ؛ تمدید خودکار توسط نشانه.

7) Webhooks: امنیت و تحویل

هر گیرنده راز خود را دارد. امضا 'HMAC (امضا، برچسب زمانی' مسیر 'بدن) ؛ پنجره زمانی معتبر (به عنوان مثال، 5 دقیقه).
Idempotence در پذیرش: dedup توسط «event _ id».
Retrai: نمایی، حداکثر N ؛ status-endpoint برای لرزش دست.

mTLS/اجازه لیست IP ؛ امکان بازپخش در صورت تقاضا با محدودیت

8) قابلیت مشاهده و حسابرسی

سیاهههای مربوط: اسرار/PAN/PII را وارد نکنید ؛ همبستگی با 'trace _ id '/' span _ id'; ماسک زدن

معیارهای: RPS، میزان خطا در کلاس، تاخیر p50/p95/p99، مدارهای باز، میزان تکرار، 4xx در مقابل 5xx، اشباع.
مسیرهای پیاده روی: زمینه ردیابی W3C ؛ «traceparent »/« tracestate» را به بالادست پرتاب کنید.
ممیزی: جدا «چه کسی و چه نامیده می شود/تغییر» جریان، ذخیره سازی غیر قابل تغییر ؛ رویدادهای سیاسی (دسترسی ممنوع، سهمیه ای).

9) اسرار و رمزنگاری

ذخیره سازی کلیدی: KMS/Vault، چرخش هر 90 روز (یا بیشتر)، نقش خواندن جداگانه.
گواهینامه ها: شماره خودکار/به روز رسانی (ACME)، پینینگ برای تلفن همراه (احتیاط TOFU/HPKP مانند).
چرخش JWKS: دو کلید فعال (قدیمی/جدید)، پنجره های رول روشن.
Cryptoprofiles TLS: اولویت ECDHE، ممنوعیت رمزهای/پروتکل های آسیب پذیر.

10) انطباق و داده ها

PCI DSS: PAN امن جریان، نشانه گذاری ؛ هرگز پروکسی خام PAN از طریق پلاگین.
GDPR/DSAR: مسیریابی منطقه/مستاجر، اقامت داده، حذف/ناشناس.
محدودیت قرار گرفتن در معرض PII: فیلتر کردن زمینه ها در دروازه، رمزگذاری هدر های حساس.

11) توپولوژی و چند منطقه ای

مدیریت شده در مقابل مدیریت شده (Envoy/Kong/NGINX در مقابل Cloud API Gateway). برای کنترل دقیق/PCl - اغلب خود مدیریت می شود.
Multi-AZ/Multi-Region Active: DNS/GSLB جهانی، مبتنی بر سلامت و مسیریابی جغرافیایی، فروشگاه های مخفی در هر منطقه.
طرح DR: RPO/RTO، دروازه آماده به کار سرد/گرم با یک سیاست آبی.

12) نسخه API و تکامل

استراتژی: URI vN، header-versioning، مذاکره محتوا. برای عموم - یک سیاست تخفیف واضح (≥6 -12 ماه).
کامپکت عقب: گسترش طرح ها با اضافه کردن زمینه های اختیاری ؛ قراردادها در Git، پیوندهای OpenAPI.
Canary/Shadow: ترافیک در «سایه» نسخه جدید اجرا می شود، مقایسه پاسخ ها.

13) عملکرد و کش

نهانگاه برای درخواستهای GET/idemotent ؛ شرایط: ETag/Cache-Control صحیح.
اتصال به بالادست ؛ HTTP/2 ادامه بده برای gRPC - حداکثر سود.
بودجه Payload-محدود اندازه بدن gzip/br.
پیش محاسبه پاسخ BFF برای پانل های فرکانس بالا/دایرکتوری ها.

14) مدیریت پیکربندی

GitOps: اعلامیه های مسیرها/سیاست ها ؛ بررسی/CI (lint، اسکن امنیتی) ؛ سی دی با احزاب قناری.
پرچم های ویژگی در دروازه: سوئیچ مسیر/قانون سریع بدون استقرار.
الگوهایی برای تکرار سیاستها (OIDC، نرخ، CORS).

15) قطعه های کوچک (شبه)

Idempotency (کنگ/نماینده سبک):
yaml plugins:
- name: idempotency config:
header: Idempotency-Key ttl: 24h storage: redis
نرخ/سهمیه بندی:
yaml
- name: rate-limiting config: {policy: local, minute: 600, key: consumer_id}
- name: response-ratelimiting config: {limits: {"heavy": {minute: 60}}, key: route_id}
JWT/OIDC:
yaml
- name: oauth2-introspection config:
jwks_uri: https://idp/.well-known/jwks. json required_scopes: ["payments:write","payments:read"]
WAF (مشخصات):
yaml
- name: waf config:
mode: block ruleset: owasp_crs exclusions: ["/health", "/metrics"]
امضای وب هوک:
pseudo sig = HMAC_SHA256(secret, timestamp + "\n" + method + "\n" + path + "\n" + sha256(body))
assert     now - timestamp     < 300s

16) NFR و SLO برای دروازه

زمان آماده به کار (ماه): ≥ 99. 95٪ (لبه)، ≥ 99. 9% (داخلی)

تاخیر p95: ≤ 50-100 میلی ثانیه مواد افزودنی بالادست.
بودجه خطا: ≤ 0. 05٪ 5xx از دروازه (به استثنای بالادست).
سیاست های امنیتی: 100٪ از درخواست ها با TLS ؛ 0 حوادث نشت مخفی ؛ MTTR آسیب پذیری قوانین WAF ≤ 24h.

17) چک لیست پیاده سازی

  • نقشه معماری: لبه → BFF → مش، لیست دامنه ها/مسیرها.
  • TLS/mTLS، چرخش JWKS، اسرار در KMS/Vault.
  • OAuth2/OIDC، حوزه/ادعا، ABAC/OPA.
  • نرخ/سهمیه، قطع کننده مدار، تلاش مجدد/عقب نشینی، توانایی.
  • OpenAPI/JSON اعتبار سنج طرح، تبدیل gRPC/REST/GraphQL.
  • WAF/DDoS/ربات مشخصات، CORS/CSP.
  • امنیت وب هوک: HMAC، ضد پخش، اجازه لیست.
  • سیاهههای مربوط/معیارها/مسیرهای پیاده روی ؛ دسترسی/تغییر حسابرسی
  • GitOps/سیاست به عنوان کد ؛ محاسبات قناری ؛ نقشه دکتر
  • کنترل PCI/GDPR: پوشش، retentions، روش DSAR.

18) خطاهای مکرر

ذخیره اسرار در پیکربندی دروازه/سیاهههای مربوط.
جهانی "در CORS/اعتماد همه" منبع ".
فقدان idempotence و وقفه عادلانه → دو برابر و بهمن.
مخلوط کردن authN و منطق کسب و کار در پلاگین دروازه.
هیچ چرخش JWKS و بچه → کلید «گیر» وجود دارد.
قابلیت مشاهده بدون ردیابی همبستگی → کور RCA.

خلاصه

Gateway API فقط یک پروکسی معکوس نیست، بلکه یک سیاست و پلت فرم امنیتی است که از عملکرد، انطباق و کسب درآمد پشتیبانی می کند. ایجاد اعتماد صفر، رفع قراردادها با طرح ها، مدیریت ترافیک از طریق SLO، پیکربندی خودکار از طریق GitOps و سیاست به عنوان کد. سپس دروازه تبدیل به یک «لبه» پایدار معماری شما خواهد شد و نه یک گردن باریک.

Contact

با ما در تماس باشید

برای هرگونه سؤال یا نیاز به پشتیبانی با ما ارتباط بگیرید.ما همیشه آماده کمک هستیم!

شروع یکپارچه‌سازی

ایمیل — اجباری است. تلگرام یا واتساپ — اختیاری.

نام شما اختیاری
ایمیل اختیاری
موضوع اختیاری
پیام اختیاری
Telegram اختیاری
@
اگر تلگرام را وارد کنید — علاوه بر ایمیل، در تلگرام هم پاسخ می‌دهیم.
WhatsApp اختیاری
فرمت: کد کشور و شماره (برای مثال، +98XXXXXXXXXX).

با فشردن این دکمه، با پردازش داده‌های خود موافقت می‌کنید.