مرجع API · مفاتيح التوقيع لدى أنيس

مفاتيح التوقيع العامة لدى أنيس

GET/.well-known/partner-signing-keys.json

كل مفتاح عام قد يوقّع ردود أنيس — ومنها المفتاح التالي قبل التدوير والسابق بعده. المسار الوحيد الذي لا يحتاج توقيعًا. تحتفظ به برامج العملاء لمدة لا تتجاوز 5 دقائق وتجلبه مجددًا حين يذكر ردٌّ مفتاحًا لم تره — مرة واحدة على الأكثر كل 30 ثانية.

الصلاحيةلا شيء
المصادقةعام
ردّ أنيسغير موقَّع
حدود الموظفين التي يُحتسب ضمنهالا شيء
حزمة SDK لـ ‎.NETFetched and cached by the SDK
  • يُجيب بالحالة HTTP ‏503 والرمز dependency_unavailable حين يتعذّر قراءة قائمة المفاتيح أو لم تُحدِّثها أنيس منذ 9 دقائق. احتفظ بنسختك المؤقتة حتى انتهاء صلاحيتها الأصلية (5 دقائق على الأكثر من وقت جلبها)، وأعِد المحاولة مع زيادة الانتظار تدريجيًا. وتستمر الاستدعاءات التي لا توقَّع ردودها في العمل.

الاستدعاء

بلا مصادقة.

المحتوى: لا يوجد.

الردود

الحالةالمعنىالمحتوى
200نجاح.SigningKeySet
503لا قرار: خدمة مطلوبة غير متاحة.مشكلة

هذا الردّ غير موقَّع: هو المستند الذي تتحقق به من بقية ردود أنيس. اجلبه عبر TLS فقط.

حالات الرفض

رفض هذا الاستدعاء مشكلةٌ بلا توقيع. ابنِ منطقك على رمزها code؛ وكلٌّ منها يرتبط بصفحة تشرح معناه وما عليك فعله.

الخطأالرمزالحالة
الخدمة غير متاحةdependency_unavailable503

الأنواع

SigningKeySet

الحقلالنوعملاحظات
keysموجود دائمًاlist of PublishedSigningKeyمفاتيح التوقيع العامة المنشورة بحالات active وnext وretired. يبقى المفتاح المُنهى مدرجًا 90 يومًا بعد retiredAt؛ وتُستبعد المفاتيح المخترقة.
revokedموجود دائمًاlist of RevokedSigningKeyالمفاتيح المخترقة، وتُدرج 90 يومًا بعد compromisedAt. تعلن أنيس الاختراق خلال 24 ساعة بالبريد الإلكتروني وهنا.

PublishedSigningKey

الحقلالنوعملاحظات
ktyموجود دائمًاstringدائمًا EC. القيم: EC
crvموجود دائمًاstringدائمًا P-256. القيم: P-256
xموجود دائمًاstring32 بايت بالضبط، بترميز base64url دون حشو.
yموجود دائمًاstring32 بايت بالضبط، بترميز base64url دون حشو.
kidموجود دائمًاstringاسم مفتاح مبهم تستخدمه keyid في الردّ.
useموجود دائمًاstringدائمًا sig.
algموجود دائمًاstringدائمًا ES256.
statusموجود دائمًاstringactive أو next أو retired. استخدمها للتحقق من وقت created للتوقيع. القيم: active, next, retired
notBeforeموجود دائمًاstring (date-time)وقت بدء بصيغة RFC3339؛ ارفض أي مفتاح — active أو next أو retired — حين تكون created أسبق منه.
retiredAtstring (date-time)وقت توقف التوقيع الاختياري بصيغة RFC3339؛ ارفض المفتاح المُنهى حين تكون created بعده.
purposestringاختياري في المخطط للتوافق، لكن أنيس ترسله دائمًا. تحدّد answer مفاتيح ردود API، وتحدّد webhook مفاتيح الإشعارات. اشترط الغرض المطابق للرسالة. القيم: answer, webhook

RevokedSigningKey

الحقلالنوعملاحظات
kidموجود دائمًاstringمعرّف المفتاح المخترق: ارفض ردوده بالسبب key_compromised.
compromisedAtموجود دائمًاstring (date-time)وقت الاختراق بصيغة RFC3339. الردود الموقَّعة بعده باطلة.