S2S-authentication
S2S التوثيق يثبت الخدمة/سير العمل الذي يقدم الطلب ويمنحه الحد الأدنى من الحقوق الضرورية لفترة محدودة. على عكس تدفقات المستخدمين، لا يوجد شخص هنا - لذلك، فإن العمر القصير لمؤشرات الاعتماد، وربط التشفير بالتمرين/القناة وإمكانية المراقبة الواضحة أمر بالغ الأهمية.
1) الأهداف والمبادئ
Zero Trust افتراضيًا: لا تثق في الشبكة، فقط شهادة التمرين والتشفير.
الاعتمادات قصيرة الأجل: دقائق وليس أيام/أشهر.
ملزم السياق: المستأجر/المنطقة/الترخيص/الجمهور/النطاقات.
الإصدار المركزي والتحقق اللامركزي: STS/IdP + التحقق المحلي.
الحد الأدنى من الامتيازات والتفويض الصريح: النطاقات ومراجعات الحسابات الضرورية فقط.
دوران «خالي من الألم»: نوافذ مزدوجة المفتاح/مزدوجة الشهادة والأتمتة.
2) نموذج التهديد (الحد الأدنى)
سرقة الأسرار طويلة العمر (API-keys، RT طويلة العمر).
انتحال الخدمة داخل VPC/المجموعة.
هجمات أقاليمية في التجزئة المكسورة.
إعادة/استبدال حركة المرور بالوكالة.
استبدال صور سلسلة الإمداد/الحاوية.
أخطاء التكوين (قواعد واسعة لجدار الحماية/الشبكة، JWKS شائعة للجميع).
3) الأنماط الأساسية S2S
3. 1 mTLS (شهادات متبادلة)
من أنت: يثبت من خلال القناة.
شهادات قصيرة الأجل (ساعة في اليوم) من مرفق المفاتيح العمومية الداخلي ؛ يدير الإطلاق/الدوران وكيل الشبكة/السيارة الجانبية أو SPIRE.
جيد لـ «الجيران» في نفس مجال الثقة وللرموز الملزمة.
3. 2 خدمة JWTs (STS)
من أنت: يثبت برسالة.
Short Access JWT (2-5 دقائق) مع "aud' و" scp "و" المستأجر "و" المنطقة ".
علامات KMS/HSM، مفاتيح عامة - عبر JWKS مع «طفل» والتناوب.
تحقق محليًا (لا توجد مكالمة على شبكة IdP).
3. 3 SPIFFE/SPIRE (SVID)
الهوية العالمية للعمال: «spiffe ://trust-domain/ns/< ns >/sa/< sa>».
X.509/JWT-SVID الإصدار/التناوب التلقائي، والتكامل مع Istio/Linkerd.
3. 4 OAuth 2. 1 وثائق اعتماد العميل/تبادل الرموز (RFC 8693)
يتلقى عملاء الآلة رمزًا من STS ؛ لإجراءات المستخدم «نيابة عن» - OBO (تبادل رمزي).
اجمع: mTLS للقناة، JWT للرسالة، SPIFFE للهويات المستقرة.
4) البنية المرجعية
[KMS/HSM] [Policy Store / PDP]
[STS/IdP (issuer)] ── JWKS ──[Gateway/PEP] ─────[Services/PEP]
│
SVID/JWT │ │ │ │
(SPIRE/Istio)│ mTLS/DPoP │ mTLS/DPoP
│ │ │ │
[Workload/Sidecar]─────────┴───────┴────────────┘
المصدر (STS/IdP): يصدر خدمة قصيرة JWT/CVID، وينشر JWKS.
البوابة (PEP): مصطلح الشبكة، يتحقق من صحة mTLS/JWT، ويثري السياق، ويطلب PDP.
الخدمات (PEP) - الدفاع في العمق، مخبأ حلول PDP.
SPIRE/الشبكة: شهادات تلقائية و SVID لـ mTLS.
5) تنسيق خدمة JWT (مثال)
json
{
"iss": "https://sts. core",
"sub": "svc. catalog, "//service identity
"aud": ["svc. search"] ,//target service/domain
"exp": 1730390100, "iat": 1730389800,
"tenant": "brand_eu",
"region": "EE",
"scp": ["catalog:read:public","catalog:read:tenant"],
"mtls": { "bound": true, "spiffe": "spiffe://core/ns/prod/sa/catalog" }
}
توقيع ES256/EdDSA، «طفل» يشير إلى مفتاح نشط.
ملزم اختياري للقناة: العلم، شهادة التجزئة، SVID.
6) سياسات الإصدار والتحقق
المسألة:- الموضوع مأخوذ من SVID/شهادة العميل/سجل العملاء.
- العمر 2-5 دقائق، لا تنعش شيئًا - اطلب STS مرة أخرى بدلاً من ذلك.
- يتم أخذ النطاقات/الجماهير من متجر السياسات (GitOps)، وليس من طلب العملاء.
1. تحقق من صلاحية mTLS (اختياري) وسلسلة.
2. تحقق من توقيع JWT بواسطة JWKS (بواسطة «طفل»).
3. تحقق من "exp/nbf/iss/aud'، المستأجر/المنطقة/الترخيص.
4. إثراء السياق واسأل PDP (RBAC/ABAC/ReBAC).
5. حل Cache PDP (TTL 30-120 s)، إعاقة الحدث.
7) متعدد المستأجرين والمناطق (مجالات الثقة)
مجالات ثقة منفصلة: 'spiffe ://eu. core '،' spiffe ://latam. '.
) أ (منفصل عن مركز العمل المشترك/مرفق المفاتيح العمومية حسب المنطقة ؛ الانتظام - فقط من خلال بوابات موثوقة.
إدراج «المستأجر/المنطقة/الترخيص» في الطوابع والتحقق من الامتثال للموارد.
السجلات/عمليات التدقيق القطاعية من قبل المستأجرين والمناطق.
8) وضع الشبكة/السيارة الجانبية وعدم وجود شبكة
Istio/Linkerd: mTLS خارج الصندوق، وإنفاذ السياسات على المستوى L4/L7، والتكامل مع SPIRE.
بدون شبكة: مكتبة العملاء + TLS المتبادلة في التطبيق ؛ أكثر صعوبة في إدارة التناوب - التشغيل الآلي عبر الوكيل.
9) المفاتيح و JWKS والتناوب
المفاتيح الخاصة فقط في KMS/HSM ؛ التوقيع - عن طريق المكالمة عن بعد/المجموعة.
التناوب كل يوم N ؛ مفتاح مزدوج: قديم + جديد مقبول، المصدر يوقع جديدًا بعد تسخين المخابئ.
المراقبة: حصة «طفل» من الاستهلاك، علق العملاء على المفتاح القديم.
yaml issuer:
jwks:
alg: ES256 rotation_days: 30 publish_cache_ttl: 60s sts:
access_ttl: 5m audience_policies:
- subject: "svc. catalog"
allow: ["svc. search","svc. wallet"]
scopes: ["catalog:read:"]
tenancy:
claims: ["tenant","region","licence"]
jwks_per_region: true
10) ربط (DPoP/mTLS-bound)
الرموز المرتبطة بـ mTLS: أضف تجزئة شهادة العميل إلى JWT ؛ تحقق في حفل الاستقبال.
DPoP: لعملاء HTTP بدون mTLS - وقع على كل طلب بمفتاح DPoP، ضع بصمة إبهام DPoP في AT.
11) الأخطاء وسياسة العودة
توحيد الرموز:- 401 INVALID_TOKEN'/'EXPIRED_TOKEN'/'AUD_MISMATCH'.
- 401 MTLS_REQUIRED'/'MTLS_CERT_INVALID'.
- 403 INSUFFICIENT_SCOPE'/'POLICY_DENY'.
- 429 RATE_LIMITED'.
يحتوي الرد على «خطأ _ رمز» مقروء آليًا و «as _ of» (نسخة المفتاح/السياسة).
12) قابلية الملاحظة ومراجعة الحسابات
المقاييس:- 's 2s _ auth _ p95 _ ms',' verify _ jwt _ p95 _ ms', 'jwks _ skew _ ms',
- «invalid _ token _ rate», «aud _ inmatch _ rate», «inspace _ scope _ rate»,
- الاستهلاك من قبل «طفل»، نسبة الطلبات الملزمة بـ mTLS.
- "subject' و" aud' و "المستأجر" و "المنطقة" و "scp" و "kid' و" sid/svid' و "decision" و "policy _ version" و "trace _ id'.
- إصدار الرمز، التناوب الرئيسي، تغييرات السياسة، الطلبات المرفوضة.
13) الأداء
التحقق من JWT - محليًا، ذاكرة التخزين المؤقت JWKS (TTL 30-60 s) مع تحديث الخلفية.
سلاسل X.509 - تثبيت CA و OCSP/CRL cache.
احضر التحقق I/O باهظ الثمن إلى البوابة/السيارة الجانبية.
استخدم الرموز المسبقة/الشهادات (10-20 ثانية قبل انتهاء الصلاحية).
14) الاختبار
العقد/البينية: NP/المكتبات المختلفة، انحراف الساعة ± 300 ثانية.
سلبي: رمز منتهي الصلاحية/مزيف، "aud' غير صحيح، منطقة/مستأجر خاطئ، سلسلة شهادات مكسورة.
الفوضى: التناوب المفاجئ «طفل»، عدم توفر JWKS، انتهاء الصلاحية بشكل جماعي، كسر mTLS.
الحمل: مشكلة الذروة على STS، تحقق من الارتفاع على البوابة.
E2E: mTLS-only, JWT-only, comboded mode, Token Exchange (OBO).
15) كتب اللعب (كتب التشغيل)
1. تسوية مفتاح التوقيع
الإلغاء الفوري لـ «طفل»، والإفراج عن رموز TTL الجديدة المختصرة، والتدقيق، والبحث عن العملاء «المعلقين»، والحرمان القسري لـ «الطفل» القديم.
2. الكتلة «غير صالحة _ توكين»
تحقق من ذاكرة التخزين المؤقت JWKS، واختلال محاذاة الساعة، والأصول الرمزية (TTL قصيرة جدًا)، وتوسيع تحمل الانحراف مؤقتًا، وتسخين JWKS.
3. رفض mTLS
تحقق من سلسلة CA، تواريخ SVID، وقت الاستقبال ؛ إعادة إصدار الطوارئ عبر SPIRE/Istio، وتمكين الطرق الاحتياطية فقط داخل المنطقة.
4. نمو «AUD _ MISMATCH»
انحراف سياسة الجمهور: قارن سياسة STS بالمكالمات الفعلية، وأضف مؤقتًا تعديلات بنية المكالمات المطلوبة "aud' والجدول الزمني.
5. STS غير متوفر/بطيء
قم بزيادة TTL للرموز التي تم إصدارها بالفعل (نعمة)، وتمكين البادئة/التحديث - في وقت سابق، وتوسيع STS.
16) أخطاء نموذجية
مفاتيح/أسرار واجهة برمجة التطبيقات طويلة العمر في env/code.
الجنرال جوكس/مرفق المفاتيح العمومية «لجميع المناطق ولجميع الأوقات».
عدم وجود ربط (mTLS/DPoP) → من السهل إزالة الرمز.
نطاق واسع 'aud =' و «admin» افتراضيًا.
دوران بدون فترة مفتاح مزدوج → كتلة 401.
التحقق من الرموز المميزة فقط على البوابة (لا يوجد دفاع في العمق).
فشل «غبي» (لا يوجد «خطأ _ رمز» و «سبب») - من الصعب تصحيح وتدريب الفرق.
17) نماذج التكوين المصغرة
PEP (بوابة) - القواعد:yaml auth:
require_mtls: true jwks:
url: https://sts. core/.well-known/jwks. json cache_ttl: 60s claims:
required: ["iss","sub","aud","exp","tenant","region"]
tenant_in_header: "x-tenant"
pdp:
endpoint: "opa:8181/v1/data/policy/allow"
decision_cache_ttl: 60s
سياسة STS (جزء):
yaml subjects:
- id: "svc. catalog"
spiffe: "spiffe://core/ns/prod/sa/catalog"
audiences: ["svc. search","svc. wallet"]
scopes: ["catalog:read:"]
ttl: "5m"
18) قائمة مرجعية قبل البيع
- خدمة قصيرة JWT (≤5 دقيقة)، التحقق المحلي، مخبأ JWKS.
- تم تمكين mTLS (أو DPoP) ؛ أولوية - رموز مرتبطة بـ mTLS.
- SPIFFE/SPIRE أو ما يعادله للإصدار التلقائي/تناوب الشهادات.
- STS مع سياسات الجمهور/النطاق ؛ الإصدار بالهوية الموثوق بها فقط.
- الفصل بين مجالات الثقة وخطط العمل المشتركة حسب المنطقة ؛ يتم فحص طوابع المستأجر/المنطقة/الترخيص.
- PDP/PEP متكامل، مخبأ الحل + الإعاقة حسب الحدث.
- نوافذ مزدوجة المفتاح، ومراقبة الاستهلاك «طفل»، وتنبيهات إلى عدم تطابق غير صالح/aud.
- تم تمكين السجلات الكاملة/ S2S مراجعة الحسابات ومقاييس الأداء/الخطأ.
- كتب اللعب الرئيسية، إسقاط STS، فشل mTLS.
- contract/negative/chaos/load/E2E اجتاز جناح الاختبار.
استنتاج
المصادقة S2S هي مزيج من ثقة القناة (mTLS)، وثقة الرسائل (JWT قصيرة)، وهوية العمال المستمرة (SPIFFE)، تديرها STS مركزية ويتم التحقق منها محليًا. أضف فصل مجال الثقة، والجمهور/النطاقات الصارمة، والدوران التلقائي وإمكانية الملاحظة - ولديك مخطط موثوق به وقابل للشرح وقابل للتطوير جنبًا إلى جنب مع النظام الأساسي وجغرافيته.