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

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

POST/v1/enrollments/{invitationId}/keys

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

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

المعاملات

الاسمالموضعالنوعملاحظات
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.
cidrslist of stringالشبكات التي ستستدعي منها، مقترحةً ليؤكّدها موظفو أنيس.

الردود

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

كل ردّ موقَّع من أنيس؛ وتتحقق منه حزم SDK قبل أن يصلك.

حالات الرفض

كل رفض مشكلةٌ موقَّعة. ابنِ منطقك على رمزها 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.
cidrslist of stringالشبكات التي ستستدعي منها، مقترحةً ليؤكّدها موظفو أنيس.

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بصمة المفتاح. أعطها لموظفي أنيس عبر القناة المتّفق عليها؛ فهم يؤكّدون المفتاح بها.
challengeموجود دائمًاstringالتحدّي الذي يجيب عنه إثباتك. لا يُرجَع إلا هنا: احتفظ به حتى يُقبل الإثبات.
challengeGenerationintegerرقم هذا التحدّي؛ وإعادة بدء التسجيل تصدر التحدّي التالي.