Method: vdc.provisionMobileSecurityObjects

נקודת קצה להקצאת פרטי כניסה.

בקשת HTTP

POST https://example.issuer.com/api/v1/vdc/provisionMobileSecurityObjects

גוף הבקשה

גוף הבקשה מכיל נתונים במבנה הבא:

ייצוג JSON
{
  "requestMetadata": {
    object (RequestMetadata)
  },
  "deviceReferenceId": string,
  "credentialId": string,
  "authKeys": [
    {
      object (AuthKey)
    }
  ],
  "proofOfProvisioning": {
    object (ProofOfProvisioning)
  },
  "deviceEncryptionKey": {
    object (DeviceEncryptionKey)
  },
  "credentialVersionId": string
}
שדות
requestMetadata

object (RequestMetadata)

חובה. המטא-נתונים לגבי הבקשה, שנדרשים בכל הבקשות.

deviceReferenceId

string

חובה. המזהה שמתאים למכשיר ולמפתח הזהות שמשויך למכשיר. זה לא מזהה מכשיר, כלומר אם למשתמש יש שני פרטי כניסה נפרדים באותו מכשיר, המזהה הזה יהיה שונה בשני המקרים.

המזהה הזה מסופק בכל הבקשות, ואפשר להשתמש בו כדי ליצור קורלציה בין הבקשות.

credentialId

string

חובה. מזהה אטום שמייצג פרטי כניסה ספציפיים שהוקצו למכשיר.

לדוגמה: UUID

authKeys[]

object (AuthKey)

חובה. רשימה של אישורי x509 שצריך לאשר, כדי שאפשר יהיה להשתמש בהם כאובייקטים של אבטחה בנייד. כל אישור נחתם על ידי מפתח האישורים של המכשיר.

proofOfProvisioning

object (ProofOfProvisioning)

חובה. אובייקט מהמכשיר שמוכיח שההקצאה של פרטי הכניסה בוצעה בצורה תקינה. פרטים נוספים על המבנה של השדה הזה מופיעים בהגדרת האובייקט.

הערה: האובייקט הזה מסופק רק בפעם הראשונה שמוקצים אובייקטים של אבטחה בנייד אחרי הקצאת האישורים. אם משתמשים בשיטה הזו לרענון של MSO, המידע הזה לא יסופק.

deviceEncryptionKey

object (DeviceEncryptionKey)

חובה. אובייקט שמכיל את מפתח ההצפנה הארעי של המכשיר ואת המטא-נתונים שמשויכים אליו. המפתח הזה משמש להצפנת ערך בחזרה למכשיר. יכול להיות שהאובייקט הזה לא יסופק בסביבת ארגז החול במהלך ההצטרפות, מה שאומר שהגורם המנפיק צריך להחזיר נתונים בטקסט פשוט. תמיד צריך להגדיר את הערך הזה בסביבת הייצור.

credentialVersionId

string

חובה. מזהה גרסת פרטי הכניסה שיש למכשיר כרגע. לא מומלץ להשתמש בזה כדי להקצות אובייקטים של אבטחה בנייד לגרסאות ישנות של פרטי כניסה. אם הערך הזה לא תואם לגרסה העדכנית ביותר שמוקצה ברשומה של הגורם המנפיק, צריך להחזיר במקום זאת ErrorResponse עם InvalidState.

גוף התשובה

תשובה שמכילה את התוצאה של הקצאת אובייקטים של אבטחה לנייד.

אם הפעולה בוצעה ללא שגיאות, גוף התגובה יכיל נתונים במבנה הבא:

ייצוג JSON
{
  "responseMetadata": {
    object (ResponseMetadata)
  },
  "mobileSecurityObjects": [
    {
      object (MobileSecurityObject)
    }
  ]
}
שדות
responseMetadata

object (ResponseMetadata)

חובה. המטא-נתונים לגבי התגובה, שנדרשים בכל התגובות.

mobileSecurityObjects[]

object (MobileSecurityObject)

חובה. רשימה של MobileSecurityObjects שמוכנים. יכול להיות שהרשימה הזו תהיה ריקה אם אף MobileSecurityObject לא מוכן כרגע.

AuthKey

אישור x509, שנחתם על ידי מפתח האישורים של המכשיר, שאמור להיות מאושר על ידי המנפיק.

הנתונים האלה מאוחזרים על ידי Wallet מ-Android Identity Credential API, ויש עליהם מידע נוסף בכתובת https://developer.android.com/reference/android/security/identity/IdentityCredential#getAuthKeysNeedingCertification()

ייצוג JSON
{

  // Union field presencetype can be only one of the following:
  "encryptedData": {
    object (EncryptedData)
  },
  "unencryptedValue": string
  // End of list of possible types for union field presencetype.
}
שדות
שדה איחוד presencetype. חובה. שדה oneof שמציין איך מפתח האימות מוצג. הערך presencetype יכול להיות רק אחד מהבאים:
encryptedData

object (EncryptedData)

הערך המוצפן ומטא-נתוני ההצפנה שנדרשים כדי לפענח את הערך.

unencryptedValue

string

הערך של 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 can be only one of the following:
  "encryptedData": {
    object (EncryptedData)
  },
  "unencryptedValue": string
  // End of list of possible types for union field presencetype.
}
שדות
שדה איחוד presencetype. חובה. שדה oneof שמציין איך מוצג ה-ProofOfProvisioning. הערך presencetype יכול להיות רק אחד מהבאים:
encryptedData

object (EncryptedData)

הערך המוצפן ומטא-נתוני ההצפנה שנדרשים כדי לפענח את הערך.

unencryptedValue

string

הערך בקידוד Base64 של ProofOfProvisioning.

MobileSecurityObject

אובייקט שמכיל סיכומים שחושבו מכל רכיב נתונים שכלול בהסמכה. הנתונים האלה מיוצגים כנתוני אימות סטטיים, שזה הפורמט הנדרש לספריית פרטי הזהות של Android. כאן אפשר לקרוא פרטים על יצירת נתוני אימות סטטיים.

ייצוג JSON
{
  "expirationTimeMillis": string,

  // Union field presencetype can be only one of the following:
  "encryptedData": {
    object (EncryptedData)
  },
  "unencryptedValue": string
  // End of list of possible types for union field presencetype.
}
שדות
expirationTimeMillis

string (int64 format)

חותמת זמן שמייצגת את התאריך שבו תוקף האובייקט של אבטחת הנייד יפוג. חותמת הזמן מיוצגת כמספר אלפיות השנייה מאז ראשית זמן יוניקס (Unix epoch).

שדה איחוד presencetype. חובה. רכיב oneof שמציין איך מוצגים פרטי הכניסה. הערך presencetype יכול להיות רק אחד מהבאים:
encryptedData

object (EncryptedData)

הערך המוצפן ומטא-נתוני ההצפנה שנדרשים כדי לפענח את הערך.

unencryptedValue

string

הערך של פרטי הכניסה בקידוד Base64.