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