נקודת קצה להקצאת פרטי כניסה.
בקשת 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 שמוכנים. יכול להיות שהרשימה הזו תהיה ריקה אם אף MobileSecurityObject לא מוכן כרגע. |
AuthKey
אישור x509, שנחתם על ידי מפתח האישורים של המכשיר, שאמור להיות מאושר על ידי המנפיק.
הנתונים האלה מאוחזרים על ידי Wallet מ-Android Identity Credential API, ויש עליהם מידע נוסף בכתובת https://developer.android.com/reference/android/security/identity/IdentityCredential#getAuthKeysNeedingCertification()
| ייצוג JSON |
|---|
{ // Union field |
| שדות | |
|---|---|
שדה איחוד presencetype. חובה. שדה oneof שמציין איך מפתח האימות מוצג. הערך 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. כאן אפשר לקרוא פרטים על יצירת נתוני אימות סטטיים.
| ייצוג JSON |
|---|
{ "expirationTimeMillis": string, // Union field |
| שדות | |
|---|---|
expirationTimeMillis |
חותמת זמן שמייצגת את התאריך שבו תוקף האובייקט של אבטחת הנייד יפוג. חותמת הזמן מיוצגת כמספר אלפיות השנייה מאז ראשית זמן יוניקס (Unix epoch). |
שדה איחוד presencetype. חובה. רכיב oneof שמציין איך מוצגים פרטי הכניסה. הערך presencetype יכול להיות רק אחד מהבאים: |
|
encryptedData |
הערך המוצפן ומטא-נתוני ההצפנה שנדרשים כדי לפענח את הערך. |
unencryptedValue |
הערך של פרטי הכניסה בקידוד Base64. |