نقطة نهاية لتوفير بيانات اعتماد
طلب HTTP
POST https://example.issuer.com/api/v1/vdc/provisionMobileSecurityObjects
نص الطلب
يتضمن نص الطلب بيانات بالبنية التالية:
| تمثيل JSON |
|---|
{ "requestMetadata": { object ( |
| الحقول | |
|---|---|
requestMetadata |
البيانات الوصفية المتعلّقة بالطلب، وهي مطلوبة في جميع الطلبات |
deviceReferenceId |
المعرّف الذي يتوافق مع الجهاز ومفتاح الهوية المرتبط بالجهاز هذا ليس معرّف جهاز، ما يعني أنّه إذا كان لدى المستخدم بيانات اعتماد منفصلة على الجهاز نفسه، سيختلف هذا المعرّف بينهما. يتم تقديم رقم التعريف هذا في جميع الطلبات، ويمكن استخدامه لربط الطلبات. |
credentialId |
معرّف مبهم يمثّل بيانات اعتماد محدّدة تم توفيرها لجهاز. مثال: UUID |
authKeys[] |
قائمة بشهادات x509 التي يجب اعتمادها حتى يمكن استخدامها كعناصر أمان على الأجهزة الجوّالة يتم توقيع كل شهادة باستخدام مفتاح بيانات اعتماد الجهاز. |
proofOfProvisioning |
كائن من الجهاز يثبت أنّه تم توفير بيانات الاعتماد بشكل صحيح. راجِع تعريف العنصر لمزيد من التفاصيل حول بنية هذا العنصر. ملاحظة: لا يتم توفير هذا العنصر إلا في المرة الأولى التي يتم فيها توفير عناصر أمان الأجهزة الجوّالة بعد توفير بيانات الاعتماد. لن يتم توفير ذلك عند استخدام هذه الطريقة لتحديث MSO. |
deviceEncryptionKey |
كائن يحتوي على مفتاح التشفير المؤقت للجهاز والبيانات الوصفية المرتبطة به يُستخدَم هذا المفتاح لتشفير قيمة وإرسالها إلى الجهاز. قد لا يتم توفير هذا العنصر في بيئة وضع الحماية أثناء عملية الإعداد، ما يشير إلى أنّه على جهة الإصدار عرض البيانات بنص عادي. يجب ضبط هذا الإعداد دائمًا في بيئة الإنتاج. |
credentialVersionId |
رقم تعريف إصدار بيانات الاعتماد المتوفّرة حاليًا على الجهاز يجب عدم استخدام هذا المعرّف لتوفير عناصر أمان الأجهزة الجوّالة لإصدارات قديمة من بيانات الاعتماد. إذا لم يتطابق هذا الإصدار مع أحدث إصدار تم توفيره في سجل الجهة المصدرة، يجب عرض ErrorResponse مع InvalidState بدلاً من ذلك. |
نص الاستجابة
ردّ يحتوي على نتيجة توفير عناصر أمان الأجهزة الجوّالة
إذا كانت الاستجابة ناجحة، سيحتوي نص الاستجابة على بيانات بالبنية التالية:
| تمثيل JSON |
|---|
{ "responseMetadata": { object ( |
| الحقول | |
|---|---|
responseMetadata |
البيانات الوصفية الخاصة بالرد، وهي مطلوبة في جميع الردود. |
mobileSecurityObjects[] |
قائمة بعناصر MobileSecurityObjects الجاهزة قد تكون هذه القائمة فارغة إذا لم تكن أي MobileSecurityObjects جاهزة حاليًا. |
AuthKey
شهادة x509 موقَّعة بمفتاح بيانات اعتماد الجهاز، ويجب أن تصادق عليها جهة الإصدار.
تسترجع المحفظة هذه المفاتيح من واجهة برمجة التطبيقات Android Identity Credential API، ويمكنك الاطّلاع على مزيد من المعلومات عنها على الرابط https://developer.android.com/reference/android/security/identity/IdentityCredential#getAuthKeysNeedingCertification()
| تمثيل JSON |
|---|
{ // Union field |
| الحقول | |
|---|---|
حقل الربط presencetype حقل oneof يشير إلى كيفية عرض AuthKey. يمكن أن يكون التعليق presencetype إحدى القيم التالية فقط: |
|
encryptedData |
القيمة المشفّرة والبيانات الوصفية للتشفير اللازمة لفك تشفير القيمة |
unencryptedValue |
قيمة AuthKey المشفّرة باستخدام Base64 |
ProofOfProvisioning
مستند COSE_Sign1 منظَّم وموقَّع بواسطة مفتاح بيانات اعتماد الجهاز، ويثبت أنّه تم توفير بيانات الاعتماد ذات الصلة بشكل صحيح في وحدة التخزين الآمنة على الجهاز.
يتم تحديد هذه البنية من خلال واجهة برمجة التطبيقات Android Identity Credential API، ويمكنك الاطّلاع على مزيد من المعلومات عنها على الرابط https://developer.android.com/reference/android/security/identity/WritableIdentityCredential#personalize(android.security.identity.PersonalizationData)
| تمثيل JSON |
|---|
{ // Union field |
| الحقول | |
|---|---|
حقل الربط presencetype حقل oneof يشير إلى كيفية عرض ProofOfProvisioning. يمكن أن يكون التعليق presencetype إحدى القيم التالية فقط: |
|
encryptedData |
القيمة المشفّرة والبيانات الوصفية للتشفير اللازمة لفك تشفير القيمة |
unencryptedValue |
القيمة المشفّرة باستخدام base64 لـ ProofOfProvisioning |
MobileSecurityObject
كائن يغلف الملخّصات المحسوبة من كل عنصر بيانات مضمّن في بيانات الاعتماد. ويتم تمثيل ذلك كبيانات مصادقة ثابتة، وهو التنسيق المطلوب لمكتبة Android Identity Credential. يمكنك الاطّلاع على هذا الرابط لمعرفة تفاصيل حول إنشاء بيانات المصادقة الثابتة.
| تمثيل JSON |
|---|
{ "expirationTimeMillis": string, // Union field |
| الحقول | |
|---|---|
expirationTimeMillis |
طابع زمني يمثّل تاريخ انتهاء صلاحية عنصر أمان الجهاز الجوّال. يتم تمثيل الطابع الزمني على أنّه عدد المللي ثانية منذ بدء حقبة يونكس. |
حقل الربط presencetype حقل oneof يشير إلى طريقة عرض بيانات الاعتماد. يمكن أن يكون التعليق presencetype إحدى القيم التالية فقط: |
|
encryptedData |
القيمة المشفّرة والبيانات الوصفية للتشفير اللازمة لفك تشفير القيمة |
unencryptedValue |
تمثّل هذه السمة قيمة بيانات الاعتماد المشفّرة باستخدام Base64. |