مرجع API · تسجيل المفتاح

إرسال مفتاح عام

POST/v1/enrollments/{invitationId}/keys

يرسل النصف العام من مفتاح P-256 جديد، ويتلقى التحدّي لإثبات أنك تملك النصف الخاص.

الصلاحيةلا شيء
المصادقةرمز التسجيل
ردّ أنيسموقَّع
حدود الموظفين التي يُحتسب ضمنهالا شيء
حزمة SDK لـ ‎.NETenrollment.SubmitKeyAsync(request)
  • احفظ المفتاح الخاص قبل هذا الاستدعاء: الدعوة الواحدة تأخذ مفتاحًا واحدًا بالضبط.
  • يحمل الرد safetyCode. سيتصل موظفو أنيس بجهة الاتصال الفنية لديك ويطلبون منها قراءته قبل أن يصبح مفتاحك فعّالًا.

المعاملات

الاسمالموضعالنوعملاحظات
invitationIdإلزاميpathUUIDمعرّف UUID بأحرف صغيرة مع الشرطات.

الاستدعاء

مُصرَّح به عبر Authorization: Enrollment <token>؛ غير موقَّع.

الترويسات: Accept-Language (اختياري). تضبطها حزم SDK كلها نيابةً عنك.

المحتوى: EnrollmentKeyRequest، بصيغة JSON.

الحقلالنوعملاحظات
publicJwkإلزاميPublicJwkالنصف العام فقط من مفتاح P-256 جديد. العنصر الخاص يُرفض.
notBeforeإلزاميstring (date-time)يُستخدم طول النافذة فقط (حتى expiresAt)، ويبدأ حين يفعّل موظفو أنيس المفتاح. وتعتمد أنيس الأقصر بين مدة الصلاحية التي تطلبها والمدة التي حدّدها موظفو أنيس (ولا تزيد أبدًا على سنتين).
expiresAtإلزاميstring (date-time)نهاية مدة الصلاحية التي تطلبها. انظر notBefore.

الردود

الحالةالمعنىالمحتوى
200نجاح.EnrollmentKeyResult
401مرفوض: لم تتم المصادقة.مشكلة
404مرفوض: غير موجود، أو ليس لك.مشكلة
409مرفوض: يتعارض مع الحالة الحالية.مشكلة
422مرفوض: الاستدعاء يخالف قاعدة.مشكلة
429مرفوض: بلغتَ حدًا.مشكلة
503لا قرار: خدمة مطلوبة غير متاحة.مشكلة

كل ردّ على هذا الاستدعاء موقَّع من أنيس — النجاح وكل رفض. اشترط وجود التوقيع وتحقّق منه قبل أن تتصرف بناءً على الردّ؛ والردّ بلا توقيع فشل، لا يُعدّ ردًّا (كيف).

حالات الرفض

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

الخطأالرمزالحالة
الدعوة غير صالحةinvitation_invalid401
غير موجودresource_not_found404
فشل التحققvalidation_failed422
المفتاح العام غير صالحkey_proof_invalid422
الدعوة مستخدمة من قبلkey_duplicate409
تجاوزت حدّ الاستدعاءاتrate_limited429
الخدمة غير متاحةdependency_unavailable503
انتهت مهلة الاستدعاءrequest_timeout504
خطأ داخليinternal_error500

الأنواع

EnrollmentKeyRequest

الحقلالنوعملاحظات
publicJwkإلزاميPublicJwkالنصف العام فقط من مفتاح P-256 جديد. العنصر الخاص يُرفض.
notBeforeإلزاميstring (date-time)يُستخدم طول النافذة فقط (حتى expiresAt)، ويبدأ حين يفعّل موظفو أنيس المفتاح. وتعتمد أنيس الأقصر بين مدة الصلاحية التي تطلبها والمدة التي حدّدها موظفو أنيس (ولا تزيد أبدًا على سنتين).
expiresAtإلزاميstring (date-time)نهاية مدة الصلاحية التي تطلبها. انظر notBefore.

PublicJwk

الحقلالنوعملاحظات
ktyإلزاميstringدائمًا EC. القيم: EC
crvإلزاميstringدائمًا P-256. القيم: P-256
xإلزاميstringالإحداثي x للمفتاح: 32 بايت بالضبط، بترميز base64url دون حشو.
yإلزاميstringالإحداثي y للمفتاح: 32 بايت بالضبط، بترميز base64url دون حشو.
kidstringفي مفاتيح التوقيع لدى أنيس: المفتاح الذي يذكره توقيع الرد. تعامل معه كاسم مبهم. لا يُرسل حين ترسل مفتاحك أنت.
usestringالاستخدام المقصود، حين يُنشر.
algstringالخوارزمية، حين تُنشر.

EnrollmentKeyResult

الحقلالنوعملاحظات
keyIdموجود دائمًاUUIDمعرّف مفتاحك: وهو keyid الذي سيحمله كل توقيع بعد أن يصبح المفتاح فعّالًا.
thumbprintموجود دائمًاstringبصمة المفتاح (RFC 7638). وهي جزء من رسالة الإثبات التي توقّعها.
safetyCodeموجود دائمًاstringرمز الأمان المكوَّن من 16 خانة والمشتق من بصمة مفتاحك، ويُكتب XXXX-XXXX-XXXX-XXXX. سيتصل موظفو أنيس بجهة الاتصال الفنية لديك ويطلبون منها قراءته قبل أن يصبح مفتاحك فعّالًا.
challengeموجود دائمًاstringالتحدّي الذي يجيب عنه إثباتك. لا يُرجَع إلا هنا: احتفظ به حتى يُقبل الإثبات.
challengeGenerationintegerرقم هذا التحدّي؛ وإعادة بدء التسجيل تصدر التحدّي التالي.